Silly of me to overlook it: another obvious way you might like to
[sgt/charset] / xenc.c
diff --git a/xenc.c b/xenc.c
index 5359b16..1b77be7 100644 (file)
--- a/xenc.c
+++ b/xenc.c
@@ -23,6 +23,7 @@ static const struct {
      * canonical and will be returned when translating the id to a
      * string.
      */
+    { "iso646.1991-irv", CS_ASCII },
     { "iso8859-1", CS_ISO8859_1 },
     { "iso8859-2", CS_ISO8859_2 },
     { "iso8859-3", CS_ISO8859_3 },
@@ -39,6 +40,7 @@ static const struct {
     { "fcd8859-15", CS_ISO8859_15 },
     { "hp-roman8", CS_HP_ROMAN8 },
     { "koi8-r", CS_KOI8_R },
+    { "jisx0201.1976-0", CS_JISX0201 },
     /*
      * Unofficial encoding names found in the wild.
      */
@@ -46,6 +48,8 @@ static const struct {
     { "koi8-u", CS_KOI8_U },
     { "ibm-cp437", CS_CP437 },
     { "ibm-cp850", CS_CP850 },
+    { "ibm-cp852", CS_CP852 },
+    { "ibm-cp866", CS_CP866 },
     { "microsoft-cp1250", CS_CP1250 },
     { "microsoft-cp1251", CS_CP1251 },
     { "microsoft-cp1252", CS_CP1252 },
@@ -80,7 +84,7 @@ int charset_from_xenc(const char *name)
        p = name;
        q = xencs[i].name;
        while (*p || *q) {
-           if (tolower(*p) != tolower(*q))
+               if (tolower((unsigned char)*p) != tolower((unsigned char)*q))
                break;
            p++; q++;
        }