summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAnatoly Galiulin <galiulin.anatoly@gmail.com>2017-03-07 15:56:16 +0700
committerAndreas Rumpf <rumpf_a@web.de>2017-03-07 09:56:16 +0100
commit24ec36f097588b4551c87c58de4fec5f1c7135e9 (patch)
treee89a2c369b9b7fb446ef0547fd85ac5ab9ccebc1 /lib
parent3fa428c88beb376784e9683edd83b1cebc857f08 (diff)
downloadNim-24ec36f097588b4551c87c58de4fec5f1c7135e9.tar.gz
Fix iconv import on freebsd and netbsd (#5490)
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/encodings.nim13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/pure/encodings.nim b/lib/pure/encodings.nim
index f89786c1c..5840d443d 100644
--- a/lib/pure/encodings.nim
+++ b/lib/pure/encodings.nim
@@ -277,16 +277,21 @@ else:
 
   var errno {.importc, header: "<errno.h>".}: cint
 
+  when defined(freebsd) or defined(netbsd):
+    {.pragma: importIconv, cdecl, header: "<iconv.h>".}
+  else:
+    {.pragma: importIconv, cdecl, dynlib: iconvDll.}
+
   proc iconvOpen(tocode, fromcode: cstring): EncodingConverter {.
-    importc: "iconv_open", cdecl, dynlib: iconvDll.}
+    importc: "iconv_open", importIconv.}
   proc iconvClose(c: EncodingConverter) {.
-    importc: "iconv_close", cdecl, dynlib: iconvDll.}
+    importc: "iconv_close", importIconv.}
   proc iconv(c: EncodingConverter, inbuf: var cstring, inbytesLeft: var int,
              outbuf: var cstring, outbytesLeft: var int): int {.
-    importc: "iconv", cdecl, dynlib: iconvDll.}
+    importc: "iconv", importIconv.}
   proc iconv(c: EncodingConverter, inbuf: pointer, inbytesLeft: pointer,
              outbuf: var cstring, outbytesLeft: var int): int {.
-    importc: "iconv", cdecl, dynlib: iconvDll.}
+    importc: "iconv", importIconv.}
 
 proc getCurrentEncoding*(): string =
   ## retrieves the current encoding. On Unix, always "UTF-8" is returned.