summaryrefslogtreecommitdiff
path: root/chinese/mutt/files/patch-zh-mutt
diff options
context:
space:
mode:
Diffstat (limited to 'chinese/mutt/files/patch-zh-mutt')
-rw-r--r--chinese/mutt/files/patch-zh-mutt494
1 files changed, 0 insertions, 494 deletions
diff --git a/chinese/mutt/files/patch-zh-mutt b/chinese/mutt/files/patch-zh-mutt
deleted file mode 100644
index 7394181fa76f..000000000000
--- a/chinese/mutt/files/patch-zh-mutt
+++ /dev/null
@@ -1,494 +0,0 @@
-diff -ruN mutt-1.5.21.orig/init.h init.h
---- mutt-1.5.21.orig/init.h 2012-04-14 20:39:48.000000000 +0800
-+++ init.h 2012-04-14 20:39:52.000000000 +0800
-@@ -287,6 +287,11 @@
- ** .pp
- ** Also see $$fast_reply.
- */
-+ { "bbsislame", DT_BOOL, R_NONE, OPTBBSISLAME, 0 },
-+ /*
-+ ** .pp
-+ ** When this variable is set, mutt will beep when an error occurs.
-+ */
- { "beep", DT_BOOL, R_NONE, OPTBEEP, 1 },
- /*
- ** .pp
-@@ -2468,7 +2473,7 @@
- ** For the pager, this variable specifies the number of lines shown
- ** before search results. By default, search results will be top-aligned.
- */
-- { "send_charset", DT_STR, R_NONE, UL &SendCharset, UL "us-ascii:iso-8859-1:utf-8" },
-+ { "send_charset", DT_STR, R_NONE, UL &SendCharset, UL "big5:gb2312:us-ascii:iso-8859-1:utf-8" },
- /*
- ** .pp
- ** A colon-delimited list of character sets for outgoing messages. Mutt will use the
-@@ -3251,7 +3256,7 @@
- ** When \fIset\fP, Mutt will jump to the next unread message, if any,
- ** when the current thread is \fIun\fPcollapsed.
- */
-- { "use_8bitmime", DT_BOOL, R_NONE, OPTUSE8BITMIME, 0 },
-+ { "use_8bitmime", DT_BOOL, R_NONE, OPTUSE8BITMIME, 1 },
- /*
- ** .pp
- ** \fBWarning:\fP do not set this variable unless you are using a version
-diff -ruN mutt-1.5.21.orig/mbyte.c mbyte.c
---- mutt-1.5.21.orig/mbyte.c 2012-04-14 20:39:48.000000000 +0800
-+++ mbyte.c 2012-04-14 20:39:52.000000000 +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 @@
- 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 @@
- 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 @@
-
- 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 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 @@
-
- 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 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 @@
-
- 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 @@
- 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 @@
- else
- return -1;
- }
-- else
-- {
-- /* Japanese */
-- int k = wcwidth_ja (wc);
-- if (k != -1)
-- return k;
-- }
- }
- return wcwidth_ucs (wc);
- }
-diff -ruN mutt-1.5.21.orig/mutt.h mutt.h
---- mutt-1.5.21.orig/mutt.h 2012-04-14 20:39:48.000000000 +0800
-+++ mutt.h 2012-04-14 20:39:52.000000000 +0800
-@@ -324,6 +324,7 @@
- OPTATTACHSPLIT,
- OPTAUTOEDIT,
- OPTAUTOTAG,
-+ OPTBBSISLAME,
- OPTBEEP,
- OPTBEEPNEW,
- OPTBOUNCEDELIVERED,
-diff -ruN mutt-1.5.21.orig/myiconv.c myiconv.c
---- mutt-1.5.21.orig/myiconv.c 1970-01-01 08:00:00.000000000 +0800
-+++ myiconv.c 2012-04-14 20:39:52.000000000 +0800
-@@ -0,0 +1,167 @@
-+/*
-+ * Contributed by Kuang-che Wu <kcwu@kcwu.dyndns.org>
-+ */
-+#if HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include "mutt.h"
-+#include "charset.h"
-+#include <hz.h>
-+#include <dlfcn.h>
-+
-+
-+
-+#ifdef HAVE_ICONV
-+
-+typedef struct myiconv {
-+ iconv_t cd;
-+ int incode,outcode;
-+ int myjob;
-+} myiconv_t;
-+
-+static int is_init;
-+static void *dlh;
-+static iconv_t (*old_iconv_open)(const char *tocode, const char *fromcode);
-+static size_t (*old_iconv)(iconv_t cd, ICONV_CONST char **inbuf,
-+ size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
-+static int (*old_iconv_close) (iconv_t cd);
-+static int inst;
-+
-+static void init(void)
-+{
-+ hz_setup();
-+ dlh=dlopen("libiconv.so",RTLD_LAZY);
-+ if(dlh) {
-+ old_iconv_open=dlsym(dlh,"iconv_open");
-+ old_iconv=dlsym(dlh,"iconv");
-+ old_iconv_close=dlsym(dlh,"iconv_close");
-+ }
-+ is_init=1;
-+}
-+
-+static size_t myconv(ICONV_CONST char **inbuf,
-+ size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
-+{
-+ /* reference to autogb.c */
-+ int count;
-+ char buff[MAX_BUFFER*3];
-+ char *pbuf,*ps;
-+ size_t rt=0;
-+
-+ pbuf=&buff[2];
-+
-+ count=*inbytesleft;
-+ if(count>MAX_BUFFER) count=MAX_BUFFER;
-+ memcpy(pbuf,*inbuf,count);
-+ *inbuf+=count;
-+ *inbytesleft-=count;
-+ while(count>0) {
-+ rt+=count;
-+ ps=hz_convert(pbuf,&count,0);
-+ memcpy(*outbuf,ps,count);
-+ *outbuf+=count; *outbytesleft+=count;
-+ pbuf=&buff[2];
-+
-+ count=*inbytesleft;
-+ if(count>MAX_BUFFER) count=MAX_BUFFER;
-+ memcpy(pbuf,*inbuf,count);
-+ *inbuf+=count;
-+ *inbytesleft-=count;
-+ }
-+ return rt;
-+}
-+
-+int conv_str(const char* str_code)
-+{
-+ int i;
-+ char *str;
-+ struct mapping {
-+ char *code;
-+ int value;
-+ } map[]={
-+ {"gb2312",GB_CODE},
-+ {"euccn",GB_CODE},
-+ {"big5",BIG5_CODE},
-+ {0,OTHER_CODE}, /* should we handle below cases? */
-+ {"hz",HZ_CODE},
-+ {"uni",UNI_CODE},
-+ {"utf7",UTF7_CODE},
-+ {"utf8",UTF8_CODE},
-+ };
-+ str=strdup(str_code);
-+ if(strchr(str,'/'))
-+ *strchr(str,'/')=0;
-+ for(i=0;map[i].code;i++)
-+ if(mutt_chscmp(str,map[i].code))
-+ break;
-+ free(str);
-+ return map[i].value;
-+}
-+
-+iconv_t iconv_open (const char *tocode, const char *fromcode)
-+{
-+ myiconv_t *mycd=(myiconv_t*)-1;
-+ iconv_t cd;
-+ char *_tocode, *_fromcode;
-+
-+ _tocode = tocode;
-+ _fromcode = fromcode;
-+
-+ if (!mutt_strcmp(tocode,"big5")) _tocode = "big5-hkscs";
-+ if (!mutt_strcmp(fromcode,"big5")) _fromcode = "big5-hkscs";
-+
-+ if(!is_init) init();
-+ if(!old_iconv_open)
-+ return (iconv_t)(-1);
-+
-+ if((cd=old_iconv_open(_tocode,_fromcode))!=(iconv_t)-1) {
-+ mycd=(myiconv_t*)calloc(1,sizeof(myiconv_t));
-+ mycd->cd=cd;
-+ mycd->incode=conv_str(fromcode);
-+ mycd->outcode=conv_str(tocode);
-+ /* inst==0 is because:
-+ libhz only has one stack, and
-+ it will destroy all instance's data when setup stack.
-+
-+ If want to fix, libhz's init func should know which inst.
-+ */
-+ if(inst==0 && mycd->incode!=mycd->outcode &&
-+ hz_search(mycd->incode,mycd->outcode,8)) {
-+ inst++;
-+ mycd->myjob=1;
-+ }
-+ }
-+ return (iconv_t)mycd;
-+}
-+
-+size_t iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytesleft,
-+ char **outbuf, size_t *outbytesleft)
-+{
-+ myiconv_t *mycd=(myiconv_t*)cd;
-+ size_t rt=(size_t)0;
-+ if(mycd->myjob) {
-+ if(!inbuf || !*inbuf || !outbuf || !*outbuf)
-+ hz_search(mycd->incode,mycd->outcode,8);
-+ else
-+ rt=myconv(inbuf,inbytesleft,outbuf,outbytesleft);
-+ } else if(old_iconv)
-+ rt=old_iconv(mycd->cd,inbuf,inbytesleft,outbuf,outbytesleft);
-+ return rt;
-+}
-+
-+int iconv_close (iconv_t cd)
-+{
-+ myiconv_t *mycd=(myiconv_t*)cd;
-+ if(!old_iconv_close)
-+ return 0;
-+ old_iconv_close(mycd->cd);
-+ if(mycd->myjob)
-+ inst--;
-+ free(mycd);
-+ return 0;
-+}
-+
-+#endif
-diff -ruN mutt-1.5.21.orig/pager.c pager.c
---- mutt-1.5.21.orig/pager.c 2012-04-14 20:39:48.000000000 +0800
-+++ pager.c 2012-04-14 20:40:25.000000000 +0800
-@@ -20,6 +20,10 @@
- # include "config.h"
- #endif
-
-+/*
-+ * Trad. Chinese support by Michael Hsin <mhsin@mhsin.org>
-+ */
-+
- #include "mutt.h"
- #include "mutt_curses.h"
- #include "mutt_regex.h"
-@@ -1091,7 +1095,7 @@
- {
- int space = -1; /* index of the last space or TAB */
- int col = option (OPTMARKERS) ? (*lineInfo)[n].continuation : 0;
-- int ch, vch, k, last_special = -1, special = 0, t;
-+ int ch, vch, k, last_special = -1, special = 0, t = 0, old_t = 0;
- wchar_t wc;
- mbstate_t mbstate;
- int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap);
-@@ -1198,7 +1202,10 @@
- * attempt to wrap at this character. */
- wc = ' ';
- }
-+ old_t = t;
- t = wcwidth (wc);
-+ if(t > 1 || old_t > 1)
-+ space = ch;
- if (col + t > wrap_cols)
- break;
- col += t;
-@@ -1420,6 +1427,7 @@
- {
- buf_ptr = buf + ch;
- /* skip trailing blanks */
-+ ch --;
- while (ch && (buf[ch] == ' ' || buf[ch] == '\t' || buf[ch] == '\r'))
- ch--;
- /* a very long word with leading spaces causes infinite wrapping */
-diff -ruN mutt-1.5.21.orig/parse.c parse.c
---- mutt-1.5.21.orig/parse.c 2012-04-14 20:39:48.000000000 +0800
-+++ parse.c 2012-04-14 20:39:52.000000000 +0800
-@@ -381,7 +381,10 @@
- s++;
- SKIPWS (s);
- if ((s = mutt_get_parameter ("filename", (parms = parse_parameters (s)))))
-- mutt_str_replace (&ct->filename, s);
-+ {
-+ mutt_str_replace (&ct->filename, s);
-+ rfc2047_decode (&ct->filename);
-+ }
- if ((s = mutt_get_parameter ("name", parms)))
- ct->form_name = safe_strdup (s);
- mutt_free_parameter (&parms);
-diff -ruN mutt-1.5.21.orig/pgp.c pgp.c
---- mutt-1.5.21.orig/pgp.c 2012-04-14 20:39:48.000000000 +0800
-+++ pgp.c 2012-04-14 20:39:52.000000000 +0800
-@@ -1033,7 +1033,7 @@
- int empty = 1;
- pid_t thepid;
-
-- convert_to_7bit (a); /* Signed data _must_ be in 7-bit format. */
-+ if (!option(OPTBBSISLAME)) convert_to_7bit (a); /* Signed data _must_ be in 7-bit format. */
-
- mutt_mktemp (sigfile, sizeof (sigfile));
- if ((fp = safe_fopen (sigfile, "w")) == NULL)
-diff -ruN mutt-1.5.21.orig/po/zh_TW.po po/zh_TW.po
---- mutt-1.5.21.orig/po/zh_TW.po 2012-04-14 20:39:48.000000000 +0800
-+++ po/zh_TW.po 2012-04-14 20:39:52.000000000 +0800
-@@ -1820,7 +1820,7 @@
- "~w 檔案\t\t將訊息寫入檔案\n"
- "~x\t\t停止修改並離開編輯器\n"
- "~?\t\t這訊息\n"
--".\t\t如果是一行裏的唯一字符,則代表結束輸入\n"
-+".\t\t如果是一行裡的唯一字符,則代表結束輸入\n"
-
- #: edit.c:52
- #, fuzzy
-@@ -1852,7 +1852,7 @@
- "~w 檔案\t\t將訊息寫入檔案\n"
- "~x\t\t停止修改並離開編輯器\n"
- "~?\t\t這訊息\n"
--".\t\t如果是一行裏的唯一字符,則代表結束輸入\n"
-+".\t\t如果是一行裡的唯一字符,則代表結束輸入\n"
-
- #: edit.c:187
- #, c-format
-@@ -1861,7 +1861,7 @@
-
- #: edit.c:329
- msgid "(End message with a . on a line by itself)\n"
--msgstr "(在一行裏輸入一個 . 符號來結束信件)\n"
-+msgstr "(在一行裡輸入一個 . 符號來結束信件)\n"
-
- #: edit.c:388
- msgid "No mailbox.\n"
-@@ -4666,7 +4666,7 @@
-
- #: ../keymap_alldefs.h:43
- msgid "rename/move an attached file"
--msgstr "更改檔名∕移動 已被附帶的檔案"
-+msgstr "更改檔名/移動 已被附帶的檔案"
-
- #: ../keymap_alldefs.h:44
- msgid "send the message"
-@@ -4674,7 +4674,7 @@
-
- #: ../keymap_alldefs.h:45
- msgid "toggle disposition between inline/attachment"
--msgstr "切換 合拼∕附件式 觀看模式"
-+msgstr "切換 合拼/附件式 觀看模式"
-
- #: ../keymap_alldefs.h:46
- msgid "toggle whether to delete file after sending it"
-@@ -5289,11 +5289,11 @@
-
- #: ../keymap_alldefs.h:196
- msgid "Select the previous element of the chain"
--msgstr "選擇鏈結裏對上一個部份"
-+msgstr "選擇鏈結裡對上一個部份"
-
- #: ../keymap_alldefs.h:197
- msgid "Select the next element of the chain"
--msgstr "選擇鏈結裏跟著的一個部份"
-+msgstr "選擇鏈結裡跟著的一個部份"
-
- #: ../keymap_alldefs.h:198
- msgid "send the message through a mixmaster remailer chain"
-diff -ruN mutt-1.5.21.orig/sendlib.c sendlib.c
---- mutt-1.5.21.orig/sendlib.c 2012-04-14 20:39:48.000000000 +0800
-+++ sendlib.c 2012-04-14 20:39:52.000000000 +0800
-@@ -2477,7 +2477,7 @@
- rfc2047_encode_adrlist (env->reply_to, "Reply-To");
- rfc2047_encode_string (&env->x_label);
-
-- if (env->subject)
-+ if (env->subject && !option(OPTBBSISLAME))
- {
- rfc2047_encode_string (&env->subject);
- }