mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 22:10:33 +00:00
Update encodings.nim, fix open with bad arg raising no EncodingError (#23481)
On POSIX, `std/encodings` uses iconv, and `iconv_open` returns `(iconv_t) -1` on failure, not `NULL`
This commit is contained in:
@@ -342,7 +342,7 @@ proc open*(destEncoding = "UTF-8", srcEncoding = "CP1252"): EncodingConverter =
|
||||
## Raises `EncodingError` if it cannot fulfill the request.
|
||||
when not defined(windows):
|
||||
result = iconvOpen(destEncoding, srcEncoding)
|
||||
if result == nil:
|
||||
if result == cast[EncodingConverter](-1):
|
||||
raise newException(EncodingError,
|
||||
"cannot create encoding converter from " &
|
||||
srcEncoding & " to " & destEncoding)
|
||||
|
||||
@@ -101,3 +101,7 @@ block:
|
||||
doAssert orig == "\195\182\195\164\195\188\195\159"
|
||||
doAssert ibm850 == "\148\132\129\225"
|
||||
doAssert convert(ibm850, current, "ibm850") == orig
|
||||
|
||||
block: # fixes about #23481
|
||||
doAssertRaises EncodingError:
|
||||
discard open(destEncoding="this is a invalid enc")
|
||||
|
||||
Reference in New Issue
Block a user