diff options
author | Rich Felker <dalias@aerifal.cx> | 2015-05-21 17:01:23 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-05-21 17:01:23 -0400 |
commit | 39b8ce66f2ed9c17427ec3a48be9bda29b93b9d7 (patch) | |
tree | 97dbd9cf6cea6ea9b3cd0670a0e9bafd4b035267 | |
parent | c648cefb27984db60474ec1747cbfde83c2856d0 (diff) | |
download | musl-39b8ce66f2ed9c17427ec3a48be9bda29b93b9d7.tar.gz |
in iconv_open, accept "CHAR" and "" as aliases for "UTF-8"
while not a requirement, it's common convention in other iconv
implementations to accept "CHAR" as an alias for nl_langinfo(CODESET),
meaning the encoding used for char[] strings in the current locale,
and also "" as an alternate form. supporting this is not costly and
improves compatibility.
-rw-r--r-- | src/locale/iconv.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/locale/iconv.c b/src/locale/iconv.c index a0b02320..3c20c898 100644 --- a/src/locale/iconv.c +++ b/src/locale/iconv.c @@ -35,7 +35,7 @@ * 3. Character table (size determined by field 2). */ static const unsigned char charmaps[] = -"utf8\0\0\310" +"utf8\0char\0\0\310" "wchart\0\0\306" "ucs2\0ucs2be\0\0\304" "ucs2le\0\0\305" @@ -90,6 +90,7 @@ static int fuzzycmp(const unsigned char *a, const unsigned char *b) static size_t find_charmap(const void *name) { const unsigned char *s; + if (!*(char *)name) name=charmaps; /* "utf8" */ for (s=charmaps; *s; ) { if (!fuzzycmp(name, s)) { for (; *s; s+=strlen((void *)s)+1); |