diff options
Diffstat (limited to 'chinese/mutt/files/patch-mbyte.c')
| -rw-r--r-- | chinese/mutt/files/patch-mbyte.c | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/chinese/mutt/files/patch-mbyte.c b/chinese/mutt/files/patch-mbyte.c deleted file mode 100644 index d9698b86a7f9..000000000000 --- a/chinese/mutt/files/patch-mbyte.c +++ /dev/null @@ -1,135 +0,0 @@ ---- mbyte.c.orig 2016-10-09 03:35:50.000000000 +0800 -+++ mbyte.c 2016-12-02 11:18:42.600658000 +0800 -@@ -24,6 +24,9 @@ - # include "config.h" - #endif - -+/* -+ * Trad. Chinese (Big5) support by yjchou@linux.cis.nctu.edu.tw -+ */ - #include "mutt.h" - #include "mbyte.h" - #include "charset.h" -@@ -39,6 +42,7 @@ - int Charset_is_utf8 = 0; - #ifndef HAVE_WC_FUNCS - static int charset_is_ja = 0; -+static int charset_is_big5 = 0; - static iconv_t charset_to_utf8 = (iconv_t)(-1); - static iconv_t charset_from_utf8 = (iconv_t)(-1); - #endif -@@ -52,6 +56,7 @@ void mutt_set_charset (char *charset) - Charset_is_utf8 = 0; - #ifndef HAVE_WC_FUNCS - charset_is_ja = 0; -+ charset_is_big5 = 0; - if (charset_to_utf8 != (iconv_t)(-1)) - { - iconv_close (charset_to_utf8); -@@ -82,6 +87,14 @@ void mutt_set_charset (char *charset) - charset_from_utf8 = mutt_iconv_open (charset, "utf-8", 0); - } - #endif -+#ifndef HAVE_WC_FUNCS -+ else if (!strcmp(buffer, "big5")) -+ { -+ charset_is_big5 = 1; -+ charset_to_utf8 = iconv_open ("UTF-8", charset); -+ charset_from_utf8 = iconv_open (charset, "UTF-8"); -+ } -+#endif - - #if defined(HAVE_BIND_TEXTDOMAIN_CODESET) && defined(ENABLE_NLS) - bind_textdomain_codeset(PACKAGE, buffer); -@@ -256,7 +269,7 @@ size_t mbrtowc (wchar_t *pwc, const char - - int iswprint (wint_t wc) - { -- if (Charset_is_utf8 || charset_is_ja) -+ if (Charset_is_utf8 || charset_is_ja || charset_is_big5) - return ((0x20 <= wc && wc < 0x7f) || 0xa0 <= wc); - else - return (0 <= wc && wc < 256) ? IsPrint (wc) : 0; -@@ -264,7 +277,7 @@ int iswprint (wint_t wc) - - int iswspace (wint_t wc) - { -- if (Charset_is_utf8 || charset_is_ja) -+ if (Charset_is_utf8 || charset_is_ja || charset_is_big5) - return (9 <= wc && wc <= 13) || wc == 32; - else - return (0 <= wc && wc < 256) ? isspace (wc) : 0; -@@ -347,7 +360,7 @@ static int iswalpha_ucs (wint_t wc) - - wint_t towupper (wint_t wc) - { -- if (Charset_is_utf8 || charset_is_ja) -+ if (Charset_is_utf8 || charset_is_ja || charset_is_big5) - return towupper_ucs (wc); - else - return (0 <= wc && wc < 256) ? toupper (wc) : wc; -@@ -355,7 +368,7 @@ wint_t towupper (wint_t wc) - - wint_t towlower (wint_t wc) - { -- if (Charset_is_utf8 || charset_is_ja) -+ if (Charset_is_utf8 || charset_is_ja || charset_is_big5) - return towlower_ucs (wc); - else - return (0 <= wc && wc < 256) ? tolower (wc) : wc; -@@ -363,7 +376,7 @@ wint_t towlower (wint_t wc) - - int iswalnum (wint_t wc) - { -- if (Charset_is_utf8 || charset_is_ja) -+ if (Charset_is_utf8 || charset_is_ja || charset_is_big5) - return iswalnum_ucs (wc); - else - return (0 <= wc && wc < 256) ? isalnum (wc) : 0; -@@ -404,13 +417,31 @@ int wcwidth_ja (wchar_t ucs) - return -1; - } - -+int wcwidth_big5(wchar_t ucs) -+{ -+ return wcwidth_ja (ucs); -+} -+ - int wcwidth_ucs(wchar_t ucs); - - int wcwidth (wchar_t wc) - { - if (!Charset_is_utf8) - { -- if (!charset_is_ja) -+ if (charset_is_ja) -+ { -+ /* Japanese */ -+ int k = wcwidth_ja (wc); -+ if (k != -1) -+ return k; -+ } -+ else if (charset_is_big5) -+ { -+ int k = wcwidth_big5 (wc); -+ if (k != -1) -+ return k; -+ } -+ else - { - /* 8-bit case */ - if (!wc) -@@ -420,13 +451,6 @@ int wcwidth (wchar_t wc) - else - return -1; - } -- else -- { -- /* Japanese */ -- int k = wcwidth_ja (wc); -- if (k != -1) -- return k; -- } - } - return wcwidth_ucs (wc); - } |
