diff options
-rw-r--r-- | chinese/mutt/Makefile | 14 | ||||
-rw-r--r-- | chinese/mutt/distinfo | 30 | ||||
-rw-r--r-- | chinese/mutt/files/patch-zh-mutt | 494 |
3 files changed, 501 insertions, 37 deletions
diff --git a/chinese/mutt/Makefile b/chinese/mutt/Makefile index 68c7bd414871..bc500eabcf0c 100644 --- a/chinese/mutt/Makefile +++ b/chinese/mutt/Makefile @@ -9,7 +9,7 @@ CATEGORIES= chinese MASTERDIR= ${.CURDIR}/../../mail/mutt-devel -REVISEDATE= 20060703 +REVISEDATE= 20080522 PORTREVISION= ${REVISEDATE} # XXX: Currently PORTREVISION assignment is not perfect. It needs to @@ -18,14 +18,12 @@ PORTREVISION= ${REVISEDATE} MAINTAINER= rafan@FreeBSD.org COMMENT= The Mongrel of Mail User Agents with Chinese support -PATCH_SITES= ${MASTER_SITE_LOCAL:S/$/:tw/} -PATCH_SITE_SUBDIR= rafan/chinese/:tw -TW_PATCH_VERSION= 1.5.16-${REVISEDATE} -PATCHFILES= ${PKGNAMEPREFIX}mutt-${TW_PATCH_VERSION}.diff.gz:tw - LIB_DEPENDS+= hz.0:${PORTSDIR}/chinese/autoconvert CFLAGS+= -D_DONT_USE_CTYPE_INLINE_ +LDFLAGS+= -lhz + +EXTRA_PATCHES+= ${.CURDIR}/files/patch-* WITH_MUTT_LOCALES_FIX= yes WITH_MUTT_NCURSES= yes @@ -37,7 +35,9 @@ WITHOUT_MUTT_COMPRESSED_FOLDERS=yes .endif MUTT_SLAVE_HTML_PAGES= 1 -MD5_FILE= ${.CURDIR}/distinfo PKGMESSAGE= ${.CURDIR}/pkg-message +post-patch:: + @${REINPLACE_CMD} -e '/^mutt_SOURCES/s/\\$$/ myiconv.c \\/' ${WRKSRC}/Makefile.am + .include "${MASTERDIR}/Makefile" diff --git a/chinese/mutt/distinfo b/chinese/mutt/distinfo deleted file mode 100644 index 23e4dc02fd13..000000000000 --- a/chinese/mutt/distinfo +++ /dev/null @@ -1,30 +0,0 @@ -MD5 (mutt/mutt-1.5.17.tar.gz) = 49387458be0cb52b85ae0d73af699aae -SHA256 (mutt/mutt-1.5.17.tar.gz) = 17865b1a10e23ccf8757c05657c7d7f7055457f0a04eeacd9ee560eeb6defa81 -SIZE (mutt/mutt-1.5.17.tar.gz) = 3572651 -MD5 (mutt/patch-1.5.17.rr.compressed.gz) = 4f8edaa937d308d80f0f585b1c7fe47c -SHA256 (mutt/patch-1.5.17.rr.compressed.gz) = ffef4854a558264b6873517f4b4be8e3390eeacec03f2f5aef0cf5c2d43953ad -SIZE (mutt/patch-1.5.17.rr.compressed.gz) = 10124 -MD5 (mutt/patch-1.5.17.vvv.nntp.gz) = 42945bbe500e8e016d6760a05fd2e8ed -SHA256 (mutt/patch-1.5.17.vvv.nntp.gz) = 2bc47e018a2188d429ddf6189de83a7a4c30d55f1131dfb09d667237787a09e3 -SIZE (mutt/patch-1.5.17.vvv.nntp.gz) = 55463 -MD5 (mutt/patch-1.5.4.cd.ifdef.1) = a545036cdb55519154d0b35465f52daa -SHA256 (mutt/patch-1.5.4.cd.ifdef.1) = 7d11892bcc688bbc82b5996ca0fda2d4446d8e928bec50b2731f8a3a5d9be373 -SIZE (mutt/patch-1.5.4.cd.ifdef.1) = 3545 -MD5 (mutt/patch-1.5.17.vvv.initials.gz) = 08849d642e467bbd17eb7411ba63bf48 -SHA256 (mutt/patch-1.5.17.vvv.initials.gz) = 6b1829032a8cfc527f7d1abc6f7a2af6c8fdb8cd080b03a96f94e72cc75ad29c -SIZE (mutt/patch-1.5.17.vvv.initials.gz) = 679 -MD5 (mutt/patch-1.5.17.vvv.quote.gz) = d93d91a70d9c25ca917d56738dd57246 -SHA256 (mutt/patch-1.5.17.vvv.quote.gz) = fc68dac081bea1b5a9d345c75e2861db2cdc00341fd17b6f0ccd454c02bc4767 -SIZE (mutt/patch-1.5.17.vvv.quote.gz) = 2105 -MD5 (mutt/p0-patch-1.5.6.dw.mbox-hook.1) = 9e29a6778ab07a4de3442691e4573fea -SHA256 (mutt/p0-patch-1.5.6.dw.mbox-hook.1) = ec9511b86a595f9b4f1f96b05d9e9e12e997bc62b0a0f2b5a36e2817dee61406 -SIZE (mutt/p0-patch-1.5.6.dw.mbox-hook.1) = 6405 -MD5 (mutt/mutt-1.5.16.vc.greeting) = 4bd9beeb74d075e4418e86e8ed887aa0 -SHA256 (mutt/mutt-1.5.16.vc.greeting) = cf05aeab5f1813864aa72b68f59a579c46dacf2fbd8e5fd064b920012320b986 -SIZE (mutt/mutt-1.5.16.vc.greeting) = 4526 -MD5 (mutt/patch-1.5.17.sidebar.20071102.txt) = 93890c4a5bc1628018a701946a0c3ff5 -SHA256 (mutt/patch-1.5.17.sidebar.20071102.txt) = 1d8dda9fed1e1592ff9004e2c776c2f4a84e4e75ca872542e8e07113516fc27b -SIZE (mutt/patch-1.5.17.sidebar.20071102.txt) = 50439 -MD5 (mutt/zh-mutt-1.5.16-20060703.diff.gz) = 2731d422bf48c129626c792068bb2149 -SHA256 (mutt/zh-mutt-1.5.16-20060703.diff.gz) = 302b7759030fea7c091dbd0ab81d0bfa2ce5a3b51637e3f6609453f6b2e8756d -SIZE (mutt/zh-mutt-1.5.16-20060703.diff.gz) = 4804 diff --git a/chinese/mutt/files/patch-zh-mutt b/chinese/mutt/files/patch-zh-mutt new file mode 100644 index 000000000000..1ff11d78a478 --- /dev/null +++ b/chinese/mutt/files/patch-zh-mutt @@ -0,0 +1,494 @@ +diff -ruN mutt-1.5.18.orig/init.h init.h +--- mutt-1.5.18.orig/init.h 2008-05-22 09:18:39.000000000 +0800 ++++ init.h 2008-05-22 09:18:46.000000000 +0800 +@@ -270,6 +270,11 @@ + ** unset, you must first use the tag-prefix function (default: ";") to + ** make the next function apply to all tagged messages. + */ ++ { "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 +@@ -2521,7 +2526,7 @@ + ** mutt scores are always greater than or equal to zero, the default setting + ** of this variable will never mark a message read. + */ +- { "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 +@@ -2964,7 +2969,7 @@ + ** machine without having to enter a password. + */ + #endif +- { "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.18.orig/mbyte.c mbyte.c +--- mutt-1.5.18.orig/mbyte.c 2008-05-22 09:18:39.000000000 +0800 ++++ mbyte.c 2008-05-22 09:18:46.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; +@@ -315,7 +328,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; +@@ -323,7 +336,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; +@@ -331,7 +344,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; +@@ -356,13 +369,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) +@@ -372,13 +403,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.18.orig/mutt.h mutt.h +--- mutt-1.5.18.orig/mutt.h 2008-05-22 09:18:39.000000000 +0800 ++++ mutt.h 2008-05-22 09:18:46.000000000 +0800 +@@ -335,6 +335,7 @@ + OPTATTACHSPLIT, + OPTAUTOEDIT, + OPTAUTOTAG, ++ OPTBBSISLAME, + OPTBEEP, + OPTBEEPNEW, + OPTBOUNCEDELIVERED, +diff -ruN mutt-1.5.18.orig/myiconv.c myiconv.c +--- mutt-1.5.18.orig/myiconv.c 1970-01-01 08:00:00.000000000 +0800 ++++ myiconv.c 2008-05-22 09:18:46.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.18.orig/pager.c pager.c +--- mutt-1.5.18.orig/pager.c 2008-05-22 09:18:39.000000000 +0800 ++++ pager.c 2008-05-22 09:18:46.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" +@@ -1062,7 +1066,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; + +@@ -1154,7 +1158,10 @@ + { + if (wc == ' ') + space = ch; ++ old_t = t; + t = wcwidth (wc); ++ if(t > 1 || old_t > 1) ++ space = ch; + if (col + t > wrap_cols) + break; + col += t; +@@ -1371,6 +1378,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.18.orig/parse.c parse.c +--- mutt-1.5.18.orig/parse.c 2008-05-22 09:18:39.000000000 +0800 ++++ parse.c 2008-05-22 09:18:46.000000000 +0800 +@@ -426,7 +426,10 @@ + s++; + SKIPWS (s); + if ((s = mutt_get_parameter ("filename", (parms = parse_parameters (s)))) != 0) +- mutt_str_replace (&ct->filename, s); ++ { ++ mutt_str_replace (&ct->filename, s); ++ rfc2047_decode (&ct->filename); ++ } + if ((s = mutt_get_parameter ("name", parms)) != 0) + ct->form_name = safe_strdup (s); + mutt_free_parameter (&parms); +diff -ruN mutt-1.5.18.orig/pgp.c pgp.c +--- mutt-1.5.18.orig/pgp.c 2008-05-22 09:18:39.000000000 +0800 ++++ pgp.c 2008-05-22 09:18:46.000000000 +0800 +@@ -1001,7 +1001,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); + if ((fp = safe_fopen (sigfile, "w")) == NULL) +diff -ruN mutt-1.5.18.orig/po/zh_TW.po po/zh_TW.po +--- mutt-1.5.18.orig/po/zh_TW.po 2008-05-22 09:18:39.000000000 +0800 ++++ po/zh_TW.po 2008-05-22 09:19:25.000000000 +0800 +@@ -1768,7 +1768,7 @@ + "~w 檔案\t\t將訊息寫入檔案\n" + "~x\t\t停止修改並離開編輯器\n" + "~?\t\t這訊息\n" +-".\t\t如果是一行裏的唯一字符,則代表結束輸入\n" ++".\t\t如果是一行裡的唯一字符,則代表結束輸入\n" + + #: edit.c:52 + #, fuzzy +@@ -1800,7 +1800,7 @@ + "~w 檔案\t\t將訊息寫入檔案\n" + "~x\t\t停止修改並離開編輯器\n" + "~?\t\t這訊息\n" +-".\t\t如果是一行裏的唯一字符,則代表結束輸入\n" ++".\t\t如果是一行裡的唯一字符,則代表結束輸入\n" + + #: edit.c:188 + #, c-format +@@ -1809,7 +1809,7 @@ + + #: edit.c:330 + msgid "(End message with a . on a line by itself)\n" +-msgstr "(在一行裏輸入一個 . 符號來結束信件)\n" ++msgstr "(在一行裡輸入一個 . 符號來結束信件)\n" + + #: edit.c:389 + msgid "No mailbox.\n" +@@ -4509,7 +4509,7 @@ + + #: ../keymap_alldefs.h:43 + msgid "rename/move an attached file" +-msgstr "更改檔名∕移動 已被附帶的檔案" ++msgstr "更改檔名/移動 已被附帶的檔案" + + #: ../keymap_alldefs.h:44 + msgid "send the message" +@@ -4517,7 +4517,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" +@@ -5127,11 +5127,11 @@ + + #: ../keymap_alldefs.h:195 + msgid "Select the previous element of the chain" +-msgstr "選擇鏈結裏對上一個部份" ++msgstr "選擇鏈結裡對上一個部份" + + #: ../keymap_alldefs.h:196 + msgid "Select the next element of the chain" +-msgstr "選擇鏈結裏跟著的一個部份" ++msgstr "選擇鏈結裡跟著的一個部份" + + #: ../keymap_alldefs.h:197 + msgid "send the message through a mixmaster remailer chain" +diff -ruN mutt-1.5.18.orig/sendlib.c sendlib.c +--- mutt-1.5.18.orig/sendlib.c 2008-05-22 09:18:39.000000000 +0800 ++++ sendlib.c 2008-05-22 09:18:46.000000000 +0800 +@@ -2344,7 +2344,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); + } |