summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2019-08-17 21:19:57 +0200
committerGitHub <noreply@github.com>2019-08-17 21:19:57 +0200
commit7cb31455ee949ee006e2f314daa74866cf37a74e (patch)
tree641661998fac2b6a14873e6b661d5e48be61c502 /lib/pure
parentb68380f09b1926f4aea89b14b52bb442d5b002de (diff)
downloadNim-7cb31455ee949ee006e2f314daa74866cf37a74e.tar.gz
fixes #11618 (#11969)
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/encodings.nim9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/pure/encodings.nim b/lib/pure/encodings.nim
index daf2ca0a2..874415bcf 100644
--- a/lib/pure/encodings.nim
+++ b/lib/pure/encodings.nim
@@ -231,6 +231,7 @@ when defined(windows):
     result = ""
 
   proc getACP(): CodePage {.stdcall, importc: "GetACP", dynlib: "kernel32".}
+  proc getGetConsoleCP(): CodePage {.stdcall, importc: "GetConsoleCP", dynlib: "kernel32".}
 
   proc multiByteToWideChar(
     codePage: CodePage,
@@ -292,10 +293,12 @@ else:
              outbuf: var cstring, outbytesLeft: var int): int {.
     importc: "iconv", importIconv.}
 
-proc getCurrentEncoding*(): string =
+proc getCurrentEncoding*(uiApp = false): string =
   ## retrieves the current encoding. On Unix, always "UTF-8" is returned.
+  ## The `uiApp` parameter is Windows specific. If true, the UI's code-page
+  ## is returned, if false, the Console's code-page is returned.
   when defined(windows):
-    result = codePageToName(getACP())
+    result = codePageToName(if uiApp: getACP() else: getGetConsoleCP())
   else:
     result = "UTF-8"
 
@@ -509,7 +512,7 @@ when not defined(testing) and isMainModule and defined(windows):
     let original = "\x42\x04\x35\x04\x41\x04\x42\x04" # utf-16 little endian test string "тест"
     let result = convert(original, "windows-1251", "utf-16")
     doAssert(result == "\xf2\xe5\xf1\xf2")
-  
+
   block should_convert_from_win1251_to_koi8r:
     let original = "\xf2\xe5\xf1\xf2" # win1251 test string "тест"
     let result = convert(original, "koi8-r", "windows-1251")