utf8: accept "latin-1" as ISO-8859-1
authorJunio C Hamano <gitster@pobox.com>
Tue, 27 Sep 2016 01:09:48 +0000 (18:09 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Sep 2016 01:16:23 +0000 (18:16 -0700)
Even though latin-1 is still seen in e-mail headers, some platforms
only install ISO-8859-1. "iconv -f ISO-8859-1" succeeds, while
"iconv -f latin-1" fails on such a system.

Using the same fallback_encoding() mechanism factored out in the
previous step, teach ourselves that "ISO-8859-1" has a better chance
of being accepted than "latin-1".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
utf8.c
diff --git a/utf8.c b/utf8.c
index 550e785ecbf0584cb959050a24fcce58905cff3b..0c8e011a58cae3c683851007ec81828ad8284471 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -501,6 +501,13 @@ static const char *fallback_encoding(const char *name)
        if (is_encoding_utf8(name))
                return "UTF-8";
 
        if (is_encoding_utf8(name))
                return "UTF-8";
 
+       /*
+        * Even though latin-1 is still seen in e-mail
+        * headers, some platforms only install ISO-8859-1.
+        */
+       if (!strcasecmp(name, "latin-1"))
+               return "ISO-8859-1";
+
        return name;
 }
 
        return name;
 }