diff options
author | Steve Price <steve@FreeBSD.org> | 1998-10-10 04:29:27 +0000 |
---|---|---|
committer | Steve Price <steve@FreeBSD.org> | 1998-10-10 04:29:27 +0000 |
commit | 6aeac862c2c8d9ef5bd5933876093c65031ed860 (patch) | |
tree | e4a0d66a2fb5aaf9e7cce372bd45cc0df8db066e /chinese | |
parent | Update maintainer's Email address and update to version 1.0pl00. (diff) |
Update to version 4.05.
PR: 8025
Submitted by: maintainer
Notes
Notes:
svn path=/head/; revision=13829
Diffstat (limited to 'chinese')
32 files changed, 1625 insertions, 791 deletions
diff --git a/chinese/pine4/Makefile b/chinese/pine4/Makefile index 8e188ca86e2c..0ac722357f64 100644 --- a/chinese/pine4/Makefile +++ b/chinese/pine4/Makefile @@ -1,35 +1,46 @@ # New ports collection makefile for: pine # http://www.washington.edu/pine/ -# Version required: 4.02A +# Version required: 4.05 # Date created: 15 July 1998 # Whom: Liang Tai-hwa <avatar@www.mmlab.cse.yzu.edu.tw> # # $Id: Makefile,v 1.7 1998/08/24 01:24:38 steve Exp $ # -DISTNAME= pine4.02 -PKGNAME= zh-pine-4.02a -CATEGORIES= chinese mail news +DISTNAME= pine4.05 +PKGNAME= zh-pine-4.05 +CATEGORIES= chinese mail news MASTER_SITES= ftp://ftp.cac.washington.edu/pine/ -PATCH_SITES= ${MASTER_SITES} -PATCHFILES= ${DISTNAME}A.patch -PATCH_DIST_STRIP= -p1 - MAINTAINER= avatar@www.mmlab.cse.yzu.edu.tw -BROKEN_ELF= does not build ELF libs - NO_LATEST_LINK= yes MAN1= pine.1 pico.1 pilot.1 +post-patch: + for i in ${WRKSRC}/doc/pine.1 \ + ${WRKSRC}/pine/init.c \ + ${WRKSRC}/pine/pine.hlp \ + ${WRKSRC}/pine/mailcap.c \ + ${WRKSRC}/pine/osdep/os-bsf.h ; do \ + ${MV} $$i $$i.sed ; \ + ${SED} -e "s:@@PREFIX@@:${PREFIX}:g" \ + $$i.sed >$$i ; \ + ${RM} $$i.sed ; \ + done + for i in ${WRKSRC}/doc/tech-notes.txt \ + ${WRKSRC}/doc/tech-notes/*.html ; do \ + ${MV} $$i $$i.sed ; \ + ${SED} -e "s:/usr/local/lib/:${PREFIX}/etc/:g" \ + $$i.sed >$$i ; \ + ${RM} $$i.sed ; \ + done + do-build: @(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ./build bsf) do-install: - ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ - ${WRKSRC}/bin/libpico.so.2.0 ${PREFIX}/lib/libpico.so.2.0 ${INSTALL_PROGRAM} ${WRKSRC}/bin/pico ${PREFIX}/bin/pico ${INSTALL_PROGRAM} ${WRKSRC}/bin/pilot ${PREFIX}/bin/pilot ${INSTALL_PROGRAM} ${WRKSRC}/bin/pine ${PREFIX}/bin/pine @@ -44,7 +55,6 @@ do-install: ${INSTALL_MAN} ${WRKSRC}/doc/pilot.1 ${PREFIX}/man/man1/pilot.1 ${INSTALL_MAN} ${WRKSRC}/doc/pine.1 ${PREFIX}/man/man1/pine.1 .if !defined(NOPORTDOCS) - ${INSTALL_DATA} -d ${PREFIX}/share/doc/pine ${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} \ ${PREFIX}/share/doc/pine \ ${PREFIX}/share/doc/pine/tech-notes @@ -55,6 +65,11 @@ do-install: .endif post-install: - ${LDCONFIG} -m ${PREFIX}/lib/ + ${PREFIX}/bin/pine -P ${PREFIX}/etc/pine.conf -conf >${WRKSRC}/pine.conf + ${INSTALL_DATA} ${WRKSRC}/pine.conf ${PREFIX}/etc/pine.conf + @${ECHO} " - - - - - - - - - - - - - - - - - - - - - - - - -" + @${ECHO} " If Pine exits with \"Received abort signal\" try" + @${ECHO} " disabling the \"quell-folder-internal-msg\" feature" + @${ECHO} " - - - - - - - - - - - - - - - - - - - - - - - - -" .include <bsd.port.mk> diff --git a/chinese/pine4/distinfo b/chinese/pine4/distinfo index 0feef2c611e2..c4f77574f639 100644 --- a/chinese/pine4/distinfo +++ b/chinese/pine4/distinfo @@ -1,2 +1 @@ -MD5 (pine4.02.tar.gz) = 688979b5649473169bdbf22ea1c82fe7 -MD5 (pine4.02A.patch) = 96271a2a00293186941cad0c0175bd69 +MD5 (pine4.05.tar.gz) = 84dc37198853959188a551eb4ee8aa00 diff --git a/chinese/pine4/files/patch-ac b/chinese/pine4/files/patch-ac index 6c7f80761c01..b812c52c602a 100644 --- a/chinese/pine4/files/patch-ac +++ b/chinese/pine4/files/patch-ac @@ -1,15 +1,15 @@ ---- imap/src/osdep/unix/unix.c.orig Thu Jul 16 09:52:38 1998 -+++ imap/src/osdep/unix/unix.c Tue Jul 28 08:34:59 1998 -@@ -1008,7 +1008,11 @@ - /* try again if file exists(?) */ - if (!stat (hitch,&sb)) break; +--- imap/src/osdep/unix/unix.c.orig Thu Sep 3 15:07:07 1998 ++++ imap/src/osdep/unix/unix.c Tue Sep 22 13:36:19 1998 +@@ -1010,7 +1010,11 @@ + case EACCES: /* protection failure */ + if (stat (hitch,&sb)) { /* try again if file exists(?) */ /* punt silently if paranoid site */ -- if (mail_parameters (NIL,GET_LOCKEACCESERROR,NIL)) -+ if ( -+#ifdef __FreeBSD__ -+ strncmp(lock,"/var/mail/",10) && /* /var/mail/... isn't lockable */ +- if (mail_parameters (NIL,GET_LOCKEACCESERROR,NIL)) ++ if ( ++#ifdef __FreeBSD__ ++ strncmp(lock,"/var/mail/",10) && /* /var/mail/... isn't lockable */ +#endif -+ mail_parameters (NIL,GET_LOCKEACCESERROR,NIL)) - default: /* some other error */ - mm_log (tmp,WARN); /* this is probably not good */ - *lock = '\0'; /* give up on lock file */ ++ mail_parameters (NIL,GET_LOCKEACCESERROR,NIL)) + mm_log ("Mailbox vulnerable - directory must have 1777 protection", + WARN); + *lock = '\0'; /* give up on lock file */ diff --git a/chinese/pine4/files/patch-ai b/chinese/pine4/files/patch-ai index b54cd830dc16..f50baad1941c 100644 --- a/chinese/pine4/files/patch-ai +++ b/chinese/pine4/files/patch-ai @@ -1,5 +1,5 @@ ---- pico/browse.c.orig Sat Jul 11 06:41:25 1998 -+++ pico/browse.c Tue Aug 4 12:42:13 1998 +--- pico/browse.c.orig Wed Sep 16 08:19:17 1998 ++++ pico/browse.c Tue Sep 22 17:29:07 1998 @@ -126,12 +126,12 @@ @@ -18,7 +18,7 @@ }; #define QUIT_KEY 1 #define EXEC_KEY 2 -@@ -331,7 +331,7 @@ +@@ -333,7 +333,7 @@ child[0] = '\0'; if((gmode&MDTREE) && !in_oper_tree(dir)){ @@ -27,7 +27,7 @@ sleep(2); return(0); } -@@ -419,7 +419,7 @@ +@@ -421,7 +421,7 @@ else{ if(timeo && (c == NODATA || time_to_check())) if(pico_new_mail()) @@ -36,7 +36,7 @@ } if(km_popped) -@@ -695,7 +695,7 @@ +@@ -697,7 +697,7 @@ gmp->current->fname); /* make sure selected isn't a directory or executable */ if(!LikelyASCII(child)){ @@ -45,7 +45,7 @@ break; } -@@ -725,13 +725,13 @@ +@@ -727,13 +727,13 @@ return(0); } @@ -61,7 +61,7 @@ break; } -@@ -748,11 +748,11 @@ +@@ -750,11 +750,11 @@ {NULL, NULL, 0, KS_NONE}, }; @@ -75,7 +75,7 @@ /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -763,7 +763,7 @@ +@@ -765,7 +765,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); break; case ABORT: @@ -84,7 +84,7 @@ i++; break; case FALSE: -@@ -771,7 +771,7 @@ +@@ -773,7 +773,7 @@ i++; if(tmp[0] == '\0'){ @@ -93,7 +93,7 @@ break; } -@@ -790,12 +790,12 @@ +@@ -792,12 +792,12 @@ case 'D': if(gmp->current->mode == FIODIR){ /* BUG: if dir is empty it should be deleted */ @@ -108,7 +108,7 @@ break; } -@@ -806,17 +806,17 @@ +@@ -808,17 +808,17 @@ while(i++ < 2){ /* verify twice!! */ if(i == 1){ if(fexist(child, "w", (off_t *)NULL) != FIOSUC) @@ -131,7 +131,7 @@ NULL); break; } -@@ -824,7 +824,7 @@ +@@ -826,7 +826,7 @@ if(status == TRUE){ if(unlink(child) < 0){ @@ -140,7 +140,7 @@ } else{ /* fix up pointers and redraw */ tp = gmp->current; -@@ -893,12 +893,12 @@ +@@ -903,12 +903,12 @@ while(!i){ @@ -155,7 +155,7 @@ /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -906,7 +906,7 @@ +@@ -916,7 +916,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); break; case ABORT: @@ -164,7 +164,7 @@ i++; break; case FALSE: -@@ -917,17 +917,17 @@ +@@ -927,17 +927,17 @@ strcpy(child, gethomedir(NULL)); if(!compresspath(gmp->dname, child, NLINE)){ @@ -180,12 +180,12 @@ } if((gmode&MDTREE) && !in_oper_tree(child)){ -- emlwrite("Attempt to Goto directory denied", NULL); -+ emlwrite("已拒絕使用者切換目錄的請求", NULL); +- emlwrite("\007 Can't go outside of %s in restricted mode", ++ emlwrite("\007 限制模式中無法離開 %s", + opertree); break; } - -@@ -943,7 +943,7 @@ +@@ -954,7 +954,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); } else @@ -194,16 +194,7 @@ break; default: -@@ -956,7 +956,7 @@ - case 'a': /* Add */ - case 'A': - if(gmode&MDSCUR){ /* not allowed! */ -- emlwrite("Copy not allowed in restricted mode",NULL); -+ emlwrite("無法在限制模式中新增檔案",NULL); - break; - } - -@@ -965,10 +965,10 @@ +@@ -976,10 +976,10 @@ while(!i){ @@ -212,11 +203,11 @@ QFFILE, NULL)){ case HELPCH: - emlwrite("\007No help yet!", NULL); -+ emlwrite("\007尚無輔助說明!", NULL); ++ emlwrite("\007尚無輔助說明!", NULL); /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -976,7 +976,7 @@ +@@ -987,7 +987,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); break; case ABORT: @@ -225,7 +216,7 @@ i++; break; case FALSE: -@@ -987,7 +987,7 @@ +@@ -998,23 +998,23 @@ i++; if(child[0] == '\0'){ @@ -234,16 +225,26 @@ break; } -@@ -995,7 +995,7 @@ - sprintf(child, "%s%c%s", gmp->dname, C_FILESEP, tmp); + if(!compresspath(gmp->dname, child, NLINE)){ +- emlwrite("Too many ..'s in name", NULL); ++ emlwrite("檔名中有太多的 .. 了", NULL); + break; + } + + if((gmode&MDTREE) && !in_oper_tree(child)){ +- emlwrite("\007Restricted mode allows Add in %s only", ++ emlwrite("\007限制模式中僅允許\在 %s 中新增檔案", + opertree); + break; + } if((status = fexist(child, "w", (off_t *)NULL)) == FIOSUC){ - sprintf(tmp,"File \"%.*s\" already exists!", -+ sprintf(tmp,"檔案 \"%.*s\" 已存在!", ++ sprintf(tmp,"檔案 \"%.*s\" 已存在!", NLINE - 20, child); emlwrite(tmp, NULL); break; -@@ -1011,7 +1011,7 @@ +@@ -1030,7 +1030,7 @@ } else{ /* highlight new file */ ffclose(); @@ -252,7 +253,7 @@ if((p = strrchr(child, C_FILESEP)) == NULL){ emlwrite("Problems refiguring browser", NULL); -@@ -1059,12 +1059,12 @@ +@@ -1078,12 +1078,12 @@ case 'c': /* copy */ case 'C': if(gmp->current->mode == FIODIR){ @@ -267,7 +268,7 @@ break; } -@@ -1073,10 +1073,10 @@ +@@ -1092,10 +1092,10 @@ while(!i){ @@ -280,7 +281,7 @@ /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -1084,7 +1084,7 @@ +@@ -1103,7 +1103,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); break; case ABORT: @@ -289,7 +290,7 @@ i++; break; case FALSE: -@@ -1095,12 +1095,12 @@ +@@ -1114,33 +1114,33 @@ i++; if(child[0] == '\0'){ @@ -304,8 +305,18 @@ break; } -@@ -1108,12 +1108,12 @@ - sprintf(child, "%s%c%s", gmp->dname, C_FILESEP, tmp); + if(!compresspath(gmp->dname, child, NLINE)){ +- emlwrite("Too many ..'s in name", NULL); ++ emlwrite("檔名中有太多的 .. 了", NULL); + break; + } + + if((gmode&MDTREE) && !in_oper_tree(child)){ +- emlwrite("\007Restricted mode allows Copy in %s only", ++ emlwrite("\007限制模式中僅允許\在 %s 中複製檔案", + opertree); + break; + } if((status = fexist(child, "w", (off_t *)NULL)) == FIOSUC){ - sprintf(tmp,"File \"%.*s\" exists! OVERWRITE", @@ -320,7 +331,7 @@ NULL); break; } -@@ -1131,7 +1131,7 @@ +@@ -1158,7 +1158,7 @@ break; } else{ /* highlight new file */ @@ -329,7 +340,7 @@ if((p = strrchr(child, C_FILESEP)) == NULL){ emlwrite("Problems refiguring browser", NULL); -@@ -1174,12 +1174,12 @@ +@@ -1201,12 +1201,12 @@ i = 0; if(!strcmp(gmp->current->fname, "..")){ @@ -344,7 +355,7 @@ break; } -@@ -1187,10 +1187,10 @@ +@@ -1214,10 +1214,10 @@ while(!i){ @@ -357,7 +368,7 @@ /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -1198,7 +1198,7 @@ +@@ -1225,7 +1225,7 @@ PaintBrowser(gmp, 0, &crow, &ccol); break; case ABORT: @@ -366,7 +377,22 @@ i++; break; case FALSE: -@@ -1216,13 +1216,13 @@ +@@ -1238,12 +1238,12 @@ + } + + if(!compresspath(gmp->dname, child, NLINE)){ +- emlwrite("Too many ..'s in name", NULL); ++ emlwrite("檔名中有太多的 .. 了", NULL); + break; + } + + if((gmode&MDTREE) && !in_oper_tree(child)){ +- emlwrite("\007Restricted mode allows Rename in %s only", ++ emlwrite("\007限制模式中僅允許\在 %s 中更改檔名", + opertree); + break; + } +@@ -1251,13 +1251,13 @@ status = fexist(child, "w", (off_t *)NULL); if(status == FIOSUC || status == FIOFNF){ if(status == FIOSUC){ @@ -383,7 +409,7 @@ NULL); break; } -@@ -1232,7 +1232,7 @@ +@@ -1267,7 +1267,7 @@ gmp->current->fname); if(rename(tmp, child) < 0){ @@ -392,7 +418,7 @@ } else{ if((p = strrchr(child, C_FILESEP)) == NULL){ -@@ -1291,7 +1291,7 @@ +@@ -1326,7 +1326,7 @@ if((gmode&MDTREE) && !in_oper_tree(tmp)){ emlwrite( @@ -401,7 +427,7 @@ NULL); break; } -@@ -1312,7 +1312,7 @@ +@@ -1347,7 +1347,7 @@ strcpy(tmp, S_FILESEP); #endif else{ @@ -410,7 +436,7 @@ NULL); break; } -@@ -1339,12 +1339,12 @@ +@@ -1374,12 +1374,12 @@ PlaceCell(gmp, gmp->current, &row, &col); } else @@ -425,7 +451,7 @@ NULL); break; -@@ -1383,7 +1383,7 @@ +@@ -1425,7 +1425,7 @@ switch(readpattern("File name to find")){ case HELPCH: @@ -434,7 +460,7 @@ /* remove break and sleep after help text is installed */ sleep(3); break; -@@ -1414,10 +1414,10 @@ +@@ -1456,10 +1456,10 @@ } while(tp->next); @@ -447,7 +473,7 @@ if(tp){ PlaceCell(gmp, gmp->current, &row, &col); -@@ -1436,7 +1436,7 @@ +@@ -1478,7 +1478,7 @@ i++; /* make sure we jump out */ break; case ABORT: @@ -456,7 +482,7 @@ i++; break; case FALSE: -@@ -1460,7 +1460,7 @@ +@@ -1502,7 +1502,7 @@ mlerase(); } else @@ -465,7 +491,7 @@ i++; break; -@@ -1482,11 +1482,11 @@ +@@ -1524,11 +1524,11 @@ default: /* what? */ Default: if(c < 0xff) @@ -480,7 +506,7 @@ case NODATA: /* no op */ break; } -@@ -1516,7 +1516,7 @@ +@@ -1560,7 +1560,7 @@ errbuf[0] = '\0'; if((mp=(struct bmaster *)malloc(sizeof(struct bmaster))) == NULL){ @@ -489,7 +515,7 @@ return(NULL); } -@@ -1540,7 +1540,7 @@ +@@ -1584,7 +1584,7 @@ mp->cpf = mp->fpl = 0; mp->longest = 5; /* .. must be labeled! */ @@ -498,7 +524,7 @@ if((mp->names = getfnames(mp->dname, NULL, &nentries, errbuf)) == NULL){ free((char *) mp); -@@ -1559,7 +1559,7 @@ +@@ -1603,7 +1603,7 @@ * easily be made a user option later on... */ if((filtnames=(char **)malloc((nentries+1) * sizeof(char *))) == NULL){ @@ -507,7 +533,7 @@ zotmaster(&mp); return(NULL); } -@@ -1610,7 +1610,7 @@ +@@ -1654,7 +1654,7 @@ while(nentries--){ /* stat filtered files */ /* get a new cell */ if((ncp=(struct fcell *)malloc(sizeof(struct fcell))) == NULL){ @@ -516,7 +542,7 @@ zotfcells(mp->head); /* clean up cells */ free((char *) filtnames); free((char *) mp); -@@ -1780,22 +1780,22 @@ +@@ -1840,22 +1840,22 @@ BrowserKeys() { menu_browse[QUIT_KEY].name = (gmode&MDBRONLY) ? "Q" : "E"; @@ -546,7 +572,7 @@ } wkeyhelp(menu_browse); -@@ -1898,7 +1898,7 @@ +@@ -1958,7 +1958,7 @@ if((tp = tp->next) == NULL){ /* above top? */ if(secondtry++){ @@ -555,7 +581,7 @@ return(-1); } else{ -@@ -2064,10 +2064,10 @@ +@@ -2124,10 +2124,10 @@ if(!p) /* no suitable length! */ p = &dir[l-(term.t_ncol-i-19)]; @@ -568,7 +594,7 @@ if(i < j) /* keep it centered */ j = j - i; /* as long as we can */ -@@ -2196,18 +2196,18 @@ +@@ -2256,18 +2256,18 @@ if((line = (buf[i] == '\n') ? 0 : line + 1) >= LA_LINE_LIMIT || !buf[i]){ rv = FALSE; diff --git a/chinese/pine4/files/patch-ak b/chinese/pine4/files/patch-ak index ea7b9f829357..4c119517546a 100644 --- a/chinese/pine4/files/patch-ak +++ b/chinese/pine4/files/patch-ak @@ -1,5 +1,5 @@ --- pico/display.c.orig Sat Jun 20 01:19:53 1998 -+++ pico/display.c Tue Aug 4 12:42:14 1998 ++++ pico/display.c Tue Sep 22 18:30:04 1998 @@ -71,32 +71,32 @@ * Standard pico keymenus... */ @@ -15,8 +15,9 @@ + {"^X", "離開", KS_EXIT}, {"^J", "重整段落", KS_JUSTIFY}, + {"^W", "搜尋", KS_WHEREIS}, {"^V", "下一頁", KS_NEXTPAGE}, {"^U", NULL, KS_NONE}, - #ifdef SPELLER +-#ifdef SPELLER - {"^T", "To Spell", KS_SPELLCHK} ++#if defined(SPELLER) && !defined(__FreeBSD__) + {"^T", "拼字檢查", KS_SPELLCHK} #else - {"^D", "Del Char", KS_NONE} @@ -38,8 +39,9 @@ + {"^C", "取消", KS_CANCEL}, {"^J", "重整段落", KS_JUSTIFY}, + {NULL, NULL, KS_NONE}, {"^V", "下一頁", KS_NEXTPAGE}, {"^U", NULL, KS_NONE}, - #ifdef SPELLER +-#ifdef SPELLER - {"^T", "To Spell", KS_SPELLCHK} ++#if defined(SPELLER) && !defined(__FreeBSD__) + {"^T", "拼字檢查", KS_SPELLCHK} #else - {"^D", "Del Char", KS_NONE} @@ -111,8 +113,9 @@ - ? "Postpone" : NULL; + ? "暫緩寫信" : NULL; menu_compose[WHERE_KEY].name = (Pmaster->alt_ed) ? "^_" : "^W"; - menu_compose[WHERE_KEY].label = (Pmaster->alt_ed) ? "Alt Edit" +- menu_compose[WHERE_KEY].label = (Pmaster->alt_ed) ? "Alt Edit" - : "Where is"; ++ menu_compose[WHERE_KEY].label = (Pmaster->alt_ed) ? "自定編輯器" + : "搜尋"; KS_OSDATASET(&menu_compose[WHERE_KEY], (Pmaster->alt_ed) ? KS_ALTEDITOR : KS_WHEREIS); diff --git a/chinese/pine4/files/patch-ao b/chinese/pine4/files/patch-ao index 8e5f28a4dc63..cb277b83db43 100644 --- a/chinese/pine4/files/patch-ao +++ b/chinese/pine4/files/patch-ao @@ -1,5 +1,26 @@ ---- pico/file.c.orig Fri Jul 17 08:11:52 1998 -+++ pico/file.c Tue Aug 4 12:42:14 1998 +--- pico/file.c.orig Fri Aug 28 07:02:07 1998 ++++ pico/file.c Tue Sep 22 18:45:49 1998 +@@ -63,17 +63,17 @@ + return(s); + + if(gmode&MDSCUR){ +- emlwrite("File reading disabled in secure mode",NULL); ++ emlwrite("安全模式中已關閉讀取檔案的功\能",NULL); + return(0); + } + + if (strlen(fname) == 0) { +- emlwrite("No file name entered",NULL); ++ emlwrite("尚未輸入檔案名",NULL); + return(0); + } + + if((gmode&MDTREE) && !in_oper_tree(fname)){ +- emlwrite("Can't read file from outside of %s", opertree); ++ emlwrite("無法讀取 %s 以外的檔案", opertree); + return(0); + } + @@ -137,13 +137,13 @@ menu_ins[last_menu].name = "^T"; @@ -16,7 +37,7 @@ KS_OSDATASET(&menu_ins[last_menu], KS_NONE); } -@@ -159,26 +159,25 @@ +@@ -159,43 +159,42 @@ if(gmode & MDCMPLT){ menu_ins[++last_menu].name = msg ? "" : "TAB"; menu_ins[last_menu].key = (CTRL|'I'); @@ -38,7 +59,7 @@ - msg ? "folder" : "directory"); + : "家", + msg ? "檔案匣" : "目錄", msg ? "信件編號" : "檔案"); - s = mlreplyd(prompt, fname, NFILEN, QDEFLT, msg ? NULL : menu_ins); + s = mlreplyd(prompt, fname, NLINE, QDEFLT, msg ? NULL : menu_ins); /* something to read and it was edited or the default accepted */ if(fname[0] && (s == TRUE || s == FALSE)){ bye++; @@ -49,3 +70,198 @@ } else{ bye++; + if(gmode&MDSCUR){ +- emlwrite("Can't insert file in restricted mode",NULL); ++ emlwrite("在限制模式中無法插入檔案",NULL); + } + else{ + if(gmode&MDTREE && !compresspath(opertree, fname, NLINE)){ + emlwrite( +- "Can't insert file from outside of %s: too many ..'s", ++ "無法在 %s 以外的地方插入檔案:太多 .. 了", + opertree); + } + else{ + fixpath(fname, NLINE); + + if((gmode&MDTREE) && !in_oper_tree(fname)) +- emlwrite("Can't insert file from outside of %s", ++ emlwrite("無法在 %s 以外的地方插入檔案", + opertree); + else + retval = ifile(fname); +@@ -250,7 +249,7 @@ + break; + case (CTRL|'T'): + if(msg){ +- emlwrite("Can't select messages yet!", NULL); ++ emlwrite("還無法選擇信件!", NULL); + } + else{ + if(*fname && isdir(fname, NULL, NULL)) +@@ -264,7 +263,7 @@ + if((s = FileBrowse(dir, NLINE, fname, NLINE, + NULL, FB_READ)) == 1){ + if(gmode&MDSCUR){ +- emlwrite("Can't insert in restricted mode", ++ emlwrite("在限制模式中無法插入", + NULL); + sleep(2); + } +@@ -305,7 +304,7 @@ + + if(gmode&MDSCUR){ + emlwrite( +- "\007Restricted mode disallows uploaded command", ++ "\007限制模式中不允許\上載", + NULL); + return(0); + } +@@ -403,17 +402,17 @@ + + strcpy(curbp->b_fname, fname); + if ((gmode&MDTREE) && !in_oper_tree(fname)) { +- emlwrite("Can't read file from outside of %s", opertree); ++ emlwrite("無法讀取 %s 以外的檔案", opertree); + s = FIOERR; + } + else if ((s=ffropen(fname)) != FIOSUC){ /* Hard file open. */ + if(s == FIOFNF) /* File not found. */ +- emlwrite("New file", NULL); ++ emlwrite("新檔", NULL); + else + fioperr(s, fname); + } + else{ +- emlwrite("Reading file", NULL); ++ emlwrite("讀取檔案", NULL); + nline = 0L; + done = newline = 0; + while(!done) +@@ -479,14 +478,14 @@ + fname[0] = '\0'; + + menu_write[0].name = "^T"; +- menu_write[0].label = "To Files"; ++ menu_write[0].label = "檔案列表"; + menu_write[0].key = (CTRL|'T'); + menu_write[1].name = "TAB"; +- menu_write[1].label = "Complete"; ++ menu_write[1].label = "完成"; + menu_write[1].key = (CTRL|'I'); + menu_write[2].name = NULL; + for(;!(gmode & MDTOOL);){ +- s = mlreplyd("File Name to write : ", fname, NFILEN, ++ s = mlreplyd("欲寫入的檔名:", fname, NFILEN, + QDEFLT|QFFILE, menu_write); + + switch(s){ +@@ -497,7 +496,7 @@ + } + case TRUE: + if(gmode&MDTREE && !compresspath(opertree, fname, NFILEN)){ +- emlwrite("Can't write outside of %s: too many ..'s", ++ emlwrite("無法寫入 %s 以外的檔案:太多 .. 了", + opertree); + sleep(2); + continue; +@@ -505,7 +504,7 @@ + else{ + fixpath(fname, NFILEN); /* fixup ~ in file name */ + if((gmode&MDTREE) && !in_oper_tree(fname)){ +- emlwrite("Can't write outside of %s", opertree); ++ emlwrite("無法寫入 %s 以外的檔案", opertree); + sleep(2); + continue; + } +@@ -586,12 +585,12 @@ + strcpy(fname, shows); + } + else { +- emlwrite("Cannot write. File name too long!!",NULL); ++ emlwrite("無法寫入。檔名過長!",NULL); + sleep(3); + } + } + else if (s == -1){ +- emlwrite("Cannot write. File name too long!!",NULL); ++ emlwrite("無法寫入。檔名過長!",NULL); + sleep(3); + } + refresh(FALSE, 1); +@@ -629,7 +628,7 @@ + return(ABORT); + } + } +- emlwrite("Writing...", NULL); ++ emlwrite("正在寫入...", NULL); + + if ((s=writeout(fname, 0)) != -1) { + if(!(gmode&MDTOOL)){ +@@ -646,9 +645,9 @@ + } + + if(s > 1) +- emlwrite("Wrote %d lines", (void *)s); ++ emlwrite("寫入 %d 行", (void *)s); + else +- emlwrite("Wrote 1 line", NULL); ++ emlwrite("寫入 1 行", NULL); + } + return ((s == -1) ? FALSE : TRUE); + } +@@ -674,12 +673,12 @@ + if ((curbp->b_flag&BFCHG) == 0) /* Return, no changes. */ + return (TRUE); + if (curbp->b_fname[0] == 0) { /* Must have a name. */ +- emlwrite("No file name", NULL); ++ emlwrite("沒有檔名", NULL); + sleep(2); + return (FALSE); + } + +- emlwrite("Writing...", NULL); ++ emlwrite("正在寫入...", NULL); + if ((s=writeout(curbp->b_fname, 0)) != -1) { + curbp->b_flag &= ~BFCHG; + wp = wheadp; /* Update mode lines. */ +@@ -690,10 +689,10 @@ + wp = wp->w_wndp; + } + if(s > 1){ +- emlwrite("Wrote %d lines", (void *)s); ++ emlwrite("寫入 %d 行", (void *)s); + } + else +- emlwrite("Wrote 1 line", NULL); ++ emlwrite("寫入 1 行", NULL); + } + return (s); + } +@@ -812,7 +811,7 @@ + curbp->b_flag &= ~BFTEMP; /* and are not temporary*/ + curbp->b_linecnt = -1; /* must be recalculated */ + +- emlwrite("Inserting %s.", fname); ++ emlwrite("正在插入 %s。", fname); + done = newline = 0; + nline = 0L; + while(!done) +@@ -822,7 +821,7 @@ + else + forwchar(FALSE, 1); + +- sprintf(line,"Inserted %d line%s", nline, (nline>1) ? "s" : ""); ++ sprintf(line,"已插入 %d 行", nline); + emlwrite(line, NULL); + break; + } +@@ -910,7 +909,7 @@ + strcat(fn, S_FILESEP); + } + else{ +- emlwrite("File name too BIG!!",0); ++ emlwrite("檔名太大了!!",0); + sleep(3); + *fn = '\0'; + } diff --git a/chinese/pine4/files/patch-as b/chinese/pine4/files/patch-as index bc2d25b502a9..18a08ee415fc 100644 --- a/chinese/pine4/files/patch-as +++ b/chinese/pine4/files/patch-as @@ -1,39 +1,44 @@ ---- pico/search.c.orig Fri Jun 26 05:48:14 1998 -+++ pico/search.c Wed Aug 19 10:45:20 1998 +--- pico/search.c.orig Sat Sep 12 01:15:02 1998 ++++ pico/search.c Tue Sep 22 18:54:24 1998 @@ -127,9 +127,9 @@ /* ask the user for the text of a pattern */ while(1){ - if (gmode & MDREPLACE) -- status = srpat("Search", defpat, repl_mode); -+ status = srpat("搜尋", defpat, repl_mode); - else -- status = readpattern("Search"); -+ status = readpattern("搜尋"); - - switch(status){ - case TRUE: /* user typed something */ -@@ -138,9 +138,9 @@ - case HELPCH: /* help requested */ - if(Pmaster) - (*Pmaster->helper)(Pmaster->search_help, -- "Help for Searching", 1); -+ "搜尋的輔助說明", 1); - else -- pico_help(SearchHelpText, "Help for Searching", 1); -+ pico_help(SearchHelpText, "搜尋的輔助說明", 1); - case (CTRL|'L'): /* redraw requested */ - refresh(FALSE, 1); - update(); -@@ -165,7 +165,7 @@ - break; - default: - if(status == ABORT) -- emlwrite("Search Cancelled", NULL); -+ emlwrite("取消搜尋", NULL); - else - mlerase(); - curwp->w_flag |= WFMODE; -@@ -212,16 +212,16 @@ + if (gmode & MDREPLACE) +- status = srpat("Search", defpat, repl_mode); ++ status = srpat("搜尋", defpat, repl_mode); + else +- status = readpattern("Search"); ++ status = readpattern("搜尋"); + + switch(status){ + case TRUE: /* user typed something */ +@@ -142,14 +142,14 @@ + + saved_state = save_pico_state(); + (*Pmaster->helper)(Pmaster->search_help, +- "Help for Searching", 1); ++ "搜尋的輔助說明", 1); + if(saved_state){ + restore_pico_state(saved_state); + free_pico_state(saved_state); + } + } + else +- pico_help(SearchHelpText, "Help for Searching", 1); ++ pico_help(SearchHelpText, "搜尋的輔助說明", 1); + + case (CTRL|'L'): /* redraw requested */ + refresh(FALSE, 1); +@@ -179,7 +179,7 @@ + + default: + if(status == ABORT) +- emlwrite("Search Cancelled", NULL); ++ emlwrite("取消搜尋", NULL); + else + mlerase(); + +@@ -228,16 +228,16 @@ /* and complain if not there */ if (status == FALSE){ @@ -54,75 +59,68 @@ } else if(status == TRUE){ emlwrite("", NULL); -@@ -251,7 +251,7 @@ - /* additional 'replace all' menu option */ - menu_pat[0].name = "^X"; - menu_pat[0].key = (CTRL|'X'); -- menu_pat[0].label = "Repl All"; -+ menu_pat[0].label = "取代所有"; - KS_OSDATASET(&menu_pat[0], KS_NONE); - menu_pat[1].name = NULL; - -@@ -263,12 +263,12 @@ - (*term.t_rev)(0); - - if (repl_all) -- strcpy(prompt, "Replace every \""); -+ strcpy(prompt, "取代每一個 \""); - else -- strcpy(prompt, "Replace \""); -+ strcpy(prompt, "取代 \""); - - expandp(&defpat[0], &prompt[strlen(prompt)], NPAT/2); -- strcat(prompt, "\" with"); -+ strcat(prompt, "\" 為"); - if(rpat[0] != 0){ - strcat(prompt, " ["); - expandp(rpat, &prompt[strlen(prompt)], NPAT/2); -@@ -286,9 +286,9 @@ - case HELPCH: /* help requested */ - if(Pmaster) - (*Pmaster->helper)(Pmaster->search_help, -- "Help for Searching", 1); -+ "搜尋的輔助說明", 1); - else -- pico_help(SearchHelpText, "Help for Searching", 1); -+ pico_help(SearchHelpText, "搜尋的輔助說明", 1); - - case (CTRL|'L'): /* redraw requested */ - refresh(FALSE, 1); -@@ -298,10 +298,10 @@ - case (CTRL|'X'): /* toggle replace all option */ - if (repl_all){ - repl_all = FALSE; -- menu_pat[0].label = "Repl All"; -+ menu_pat[0].label = "取代所有"; - }else{ - repl_all = TRUE; -- menu_pat[0].label = "Repl One"; -+ menu_pat[0].label = "取代一個"; +@@ -267,7 +267,7 @@ + /* additional 'replace all' menu option */ + menu_pat[0].name = "^X"; + menu_pat[0].key = (CTRL|'X'); +- menu_pat[0].label = "Repl All"; ++ menu_pat[0].label = "取代所有"; + KS_OSDATASET(&menu_pat[0], KS_NONE); + menu_pat[1].name = NULL; + +@@ -279,10 +279,10 @@ + pputs(origpat, 1); /* highlight word */ + (*term.t_rev)(0); + +- sprintf(prompt, "Replace%s \"", repl_all ? " every" : ""); ++ sprintf(prompt, "取代%s \"", repl_all ? "每一個" : ""); + + expandp(&defpat[0], &prompt[strlen(prompt)], NPAT/2); +- strcat(prompt, "\" with"); ++ strcat(prompt, "\" 為"); + if(rpat[0] != 0){ + strcat(prompt, " ["); + expandp(rpat, &prompt[strlen(prompt)], NPAT/2); +@@ -324,14 +324,14 @@ + + saved_state = save_pico_state(); + (*Pmaster->helper)(Pmaster->search_help, +- "Help for Searching", 1); ++ "搜尋的輔助說明", 1); + if(saved_state){ + restore_pico_state(saved_state); + free_pico_state(saved_state); } - break; - -@@ -342,7 +342,7 @@ - else - { - if(status == ABORT) -- emlwrite("Replacement Cancelled", NULL); -+ emlwrite("取消取代", NULL); - else - mlerase(); - chword(defpat, defpat); -@@ -352,7 +352,7 @@ - - default: - if(status == ABORT) -- emlwrite("Replacement Cancelled", NULL); -+ emlwrite("取消取代", NULL); - else - mlerase(); - chword(defpat, defpat); -@@ -384,9 +384,9 @@ + } + else +- pico_help(SearchHelpText, "Help for Searching", 1); ++ pico_help(SearchHelpText, "搜尋的輔助說明", 1); + + case (CTRL|'L'): /* redraw requested */ + refresh(FALSE, 1); +@@ -341,18 +341,18 @@ + case (CTRL|'X'): /* toggle replace all option */ + if (repl_all){ + repl_all = FALSE; +- menu_pat[0].label = "Repl All"; ++ menu_pat[0].label = "取代所有"; + } + else{ + repl_all = TRUE; +- menu_pat[0].label = "Repl One"; ++ menu_pat[0].label = "取代一個"; + } + + break; + + default: + if(status == ABORT) +- emlwrite("Replacement Cancelled", NULL); ++ emlwrite("取消取代", NULL); + else + mlerase(); + chword(defpat, origpat); +@@ -401,9 +401,9 @@ (*term.t_rev)(0); fflush(stdout); @@ -134,8 +132,8 @@ expandp(&repl[0], &prompt[strlen(prompt)], NPAT/2); strcat(prompt, "\""); -@@ -400,13 +400,13 @@ - chword(orig, orig); /* replace word by itself */ +@@ -417,13 +417,13 @@ + chword(realpat, realpat); /* replace word by itself */ update(); if(status == ABORT){ /* if cancelled return */ - emlwrite("Replace All cancelled after %d changes", (char *) n); @@ -150,7 +148,7 @@ return (FALSE); } } -@@ -423,18 +423,18 @@ +@@ -440,18 +440,18 @@ EXTRAKEYS menu_pat[4]; menu_pat[0].name = "^Y"; @@ -165,7 +163,7 @@ KS_OSDATASET(&menu_pat[1], KS_NONE); menu_pat[2].name = "^R"; if (repl_mode) -- menu_pat[2].label = "Don't Replace"; +- menu_pat[2].label = "No Replace"; + menu_pat[2].label = "不取代"; else - menu_pat[2].label = "Replace"; @@ -173,7 +171,7 @@ menu_pat[2].key = (CTRL|'R'); KS_OSDATASET(&menu_pat[2], KS_NONE); menu_pat[3].name = NULL; -@@ -485,11 +485,11 @@ +@@ -504,11 +504,11 @@ EXTRAKEYS menu_pat[3]; menu_pat[0].name = "^Y"; diff --git a/chinese/pine4/files/patch-au b/chinese/pine4/files/patch-au index 543234a9f097..04aa57854f0f 100644 --- a/chinese/pine4/files/patch-au +++ b/chinese/pine4/files/patch-au @@ -1,11 +1,11 @@ ---- pine/osdep/os-bsf.h.orig Fri Jun 26 14:19:54 1998 -+++ pine/osdep/os-bsf.h Wed Aug 19 10:45:25 1998 +--- pine/osdep/os-bsf.h.orig Tue Sep 22 11:19:52 1998 ++++ pine/osdep/os-bsf.h Tue Sep 22 11:23:50 1998 @@ -74,7 +74,7 @@ default-composer-hdrs or customized-hdrs to get at it. Instead of defining NEVER_ALLOW_CHANGING_FROM, an easier way of preventing From changing is to put the feature "no-allow-changing-from" in the - /usr/local/lib/pine.conf.fixed file. -+ /usr/local/etc/pine.conf.fixed file. ++ @@PREFIX@@/etc/pine.conf.fixed file. ----*/ /* #define NEVER_ALLOW_CHANGING_FROM /* probably not needed */ @@ -14,7 +14,18 @@ file is included in the os-*.ic file for your system. ----*/ -/* #define BACKGROUND_POST /* comment out to disable posting from child */ -+#define BACKGROUND_POST /* comment out to disable posting from child */ ++#define BACKGROUND_POST /* comment out to disable posting from child */ + + + +@@ -160,8 +160,8 @@ + + + /*----- System-wide config file ----------------------------------------*/ +-#define SYSTEM_PINERC "/usr/local/lib/pine.conf" +-#define SYSTEM_PINERC_FIXED "/usr/local/lib/pine.conf.fixed" ++#define SYSTEM_PINERC "@@PREFIX@@/etc/pine.conf" ++#define SYSTEM_PINERC_FIXED "@@PREFIX@@/etc/pine.conf.fixed" diff --git a/chinese/pine4/files/patch-aw b/chinese/pine4/files/patch-aw index e9165b7dc6e7..a1d2bf8b4f78 100644 --- a/chinese/pine4/files/patch-aw +++ b/chinese/pine4/files/patch-aw @@ -1,5 +1,5 @@ ---- pine/adrbkcmd.c.orig Sat Jul 11 01:32:16 1998 -+++ pine/adrbkcmd.c Tue Aug 4 12:42:16 1998 +--- pine/adrbkcmd.c.orig Wed Sep 16 06:11:08 1998 ++++ pine/adrbkcmd.c Tue Sep 22 18:58:32 1998 @@ -112,23 +112,23 @@ static struct key abook_view_keys[] = {HELP_MENU, @@ -49,7 +49,7 @@ INST_KEY_MENU(abook_text_km, abook_text_keys); #define VIEW_ABOOK_NONE 0 -@@ -301,15 +301,15 @@ +@@ -305,15 +305,15 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = so_text(out_store); sargs.text.src = CharStar; @@ -68,7 +68,7 @@ sargs.keys.menu = &abook_view_keymenu; setbitmap(sargs.keys.bitmap); -@@ -405,7 +405,7 @@ +@@ -421,7 +421,7 @@ if(adrbk_check_all_validity_now()){ if(resync_screen(pab, AddrBookScreen, 0)){ q_status_message(SM_ORDER | SM_DING, 3, 4, @@ -77,7 +77,7 @@ ps_global->mangled_screen = 1; break; } -@@ -433,7 +433,7 @@ +@@ -449,7 +449,7 @@ abe_copy = copy_ae(abe); dprint(9, (debugfile,"Calling edit_entry to edit from view\n")); edit_entry(pab->address_book, abe_copy, entry, @@ -86,16 +86,16 @@ /* * The ABOOK_EDITED case doesn't mean that we necessarily * changed something, just that we might have but we know -@@ -478,7 +478,7 @@ +@@ -494,7 +494,7 @@ h_ab_text_or_vcard, RB_NORM); switch(i){ case 'x': - cancel_warning(NO_DING, "forward"); + cancel_warning(NO_DING, "轉寄"); + rv = 0; break; - case 't': -@@ -704,8 +704,8 @@ +@@ -729,8 +729,8 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = so_text(store); sargs.text.src = CharStar; @@ -106,7 +106,7 @@ sargs.bar.style = TextPercent; sargs.keys.menu = &abook_text_km; setbitmap(sargs.keys.bitmap); -@@ -772,8 +772,8 @@ +@@ -800,8 +800,8 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = so_text(store); sargs.text.src = src; @@ -117,7 +117,7 @@ sargs.bar.style = TextPercent; sargs.keys.menu = &abook_text_km; setbitmap(sargs.keys.bitmap); -@@ -796,19 +796,19 @@ +@@ -824,19 +824,19 @@ */ static struct headerentry headents_for_edit[]={ {"Nickname : ", "Nickname", h_composer_abook_nick, 12, 0, NULL, @@ -144,7 +144,7 @@ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE}, {NULL, NULL, NO_HELP, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE} -@@ -923,7 +923,7 @@ +@@ -951,7 +951,7 @@ pbuf.canceltest = warped ? pico_cancel_for_adrbk_edit : pico_cancel_for_adrbk_take; pbuf.expander = expand_addrs_for_pico; @@ -153,7 +153,7 @@ pbuf.resize = resize_for_pico; pbuf.winch_cleanup = winch_cleanup; pbuf.suspend = do_suspend; -@@ -938,7 +938,7 @@ +@@ -966,7 +966,7 @@ pbuf.browse_help = h_composer_browse; pbuf.attach_help = h_composer_ctrl_j; pbuf.composer_help = h_composer; @@ -162,7 +162,7 @@ readonly ? 'V' : islower((unsigned char)(*cmd)) ? toupper((unsigned char)*cmd) : *cmd, -@@ -1523,12 +1523,12 @@ +@@ -1551,12 +1551,12 @@ ps_global->redrawer = redraw_pico; fix_windsize(ps_global); @@ -177,7 +177,7 @@ break; } -@@ -1552,8 +1552,8 @@ +@@ -1580,8 +1580,8 @@ char *rstr = NULL; void (*redraw)() = ps_global->redrawer; @@ -188,7 +188,7 @@ ps_global->redrawer = redraw_pico; fix_windsize(ps_global); -@@ -1576,7 +1576,7 @@ +@@ -1604,7 +1604,7 @@ pico_cancel_for_adrbk_take(redraw_pico) void (*redraw_pico)(); { @@ -197,7 +197,7 @@ } -@@ -1584,7 +1584,7 @@ +@@ -1612,7 +1612,7 @@ pico_cancel_for_adrbk_edit(redraw_pico) void (*redraw_pico)(); { @@ -206,7 +206,7 @@ } -@@ -1701,16 +1701,16 @@ +@@ -1729,16 +1729,16 @@ if(ps_global->readonly_pinerc){ q_status_message1(SM_ORDER, 0, 3, @@ -227,7 +227,7 @@ return -1; } -@@ -1759,7 +1759,7 @@ +@@ -1787,7 +1787,7 @@ pbuf.browse_help = h_composer_browse; pbuf.attach_help = h_composer_ctrl_j; pbuf.composer_help = h_composer; @@ -236,7 +236,7 @@ pbuf.pine_anchor = set_titlebar(titlebar, ps_global->mail_stream, ps_global->context_current, -@@ -1828,8 +1828,8 @@ +@@ -1856,8 +1856,8 @@ if(editor_result & COMP_CANCEL){ ret = -1; q_status_message1(SM_ORDER, 0, 3, @@ -247,7 +247,7 @@ } else if(editor_result & COMP_EXIT){ if(!strcmp(server, def_serv ? def_serv : "") && -@@ -1837,8 +1837,8 @@ +@@ -1865,8 +1865,8 @@ !strcmp(nickname, def_nick ? def_nick : "")){ ret = -1; q_status_message1(SM_ORDER, 0, 3, @@ -258,7 +258,7 @@ } else{ -@@ -1898,8 +1898,8 @@ +@@ -1936,8 +1936,8 @@ if(*tmp == '\0'){ q_status_message1(SM_ORDER, 0, 3, @@ -269,7 +269,7 @@ ret = -1; goto get_out; } -@@ -1924,8 +1924,8 @@ +@@ -1962,8 +1962,8 @@ if(set_variable_list(global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK, new_list, TRUE)){ q_status_message1(SM_ORDER, 0, 3, @@ -280,7 +280,7 @@ set_current_val(&vars[global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK], TRUE, FALSE); -@@ -2099,7 +2099,7 @@ +@@ -2137,7 +2137,7 @@ if(ps_global->readonly_pinerc){ if(err) @@ -289,7 +289,7 @@ return -1; } -@@ -2116,10 +2116,10 @@ +@@ -2154,10 +2154,10 @@ if(err){ if(pab->type & GLOBAL) *err = @@ -302,7 +302,7 @@ } return -1; -@@ -2172,8 +2172,8 @@ +@@ -2210,8 +2210,8 @@ if(cnt > 1){ static ESCKEY_S opts[] = { @@ -313,7 +313,7 @@ {-1, 0, NULL, NULL}}; sprintf(tmp, -@@ -2191,7 +2191,7 @@ +@@ -2229,7 +2229,7 @@ case 'x': if(err) @@ -322,7 +322,7 @@ return -1; } -@@ -2202,7 +2202,7 @@ +@@ -2240,7 +2240,7 @@ case 'n': case 'x': if(err) @@ -331,7 +331,7 @@ return -1; -@@ -2247,7 +2247,7 @@ +@@ -2285,7 +2285,7 @@ case 'x': /* Cancel */ default: if(err) @@ -340,7 +340,7 @@ return -1; } -@@ -2267,7 +2267,7 @@ +@@ -2305,7 +2305,7 @@ case 'x': default: if(err) @@ -349,7 +349,7 @@ return -1; -@@ -2328,7 +2328,7 @@ +@@ -2366,7 +2366,7 @@ case 'n': default: if(err) @@ -358,7 +358,7 @@ return -1; } -@@ -2467,7 +2467,7 @@ +@@ -2505,7 +2505,7 @@ /* this also frees old variable contents for us */ if(set_variable_list(varnum, new_list, TRUE)){ if(err) @@ -367,7 +367,7 @@ set_current_val(&vars[varnum], TRUE, FALSE); free_list_array(&new_list); -@@ -2534,7 +2534,7 @@ +@@ -2572,7 +2572,7 @@ if(ps_global->readonly_pinerc){ if(msg) @@ -376,7 +376,7 @@ return -1; } -@@ -2544,12 +2544,12 @@ +@@ -2582,12 +2582,12 @@ opts[i].ch = 'u'; opts[i].rval = 'u'; opts[i].name = "U"; @@ -391,7 +391,7 @@ opts[i].ch = -1; deefault = 'u'; -@@ -2557,7 +2557,7 @@ +@@ -2595,7 +2595,7 @@ if(pab->type & GLOBAL){ if(vars[V_GLOB_ADDRBOOK].is_fixed){ if(msg) @@ -400,7 +400,7 @@ return -1; } -@@ -2577,7 +2577,7 @@ +@@ -2615,7 +2615,7 @@ else{ if(vars[V_ADDRESSBOOK].is_fixed){ if(msg) @@ -409,7 +409,7 @@ return -1; } -@@ -2616,7 +2616,7 @@ +@@ -2654,7 +2654,7 @@ if(rv == 'x'){ if(msg) @@ -418,32 +418,32 @@ return -1; } -@@ -2659,7 +2659,7 @@ +@@ -2697,7 +2697,7 @@ enum {NotSet, Pers, Glob, Empty} type1, type2; - int i, j; + int i, j, retval = -1; struct variable *vars = ps_global->vars; - char *cancel_msg = "Shuffle cancelled: couldn't save configuration file"; + char *cancel_msg = "取消重整:無法存入設定檔"; dprint(5, (debugfile, "- do_the_shuffle(%d, %d) -\n", anum1, anum2)); -@@ -2673,7 +2673,7 @@ +@@ -2711,7 +2711,7 @@ if(type1 == Empty){ if(msg) *msg = - cpystr("Shuffle cancelled: highlight entry you wish to shuffle"); + cpystr("取消重整:請先標示欲重整的項目"); - return -1; + return(retval); } -@@ -2690,14 +2690,14 @@ +@@ -2728,14 +2728,14 @@ if((type1 == Pers || type2 == Pers) && vars[V_ADDRESSBOOK].is_fixed){ if(msg) - *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing address book configuration"); + *msg = cpystr("動作取消:系統管理員不允許\改變地址簿設定"); - return -1; + return(retval); } if((type1 == Glob || type2 == Glob) && vars[V_GLOB_ADDRBOOK].is_fixed){ @@ -451,9 +451,9 @@ - *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing global address book config"); + *msg = cpystr("動作取消:系統管理員不允許\改變整體的地址簿設定"); - return -1; + return(retval); } -@@ -3167,7 +3167,7 @@ +@@ -3207,7 +3207,7 @@ AdrBk_Entry *abe; VCARD_INFO_S *vinfo; static ESCKEY_S ab_export_opts[] = { @@ -462,7 +462,7 @@ {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}}; static ESCKEY_S vcard_or_addresses[] = { -@@ -3190,7 +3190,7 @@ +@@ -3230,7 +3230,7 @@ switch(i){ case 'x': @@ -471,7 +471,7 @@ return(ret); case 'a': -@@ -3219,7 +3219,7 @@ +@@ -3259,7 +3259,7 @@ ab_export_opts[++r].ch = ctrl('I'); ab_export_opts[r].rval = 11; ab_export_opts[r].name = "TAB"; @@ -480,7 +480,7 @@ } ab_export_opts[++r].ch = -1; -@@ -3232,7 +3232,7 @@ +@@ -3272,7 +3272,7 @@ if(r < 0){ switch(r){ case -1: @@ -489,7 +489,7 @@ break; case -2: -@@ -3616,7 +3616,7 @@ +@@ -3656,7 +3656,7 @@ switch(want_to("Expand nicknames", 'y', 'x', h_ab_forward,WT_NORM)){ case 'x': gf_clear_so_writec((STORE_S *) pb->contents.text.data); @@ -498,7 +498,7 @@ goto bomb; case 'y': -@@ -3700,7 +3700,7 @@ +@@ -3740,7 +3740,7 @@ gf_clear_so_writec((STORE_S *) pb->contents.text.data); @@ -507,7 +507,7 @@ NULL, NULL, NULL, NULL, 0); ps->mangled_screen = 1; -@@ -4165,8 +4165,8 @@ +@@ -4207,8 +4207,8 @@ char tmp[200]; ACTION_LIST_S *action_list = NULL, *al; static ESCKEY_S save_or_export[] = { @@ -518,7 +518,7 @@ {-1, 0, NULL, NULL}}; sprintf(tmp, "Save%s to address book or Export to filesystem ? ", -@@ -4177,7 +4177,7 @@ +@@ -4219,7 +4219,7 @@ h_ab_save_exp, RB_NORM); switch(i){ case 'x': @@ -527,7 +527,7 @@ return(0); case 'e': -@@ -4356,7 +4356,7 @@ +@@ -4405,7 +4405,7 @@ if(action_list) fs_give((void **)&action_list); @@ -536,7 +536,7 @@ return(ret); } -@@ -4545,7 +4545,7 @@ +@@ -4594,7 +4594,7 @@ q_status_message(SM_ORDER | SM_DING, 3, 4, "Save only partially completed"); else @@ -545,7 +545,7 @@ } else if (how_many_to_copy + how_many_no_action - (skip_dups ? how_many_dups : 0) > 0){ -@@ -4621,15 +4621,15 @@ +@@ -4670,15 +4670,15 @@ if(!agg && as.opened){ static ESCKEY_S prt[] = { @@ -564,7 +564,7 @@ ps_global->mangled_footer = 1; return 0; -@@ -4700,7 +4700,7 @@ +@@ -4749,7 +4749,7 @@ switch(want_to("Expand nicknames", 'y', 'x', h_ab_forward, WT_NORM)){ case 'x': @@ -573,7 +573,7 @@ ps_global->mangled_footer = 1; return 0; -@@ -4924,7 +4924,7 @@ +@@ -4973,7 +4973,7 @@ lineno = 0L; if(as.opened) @@ -582,7 +582,7 @@ as.adrbks[as.cur].nickname); -@@ -4979,7 +4979,7 @@ +@@ -5028,7 +5028,7 @@ dprint(2, (debugfile, "- ab_delete -\n")); if(agg){ @@ -591,7 +591,7 @@ ch = want_to(prompt, 'n', 'n', NO_HELP, WT_NORM); if(ch == 'y'){ adrbk_cntr_t newelnum, flushelnum = NO_NEXT; -@@ -5144,7 +5144,7 @@ +@@ -5193,7 +5193,7 @@ } } else @@ -600,7 +600,7 @@ } return(ret); -@@ -5192,7 +5192,7 @@ +@@ -5241,7 +5241,7 @@ ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf, abe->fullname, NULL) : abe->nickname ? abe->nickname : ""; @@ -609,7 +609,7 @@ break; case ListHead: -@@ -5200,13 +5200,13 @@ +@@ -5249,13 +5249,13 @@ ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf, abe->fullname, NULL) : abe->nickname ? abe->nickname : ""; @@ -625,7 +625,7 @@ break; } -@@ -5305,7 +5305,7 @@ +@@ -5354,7 +5354,7 @@ return 0; } else{ @@ -634,7 +634,7 @@ return 0; } } -@@ -5441,7 +5441,7 @@ +@@ -5490,7 +5490,7 @@ if(r == 1 || r != 10 && fbuf[0] == '\0'){ ps->mangled_footer = 1; if(error) @@ -643,7 +643,7 @@ return(ret); } -@@ -5480,7 +5480,7 @@ +@@ -5529,7 +5529,7 @@ pbuf.browse_help = h_composer_browse; pbuf.attach_help = h_composer_ctrl_j; pbuf.composer_help = h_composer; @@ -652,7 +652,7 @@ ps_global->mail_stream, ps_global->context_current, ps_global->cur_folder, -@@ -5728,13 +5728,13 @@ +@@ -5777,13 +5777,13 @@ static struct key ldap_view_keys[] = {HELP_MENU, NULL_MENU, @@ -668,7 +668,7 @@ FWDEMAIL_MENU, SAVE_MENU, WHEREIS_MENU}; -@@ -5763,12 +5763,12 @@ +@@ -5812,12 +5812,12 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = so_text(srcstore); sargs.text.src = srctype; @@ -684,7 +684,7 @@ sargs.keys.menu = &ldap_view_keymenu; setbitmap(sargs.keys.bitmap); -@@ -6117,7 +6117,7 @@ +@@ -6174,7 +6174,7 @@ struct headerentry *he; void (*redraw_pico)(); { diff --git a/chinese/pine4/files/patch-ax b/chinese/pine4/files/patch-ax index 49a34ee41c64..84040b7b9935 100644 --- a/chinese/pine4/files/patch-ax +++ b/chinese/pine4/files/patch-ax @@ -1,5 +1,5 @@ ---- pine/folder.c.orig Wed Jul 22 06:01:07 1998 -+++ pine/folder.c Tue Aug 4 12:42:16 1998 +--- pine/folder.c.orig Thu Sep 17 01:12:27 1998 ++++ pine/folder.c Tue Sep 22 19:05:59 1998 @@ -62,13 +62,13 @@ ((X)->dir->status&CNTXT_PARTFIND) == 0) #define FLDR_NAME(X) ((X) ? ((X)->nickname ? (X)->nickname : (X)->name) :"") @@ -20,7 +20,7 @@ #define mail_list(S, R, N) mail_list_internal(S, R, N) -@@ -269,18 +269,18 @@ +@@ -281,18 +281,18 @@ /* * Various screen keymenu/command binding s. */ @@ -47,7 +47,7 @@ {MC_CHOICE,5,{'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE}, PREVC_MENU, NEXTC_MENU, -@@ -312,15 +312,15 @@ +@@ -324,15 +324,15 @@ static struct key context_cfg_keys[] = {HELP_MENU, OTHER_MENU, @@ -67,7 +67,7 @@ WHEREIS_MENU, HELP_MENU, -@@ -339,9 +339,9 @@ +@@ -351,9 +351,9 @@ static struct key context_select_keys[] = {HELP_MENU, @@ -79,7 +79,7 @@ {MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE}, PREVC_MENU, NEXTC_MENU, -@@ -355,9 +355,9 @@ +@@ -367,9 +367,9 @@ static struct key context_fcc_keys[] = {HELP_MENU, @@ -91,7 +91,7 @@ {MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE}, PREVC_MENU, NEXTC_MENU, -@@ -372,16 +372,16 @@ +@@ -384,16 +384,16 @@ static struct key folder_keys[] = {HELP_MENU, OTHER_MENU, @@ -112,7 +112,7 @@ WHEREIS_MENU, HELP_MENU, -@@ -393,9 +393,9 @@ +@@ -405,9 +405,9 @@ CIND_MENU, COMPOSE_MENU, PRYNTTXT_MENU, @@ -125,7 +125,7 @@ INST_KEY_MENU(folder_km, folder_keys); #define KM_COL_KEY 2 #define KM_SEL_KEY 3 -@@ -407,9 +407,9 @@ +@@ -419,9 +419,9 @@ static struct key folder_sel_keys[] = {HELP_MENU, @@ -138,7 +138,7 @@ PREVF_MENU, NEXTF_MENU, PREVPAGE_MENU, -@@ -423,9 +423,9 @@ +@@ -435,9 +435,9 @@ static struct key folder_sub_sel_keys[] = {HELP_MENU, @@ -150,7 +150,7 @@ PREVF_MENU, NEXTF_MENU, PREVPAGE_MENU, -@@ -439,9 +439,9 @@ +@@ -451,9 +451,9 @@ static struct key folder_fcc_keys[] = {HELP_MENU, @@ -163,7 +163,7 @@ KS_NONE}, PREVF_MENU, NEXTF_MENU, -@@ -457,9 +457,9 @@ +@@ -469,9 +469,9 @@ static struct key folder_sub_keys[] = {HELP_MENU, @@ -176,7 +176,7 @@ PREVF_MENU, NEXTF_MENU, PREVPAGE_MENU, -@@ -476,8 +476,8 @@ +@@ -488,8 +488,8 @@ static struct key folder_post_keys[] = {HELP_MENU, NULL_MENU, @@ -187,7 +187,7 @@ PREVF_MENU, NEXTF_MENU, PREVPAGE_MENU, -@@ -572,12 +572,12 @@ +@@ -610,12 +610,12 @@ mailcap_free(); /* free resources we won't be using for a while */ memset(&css, 0, sizeof(CONT_SCR_S)); @@ -202,7 +202,7 @@ css.keymenu = &c_cfg_km; css.edit = 1; -@@ -866,7 +866,7 @@ +@@ -904,7 +904,7 @@ /* leave (*new_dir)->ref == NULL */ } @@ -211,7 +211,7 @@ (*new_dir)->desc = cpystr(tmp_20k_buf); } -@@ -965,12 +965,12 @@ +@@ -1003,12 +1003,12 @@ CONT_SCR_S css; memset(&css, 0, sizeof(CONT_SCR_S)); @@ -226,7 +226,7 @@ css.keymenu = km; css.edit = edit_config; -@@ -1041,7 +1041,7 @@ +@@ -1079,7 +1079,7 @@ pbuf.browse_help = h_composer_browse; pbuf.attach_help = h_composer_ctrl_j; pbuf.composer_help = h_composer; @@ -235,7 +235,7 @@ pbuf.pine_anchor = set_titlebar(tmp, ps_global->mail_stream, ps_global->context_current, ps_global->cur_folder,ps_global->msgmap, -@@ -1277,10 +1277,10 @@ +@@ -1322,10 +1322,10 @@ else exists = (i & FEX_ISDIR); @@ -249,7 +249,7 @@ if(want_to(prompt, 'y', 0, NO_HELP, WT_NORM) == 'y'){ if(!exists && !mail_create(NULL, tmp)){ flush_status_messages(1); /* mail_create gripes */ -@@ -1312,7 +1312,7 @@ +@@ -1357,7 +1357,7 @@ char *rstr = NULL; void (*redraw)() = ps_global->redrawer; #define CCA_PROMPT \ @@ -258,7 +258,7 @@ ps_global->redrawer = redraw_pico; fix_windsize(ps_global); -@@ -1429,7 +1429,7 @@ +@@ -1474,7 +1474,7 @@ /*BUG: test writing with NNTP to misc.test via mark's code. reasonable err msg?*/ if(NEWS_TEST(fs->context)) { q_status_message(SM_ORDER | SM_DING, 3, 4, @@ -267,7 +267,7 @@ return(0); } #endif -@@ -1444,7 +1444,7 @@ +@@ -1489,7 +1489,7 @@ FSTATE_S *fs; { if(!strncmp(f->prefix, "SUB", 3)){ @@ -276,7 +276,7 @@ FLDR_NAME(f)); return(0); } -@@ -1457,7 +1457,7 @@ +@@ -1502,7 +1502,7 @@ fl_hdr_gen(ps) struct pine *ps; { @@ -285,16 +285,16 @@ ps->cur_folder, ps->msgmap, 1, FolderName, 0, 0); } -@@ -1572,7 +1572,7 @@ +@@ -1617,7 +1617,7 @@ { int ch, cmd, mangled_footer, mangled_header, n, rc, cur_row, cur_col, km_size, was_dir = -1, -- km_popped = 0, listmode = 0, done = 0; -+ km_popped = 0, listmode = 0, done = 0, exit_to_main = 0; +- km_popped = 0, listmode = 0, done = 0, save_sel = 0; ++ km_popped = 0, listmode = 0, done = 0, save_sel = 0, exit_to_main = 0; unsigned short new_col; FOLDER_S *cur_f = NULL; - STRINGLIST *sl = NULL; -@@ -1682,7 +1682,7 @@ + STRLIST_S *sl = NULL; +@@ -1748,7 +1748,7 @@ km.keys[KM_MAIN_KEY].bind.cmd = MC_NONE; km.keys[KM_MAIN_KEY].bind.nch = 0; @@ -303,7 +303,7 @@ km.keys[KM_COL_KEY].bind.cmd = MC_MAIN; km.keys[KM_COL_KEY].bind.ch[0] = 'm'; } -@@ -1702,14 +1702,14 @@ +@@ -1768,14 +1768,14 @@ if(listmode){ clrbitn(SB_LIST_KEY, bitmap); km.keys[SB_SEL_KEY].name = "X"; @@ -320,7 +320,7 @@ km.keys[SB_SEL_KEY].bind.cmd = MC_CHOICE; km.keys[SB_SEL_KEY].bind.ch[0] = 's'; } -@@ -1723,7 +1723,7 @@ +@@ -1789,7 +1789,7 @@ } if(cur_f && cur_f->isdir){ @@ -329,7 +329,7 @@ {MC_CHOICE,5, {'s','>','.', ctrl('M'),ctrl('J')}}, -@@ -1849,8 +1849,15 @@ +@@ -1915,8 +1915,15 @@ /*---------------------- Key left --------------*/ case MC_CHARLEFT : case MC_PREVITEM : @@ -345,7 +345,7 @@ break; -@@ -1858,6 +1865,7 @@ +@@ -1924,6 +1931,7 @@ /*--------------------- Key right -------------------*/ case MC_CHARRIGHT : case MC_NEXTITEM : @@ -353,7 +353,7 @@ if(n = folder_lister_next(fs)) fs->folder_index = n; -@@ -1879,7 +1887,7 @@ +@@ -1945,7 +1953,7 @@ rc--; if(rc < 0){ @@ -362,7 +362,7 @@ if(fs->top_row != 0){ /* make sure! */ fs->top_row = 0; fs->prev_index = -1; -@@ -1925,7 +1933,7 @@ +@@ -1991,7 +1999,7 @@ FOLDERS(fs->context))->d_line + 1; if(rc > fs->last_row){ @@ -371,7 +371,7 @@ break; } -@@ -2044,7 +2052,7 @@ +@@ -2156,7 +2164,7 @@ rc++; } else @@ -380,7 +380,7 @@ break; -@@ -2057,7 +2065,7 @@ +@@ -2169,7 +2177,7 @@ if((rc = fs->top_row + fs->display_rows) > fs->last_row){ if((int)folder_entry(fs->folder_index, FOLDERS(fs->context))->d_line >= fs->last_row){ @@ -389,7 +389,7 @@ break; } else -@@ -2098,7 +2106,7 @@ +@@ -2210,7 +2218,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -398,7 +398,7 @@ break; -@@ -2107,7 +2115,7 @@ +@@ -2219,7 +2227,7 @@ case MC_CHOICE : if(!folder_total(FOLDERS(fs->context))){ q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -407,7 +407,7 @@ } else if(folder_lister_select(cur_f, fs, listmode)){ mangled_footer++; -@@ -2169,7 +2177,7 @@ +@@ -2279,7 +2287,7 @@ mangled_footer++; } else @@ -416,7 +416,7 @@ break; -@@ -2302,8 +2310,8 @@ +@@ -2415,8 +2423,8 @@ case MC_DELETE : if(!ALL_FOUND(fs->context) || (fs->context->use & CNTXT_PSEUDO)){ q_status_message1(SM_ORDER | SM_DING, 0, 3, @@ -427,7 +427,7 @@ break; } -@@ -2381,13 +2389,13 @@ +@@ -2494,13 +2502,13 @@ if(fs->zoomed = !fs->zoomed){ /* clear all the prefixes */ (void) folder_lister_nearest_selected(fs); q_status_message1(SM_ORDER, 0, 3, @@ -443,7 +443,7 @@ } create_folder_display(fs, ps->ttyo->screen_cols); -@@ -2395,7 +2403,7 @@ +@@ -2508,7 +2516,7 @@ } else q_status_message(SM_ORDER, 0, 3, @@ -452,7 +452,7 @@ break; -@@ -2405,16 +2413,16 @@ +@@ -2518,16 +2526,16 @@ case MC_WHEREIS : switch(search_folders(fs, -FOOTER_ROWS(ps))){ case -1 : @@ -472,7 +472,7 @@ break; } -@@ -2475,8 +2483,8 @@ +@@ -2594,8 +2602,8 @@ && ALL_FOUND(fs->context)) return(fs->folder_index + 1); @@ -483,7 +483,7 @@ return(0); } -@@ -2497,8 +2505,8 @@ +@@ -2616,8 +2624,8 @@ else if(fs->folder_index > 0 && ALL_FOUND(fs->context)) return(fs->folder_index - 1); @@ -494,7 +494,7 @@ return(-1); } -@@ -2513,7 +2521,7 @@ +@@ -2632,7 +2640,7 @@ if(listmode){ if(NEWS_TEST(fs->context) && !strncmp(f->prefix, "SUB", 3)){ q_status_message1(SM_ORDER, 0, 3, @@ -503,7 +503,7 @@ FLDR_NAME(f)); } else{ -@@ -2523,7 +2531,7 @@ +@@ -2642,7 +2650,7 @@ } else{ if(f->isdir){ @@ -512,7 +512,7 @@ } else folder_select_toggle(fs, f); -@@ -2580,13 +2588,13 @@ +@@ -2699,13 +2707,13 @@ extern char *sel_pmt2; if((f = folder_entry(fs->folder_index, FOLDERS(fs->context)))->isdir){ @@ -528,7 +528,7 @@ sel_opts += 2; /* disable extra options */ switch(q = radio_buttons(SEL_ALTER_PMT, -FOOTER_ROWS(ps_global), sel_opts1, 'c', 'x', help, RB_NORM)){ -@@ -2611,7 +2619,7 @@ +@@ -2730,7 +2738,7 @@ default : q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -537,7 +537,7 @@ return(0); } } -@@ -2625,7 +2633,7 @@ +@@ -2744,7 +2752,7 @@ */ switch(q){ case 'x': /* cancel */ @@ -546,7 +546,7 @@ return(0); case 'c' : /* toggle current's selected state */ -@@ -2647,10 +2655,10 @@ +@@ -2766,10 +2774,10 @@ create_folder_display(fs, ps_global->ttyo->screen_cols); } @@ -560,7 +560,7 @@ return(1); case 't' : /* Text */ -@@ -2667,7 +2675,7 @@ +@@ -2786,7 +2794,7 @@ default : q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -569,7 +569,7 @@ return(0); } -@@ -2696,35 +2704,30 @@ +@@ -2815,35 +2823,30 @@ if(!(diff = (total = selected_folders(fs)) - old_tot)){ if(narrow) @@ -616,16 +616,7 @@ if(F_OFF(F_SELECTED_SHOWN_BOLD, ps_global)){ folder_prefixes(fs, " "); -@@ -2839,7 +2842,7 @@ - fp = next_folder_dir(fs->context, tmpf->name); - - /* Provide context in new collection header */ -- sprintf(tmp_20k_buf, "Dir: %s", -+ sprintf(tmp_20k_buf, "目錄:%s", - ((p = strstr(fs->context->context, "%s")) && !*(p+2) - && !strncmp(fp->ref, fs->context->context, - p - fs->context->context)) -@@ -2860,9 +2863,9 @@ +@@ -3031,9 +3034,9 @@ fs->prev_index = -1; /* redraw display */ @@ -637,7 +628,16 @@ rv++; } else -@@ -2908,12 +2911,12 @@ +@@ -3052,7 +3055,7 @@ + char *p; + + /* Provide context in new collection header */ +- sprintf(tmp_20k_buf, "Dir: %s", ++ sprintf(tmp_20k_buf, "目錄:%s", + ((p = strstr(cntxt->context, "%s")) && !*(p+2) + && !strncmp(fdp->ref, cntxt->context, p - cntxt->context)) + ? fdp->ref + (p - cntxt->context) : fdp->ref); +@@ -3097,12 +3100,12 @@ fs->prev_index = -1; /* redraw display */ if(fp->status & CNTXT_SUBDIR) @@ -652,7 +652,7 @@ rv++; } -@@ -3479,12 +3482,12 @@ +@@ -3673,12 +3676,12 @@ if(fs->context->use & CNTXT_INCMNG){ char inbox_host[MAXPATH], *beg, *end = NULL; ESCKEY_S *special_key; @@ -667,7 +667,7 @@ return(FALSE); } -@@ -3506,7 +3509,7 @@ +@@ -3700,7 +3703,7 @@ else special_key = NULL; @@ -676,7 +676,7 @@ help = NO_HELP; while(1){ int flags = OE_APPEND_CURRENT; -@@ -3524,7 +3527,7 @@ +@@ -3718,7 +3721,7 @@ } else if(rc == 1){ q_status_message(SM_ORDER,0,2, @@ -685,7 +685,7 @@ return(FALSE); } else if(rc == 0) -@@ -3534,7 +3537,7 @@ +@@ -3728,7 +3731,7 @@ if(offset = strlen(add_folder)){ /* must be host for incoming */ int i; @@ -694,7 +694,7 @@ for(i = offset;i >= 0; i--) add_folder[i+1] = add_folder[i]; -@@ -3543,7 +3546,7 @@ +@@ -3737,7 +3740,7 @@ add_folder[++offset] = '\0'; /* +2, total */ } else @@ -703,7 +703,7 @@ help = NO_HELP; while(1){ -@@ -3551,14 +3554,14 @@ +@@ -3745,14 +3748,14 @@ p = NULL; if(isdir){ @@ -722,7 +722,7 @@ } flags = OE_APPEND_CURRENT; -@@ -3572,7 +3575,7 @@ +@@ -3766,7 +3769,7 @@ if(!ps_global->show_dot_names && add_folder[offset] == '.'){ if(cnt++ <= 0) q_status_message(SM_ORDER,3,3, @@ -731,7 +731,7 @@ else{ NAMEVAL_S *feat; int i; -@@ -3582,7 +3585,7 @@ +@@ -3776,7 +3779,7 @@ ;/* do nothing */ q_status_message1(SM_ORDER,3,3, @@ -740,7 +740,7 @@ feat && feat->name ? feat->name : ""); } -@@ -3602,7 +3605,7 @@ +@@ -3796,7 +3799,7 @@ } else if(*p == fs->context->dir->delim){ q_status_message(SM_ORDER|SM_DING, 3, 3, @@ -749,7 +749,7 @@ display_message('X'); continue; } -@@ -3624,7 +3627,7 @@ +@@ -3818,7 +3821,7 @@ : NO_HELP; } else if(rc == 1 || add_folder[0] == '\0') { @@ -758,7 +758,7 @@ return(FALSE); } } -@@ -3643,7 +3646,7 @@ +@@ -3837,7 +3840,7 @@ help = NO_HELP; if(fs->context->use & CNTXT_INCMNG){ @@ -767,7 +767,7 @@ while(1){ int flags = OE_APPEND_CURRENT; -@@ -3664,7 +3667,7 @@ +@@ -3858,7 +3861,7 @@ } else if(rc == 1 || (rc != 3 && !*nickname)){ q_status_message(SM_ORDER,0,2, @@ -776,7 +776,7 @@ return(FALSE); } } -@@ -3679,7 +3682,7 @@ +@@ -3873,7 +3876,7 @@ f = folder_entry(offset, FOLDERS(fs->context)); if(!strucmp(FLDR_NAME(f), nickname[0] ? nickname : add_folder)){ q_status_message1(SM_ORDER | SM_DING, 0, 3, @@ -785,7 +785,7 @@ nickname[0] ? nickname : add_folder); return(FALSE); } -@@ -3732,7 +3735,7 @@ +@@ -3927,7 +3930,7 @@ if(nickname[0]) strcpy(add_folder, nickname); /* known by new name */ @@ -794,7 +794,7 @@ return_val = add_folder; } else if(context_isambig(add_folder)){ -@@ -3748,15 +3751,15 @@ +@@ -3943,15 +3946,15 @@ */ refresh_folder_list(fs, TRUE); @@ -813,7 +813,7 @@ add_folder); return(return_val != NULL); -@@ -3795,13 +3798,13 @@ +@@ -3990,13 +3993,13 @@ subscribe_keys[i = 0].ch = ctrl('T'); subscribe_keys[i].rval = 12; subscribe_keys[i].name = "^T"; @@ -829,7 +829,7 @@ } subscribe_keys[i].ch = -1; -@@ -3861,7 +3864,7 @@ +@@ -4057,7 +4060,7 @@ } else{ q_status_message(SM_ORDER, 0, 2, @@ -838,7 +838,7 @@ continue; } -@@ -3914,10 +3917,10 @@ +@@ -4110,10 +4113,10 @@ else{ if(rc == 12) q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -849,9 +849,9 @@ - "News group \"%s\" didn't match any existing groups", + "新聞組群 \"%s\" 不符合任何現存的組群", folder); + free_folder_list(&subscribe_cntxt); - continue; -@@ -3965,7 +3968,7 @@ +@@ -4162,7 +4165,7 @@ if(rc < 0){ if(rc == -1) @@ -860,16 +860,16 @@ } else{ if(folders){ /*------ Actually do the subscription -----*/ -@@ -3987,7 +3990,7 @@ +@@ -4184,7 +4187,7 @@ */ q_status_message1(errors ?SM_INFO : SM_ORDER, errors ? 0 : 3, 3, - "Error subscribing to \"%s\"", + "訂閱\至 \"%s\" 時發生錯誤", - (char *) flp->text.data); + (char *) flp->name); errors++; } -@@ -4011,13 +4014,13 @@ +@@ -4208,13 +4211,13 @@ if(n == 0) q_status_message(SM_ORDER | SM_DING, 3, 5, @@ -885,8 +885,8 @@ + errors ? ",發生錯誤於 " : "", errors ? comatose((long)errors) : ""); - mail_free_stringlist(&folders); -@@ -4026,7 +4029,7 @@ + free_strlist(&folders); +@@ -4223,7 +4226,7 @@ (void) context_apply(tmp_20k_buf, &subscribe_cntxt, folder); if(mail_subscribe(NULL, tmp_20k_buf) == 0L){ q_status_message1(SM_ORDER | SM_DING, 3, 3, @@ -895,7 +895,7 @@ } else if(ALL_FOUND(cntxt)){ /*---- Update the screen display data structures -----*/ -@@ -4040,7 +4043,7 @@ +@@ -4237,7 +4240,7 @@ } if(folder[0]) @@ -904,7 +904,7 @@ } free_fdir(&subscribe_cntxt.dir, 1); -@@ -4080,19 +4083,19 @@ +@@ -4277,19 +4280,19 @@ if(NEWS_TEST(fs->context)){ q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -927,7 +927,7 @@ new_f->parent ? new_f->nickname : ps_global->inbox_name); -@@ -4108,11 +4111,11 @@ +@@ -4305,11 +4308,11 @@ ren_cur = strcmp(folder, ps_global->cur_folder) == 0; @@ -942,7 +942,7 @@ help = NO_HELP; strcpy(new_name, folder); while(1) { -@@ -4133,7 +4136,7 @@ +@@ -4330,7 +4333,7 @@ if(!ps_global->show_dot_names && *new_name == '.'){ if(cnt++ <= 0) q_status_message(SM_ORDER,3,3, @@ -951,7 +951,7 @@ else{ NAMEVAL_S *feat; int i; -@@ -4143,7 +4146,7 @@ +@@ -4340,7 +4343,7 @@ ;/* do nothing */ q_status_message1(SM_ORDER,3,3, @@ -960,7 +960,7 @@ feat && feat->name ? feat->name : ""); } -@@ -4153,13 +4156,13 @@ +@@ -4350,13 +4353,13 @@ if(folder_index(new_name, fs->context, FI_ANY) >= 0){ q_status_message1(SM_ORDER, 3, 3, @@ -976,7 +976,7 @@ ps_global->inbox_name); display_message(NO_OP_COMMAND); continue; -@@ -4182,7 +4185,7 @@ +@@ -4379,7 +4382,7 @@ if(rc == 1 || !(*new_name || (fs->context->use & CNTXT_INCMNG)) || !strcmp(new_name, folder)){ @@ -985,7 +985,7 @@ return(0); } -@@ -4264,7 +4267,7 @@ +@@ -4461,7 +4464,7 @@ /* renaming sent-mail or saved-messages */ if(context_create(fs->context, NULL, folder)){ q_status_message3(SM_ORDER,0,3, @@ -994,7 +994,7 @@ folder, new_name, pretty_fn( (strcmp(ps_global->VAR_DEFAULT_SAVE_FOLDER, -@@ -4275,7 +4278,7 @@ +@@ -4472,7 +4475,7 @@ } else{ q_status_message1(SM_ORDER | SM_DING, 3, 4, @@ -1003,7 +1003,7 @@ dprint(2, (debugfile, "Error creating \"%s\" in %s context\n", folder, fs->context->context)); -@@ -4283,7 +4286,7 @@ +@@ -4480,7 +4483,7 @@ } else q_status_message2(SM_ORDER, 0, 3, @@ -1012,8 +1012,14 @@ pretty_fn(folder), pretty_fn(new_name)); /* Rebuild folder list */ -@@ -4332,7 +4335,7 @@ - int ret, close_opened = 0, blast_folder = 1; +@@ -4530,12 +4533,12 @@ + + if(!folder_total(FOLDERS(fs->context))){ + q_status_message(SM_ORDER | SM_DING, 0, 4, +- "Empty folder collection. No folder to delete!"); ++ "空的資料匣褻陛C沒有東西可供刪除!"); + return(0); + } if(NEWS_TEST(fs->context)){ - static char fmt[] = "Really unsubscribe from \"%.*s\""; @@ -1021,7 +1027,7 @@ folder = folder_entry(fs->folder_index, FOLDERS(fs->context))->name; /* 4 is strlen("%.*s") */ -@@ -4354,7 +4357,7 @@ +@@ -4557,7 +4560,7 @@ (void) context_apply(tmp_20k_buf, fs->context, folder); if(!mail_unsubscribe(NULL, tmp_20k_buf)){ q_status_message1(SM_ORDER | SM_DING, 3, 3, @@ -1030,16 +1036,7 @@ return(0); } -@@ -4372,7 +4375,7 @@ - - if(!folder_total(FOLDERS(fs->context))){ - q_status_message(SM_ORDER | SM_DING, 0, 4, -- "Empty folder collection. No folder to delete!"); -+ "空的資料匣總集。沒有東西可供刪除!"); - return(0); - } - -@@ -4382,12 +4385,12 @@ +@@ -4579,12 +4582,12 @@ if(ps_global->readonly_pinerc && (fs->context->use & CNTXT_INCMNG)){ q_status_message(SM_ORDER,3,5, @@ -1054,7 +1051,7 @@ return(0); } else if(fs->context == ps_global->context_current -@@ -4402,7 +4405,7 @@ +@@ -4599,7 +4602,7 @@ if(ret){ q_status_message1(SM_ORDER | SM_DING, 3, 4, @@ -1063,7 +1060,7 @@ folder); return(0); } -@@ -4413,19 +4416,19 @@ +@@ -4610,19 +4613,19 @@ */ if(folder_index(folder, fs->context, FI_FOLDER) >= 0 && (ret = want_to(DIR_FOLD_PMT,'n','x',NO_HELP,WT_NORM)) != 'y'){ @@ -1088,7 +1085,7 @@ switch(radio_buttons(DELF_PROMPT, -FOOTER_ROWS(ps_global), delf_opts,'n','x',NO_HELP,RB_NORM)){ -@@ -4434,7 +4437,7 @@ +@@ -4631,7 +4634,7 @@ break; case 'x' : @@ -1097,7 +1094,7 @@ return(0); default : -@@ -4442,13 +4445,13 @@ +@@ -4639,13 +4642,13 @@ } } else{ @@ -1116,7 +1113,7 @@ return(0); } } -@@ -4491,13 +4494,13 @@ +@@ -4688,13 +4691,13 @@ /* * BUG: what if sent-mail or saved-messages???? */ @@ -1133,7 +1130,7 @@ if(fs->context->use & CNTXT_INCMNG){ -@@ -4642,7 +4645,7 @@ +@@ -4839,7 +4842,7 @@ int flags; pat[0] = '\0'; @@ -1142,7 +1139,7 @@ while(1){ flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP; -@@ -4658,7 +4661,7 @@ +@@ -4855,7 +4858,7 @@ return(1); case 1 : @@ -1151,7 +1148,7 @@ default : return(0); -@@ -4734,7 +4737,7 @@ +@@ -4931,7 +4934,7 @@ return(1); } @@ -1160,7 +1157,7 @@ return(0); } -@@ -4767,7 +4770,7 @@ +@@ -4964,7 +4967,7 @@ if(!strucmp(folder = f->name, ps_global->inbox_name)) return(FEX_ISFILE); @@ -1169,7 +1166,7 @@ we_cancel = busy_alarm(1, tmp, NULL, 0); mm_list_info = &ldata; /* tie down global reference */ -@@ -4910,7 +4913,7 @@ +@@ -5107,7 +5110,7 @@ return(1); } @@ -1178,7 +1175,7 @@ return(0); } -@@ -4932,7 +4935,7 @@ +@@ -5129,7 +5132,7 @@ while(1){ flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP; sprintf(number, "%ld", *count); @@ -1187,7 +1184,7 @@ r = optionally_enter(number, -FOOTER_ROWS(ps_global), 0, 31, prompt, sel_num_opt, NO_HELP, &flags); switch (r){ -@@ -4941,7 +4944,7 @@ +@@ -5138,7 +5141,7 @@ break; else if((*count = atol(number)) < 0L) q_status_message(SM_ORDER, 3, 3, @@ -1196,7 +1193,7 @@ else return(1); /* success */ -@@ -5102,7 +5105,7 @@ +@@ -5299,7 +5302,7 @@ for(; i >= 0; i--) folder_entry(i, FOLDERS(fs->context))->scanned = 0; @@ -1205,7 +1202,7 @@ rv = 0; break; } -@@ -5147,14 +5150,14 @@ +@@ -5344,14 +5347,14 @@ int rc, t_index, done = 0; static char search_string[MAX_SEARCH+1]; static ESCKEY_S search_keys[] = {{0, 0, NULL, NULL}, @@ -1223,7 +1220,7 @@ return(0); } else{ -@@ -5162,7 +5165,7 @@ +@@ -5359,7 +5362,7 @@ search_keys[0].ch = ctrl('X'); search_keys[0].rval = 9; search_keys[0].name = "^X"; @@ -1232,7 +1229,7 @@ } else{ search_keys[0].ch = 0; -@@ -5173,7 +5176,7 @@ +@@ -5370,7 +5373,7 @@ } t_index = fd->folder_index; @@ -1241,7 +1238,7 @@ (*search_string == '\0') ? "" : "[", search_string, (*search_string == '\0') ? "" : "] "); -@@ -5184,7 +5187,7 @@ +@@ -5381,7 +5384,7 @@ switch(optionally_enter(nsearch_string, ask_line, 0, MAX_SEARCH, prompt, search_keys, help, &flags)){ case -1 : @@ -1250,7 +1247,7 @@ return(0); case 0 : /*----- Search away ------*/ -@@ -5241,9 +5244,9 @@ +@@ -5438,9 +5441,9 @@ } if(rc){ @@ -1263,7 +1260,7 @@ fd->prev_index = -1; /* repaint! */ } -@@ -5257,14 +5260,14 @@ +@@ -5454,14 +5457,14 @@ while((t_index = folder_lister_prev(fd)) >= 0) fd->folder_index = t_index; @@ -1280,7 +1277,7 @@ return(3); default : -@@ -6273,7 +6276,7 @@ +@@ -6500,7 +6503,7 @@ if(p = context_digest(c_string, dcontext, host, rcontext, view)){ q_status_message2(SM_ORDER | SM_DING, 3, 4, @@ -1289,7 +1286,7 @@ fs_give((void **) &c_string); if(nickname) fs_give((void **)&nickname); -@@ -6314,14 +6317,14 @@ +@@ -6541,14 +6544,14 @@ /* fix up label */ if(NEWS_TEST(c)){ @@ -1308,7 +1305,7 @@ (*host) ? host : "", p ? p - rcontext : 0, rcontext, (p && (p - rcontext) > 0) ? "" : "home directory"); } -@@ -7503,7 +7506,7 @@ +@@ -7745,7 +7748,7 @@ if(error && num_in_error){ cnt_errs = num_in_error; memset((void *)ng_error, 0, (size_t)90); diff --git a/chinese/pine4/files/patch-az b/chinese/pine4/files/patch-az index bd6856d81c93..175b6bbcdd81 100644 --- a/chinese/pine4/files/patch-az +++ b/chinese/pine4/files/patch-az @@ -1,12 +1,21 @@ ---- pine/init.c.orig Fri Jul 17 02:22:22 1998 -+++ pine/init.c Tue Aug 4 12:42:17 1998 -@@ -579,6 +579,9 @@ +--- pine/init.c.orig Thu Sep 3 01:39:42 1998 ++++ pine/init.c Tue Sep 22 13:50:07 1998 +@@ -319,7 +319,7 @@ + + /*---------------------------------------------------------------------- + These are the variables that control a number of pine functions. They +-come out of the .pinerc and the /usr/local/lib/pine.conf files. Some can ++come out of the .pinerc and the @@PREFIX@@/etc/pine.conf files. Some can + be set by the user while in Pine. Eventually all the local ones should + be so and maybe the global ones too. + +@@ -578,6 +578,9 @@ + #ifdef DF_SMTP_SERVER GLO_SMTP_SERVER = parse_list(DF_SMTP_SERVER, 1, NULL); #endif - ++ + F_TURN_ON(F_TCAP_WINS,ps); + F_TURN_ON(F_QUELL_INTERNAL_MSG,ps); -+ + /* Set the default mail directory */ build_path(buf, GLO_MAIL_DIRECTORY, "[]"); - GLO_FOLDER_SPEC = parse_list(buf, 1, NULL); diff --git a/chinese/pine4/files/patch-ba b/chinese/pine4/files/patch-ba index 679ab9a99e14..cc4fe8ad069a 100644 --- a/chinese/pine4/files/patch-ba +++ b/chinese/pine4/files/patch-ba @@ -1,6 +1,6 @@ ---- pine/mailcmd.c.orig Fri Jul 17 13:57:21 1998 -+++ pine/mailcmd.c Tue Aug 4 12:42:17 1998 -@@ -110,39 +110,39 @@ +--- pine/mailcmd.c.orig Tue Sep 15 03:01:15 1998 ++++ pine/mailcmd.c Tue Sep 22 19:13:41 1998 +@@ -108,39 +108,39 @@ /* * List of Select options used by apply_* functions... */ @@ -61,7 +61,7 @@ { -1, 0, NULL, NULL}, { -1, 0, NULL, NULL}, { -1, 0, NULL, NULL}, -@@ -152,24 +152,24 @@ +@@ -150,24 +150,24 @@ static char *sel_flag = @@ -96,7 +96,7 @@ {ctrl('W'), 14, "^W", "Toggle When"}, {KEY_UP, 12, "", ""}, {KEY_DOWN, 13, "", ""}, -@@ -179,18 +179,18 @@ +@@ -177,18 +177,18 @@ static char *sel_text = #ifdef RECIPIENT @@ -123,7 +123,7 @@ #endif /* RECIPIENT */ {-1, 0, NULL, NULL} }; -@@ -244,7 +244,7 @@ +@@ -242,7 +242,7 @@ case MC_HELP : if(state->nr_mode) { q_status_message(SM_ORDER, 0, 3, @@ -132,7 +132,7 @@ break; } -@@ -273,7 +273,7 @@ +@@ -271,7 +271,7 @@ /*------- View message text --------*/ case MC_VIEW_TEXT : @@ -141,7 +141,7 @@ state->next_screen = mail_view_screen; #if defined(DOS) && !defined(WIN32) flush_index_cache(); /* save room on PC */ -@@ -297,10 +297,10 @@ +@@ -295,10 +295,10 @@ mn_dec_cur(stream, msgmap); if(i == mn_get_cur(msgmap)) q_status_message(SM_ORDER, 0, 2, @@ -154,7 +154,7 @@ } break; -@@ -312,7 +312,7 @@ +@@ -310,7 +310,7 @@ && (i = mn_get_cur(msgmap)) < mn_get_total(msgmap)){ mn_inc_cur(stream, msgmap); if(i == mn_get_cur(msgmap)) @@ -163,7 +163,7 @@ } else{ prompt[0] = '\0'; -@@ -329,7 +329,7 @@ +@@ -327,7 +327,7 @@ strcat(prompt, ". No more folders to TAB to."); } @@ -260,18 +260,21 @@ cmd_export(state, msgmap, question_line, 0); state->mangled_footer = 1; } -@@ -597,29 +597,28 @@ +@@ -596,9 +596,9 @@ + dprint(2, (debugfile, "\n - expunge -\n")); if(IS_NEWS(stream) && stream->rdonly){ if((del_count = count_flagged(stream, F_DEL)) > 0L){ - state->mangled_footer = 1; +- state->mangled_footer = 1; - sprintf(prompt, "Exclude %ld message%s from %s", del_count, - plural(del_count), pretty_fn(state->cur_folder)); ++ + sprintf(prompt, "自 %s 中排除 %ld 封信件", + pretty_fn(state->cur_folder), del_count); - if(F_ON(F_AUTO_EXPUNGE, state) - || want_to(prompt, 'y', 0, NO_HELP, WT_NORM) == 'y'){ - msgno_exclude(stream, msgmap); - clear_index_cache(); + if(F_ON(F_FULL_AUTO_EXPUNGE, state) + || (F_ON(F_AUTO_EXPUNGE, state) + && (state->context_current +@@ -620,21 +620,20 @@ + state->mangled_body = 1; state->mangled_header = 1; - q_status_message2(SM_ORDER, 0, 4, "%s message%s excluded", @@ -297,16 +300,16 @@ break; } -@@ -634,7 +633,7 @@ - break; - } - else if(ret == 'x') { /* ^C */ -- cmd_cancelled("Expunge"); -+ cmd_cancelled("刪除"); - break; - } - } -@@ -685,11 +684,11 @@ +@@ -653,7 +652,7 @@ + ret = 'y'; + + if(ret == 'x') +- cmd_cancelled("Expunge"); ++ cmd_cancelled("刪除"); + + if(ret != 'y') + break; +@@ -705,11 +704,11 @@ if(state->expunge_count <= 0) if(del_count) q_status_message1(SM_ORDER, 0, 3, @@ -320,7 +323,7 @@ break; -@@ -719,16 +718,15 @@ +@@ -743,16 +742,15 @@ */ refresh_sort(msgmap, FALSE); state->mangled_header = 1; @@ -342,7 +345,7 @@ } break; -@@ -736,7 +734,7 @@ +@@ -760,7 +758,7 @@ /*------- Make Selection -----------*/ case MC_SELECT : @@ -351,7 +354,7 @@ aggregate_select(state, msgmap, question_line, in_index); if(in_index && any_lflagged(msgmap, MN_SLCT) > 0L && !any_lflagged(msgmap, MN_HIDE) -@@ -768,7 +766,7 @@ +@@ -792,7 +790,7 @@ unzoom_index(state, msgmap); } else @@ -360,7 +363,7 @@ } break; -@@ -846,21 +844,21 @@ +@@ -870,21 +868,21 @@ { if(cmd == ctrl('Q') || cmd == ctrl('S')) q_status_message1(SM_ASYNC, 0, 2, @@ -389,7 +392,7 @@ } -@@ -1133,11 +1131,9 @@ +@@ -1157,11 +1155,9 @@ char *type, *cmd; { if(mn_get_total(map) <= 0L){ @@ -403,7 +406,7 @@ return(FALSE); } -@@ -1161,8 +1157,8 @@ +@@ -1185,8 +1181,8 @@ { if(READONLY_FOLDER || state->dead_stream){ q_status_message2(SM_ORDER | (state->dead_stream ? SM_DING : 0), 0, 3, @@ -414,7 +417,7 @@ return(FALSE); } -@@ -1182,7 +1178,7 @@ +@@ -1206,7 +1202,7 @@ cmd_cancelled(cmd) char *cmd; { @@ -423,7 +426,7 @@ } -@@ -1208,7 +1204,7 @@ +@@ -1232,7 +1228,7 @@ dprint(4, (debugfile, "\n - delete message -\n")); if(!(any_messages(msgmap, NULL, "to Delete") @@ -432,7 +435,7 @@ return; if(state->io_error_on_stream) { -@@ -1218,16 +1214,15 @@ +@@ -1242,16 +1238,15 @@ if(agg){ sequence = selected_sequence(state->mail_stream, msgmap, &del_count); @@ -452,7 +455,7 @@ lastmsg ? "" : long2string(msgno)); } -@@ -1289,7 +1284,7 @@ +@@ -1311,7 +1306,7 @@ dprint(4, (debugfile, "\n - undelete -\n")); if(!(any_messages(msgmap, NULL, "to Undelete") @@ -461,7 +464,7 @@ return; if(agg){ -@@ -1380,7 +1375,7 @@ +@@ -1399,7 +1394,7 @@ }; if(!(any_messages(msgmap, NULL, "to Flag") @@ -470,7 +473,7 @@ return; if(state->io_error_on_stream) { -@@ -1735,7 +1730,7 @@ +@@ -1754,7 +1749,7 @@ if(msgno_any_exceptions(state->mail_stream, msgmap) && want_to("Saved copy will NOT include entire message! Continue", 'y', 'n', NO_HELP, WT_FLUSH_IN | WT_SEQ_SENSITIVE) != 'y'){ @@ -479,7 +482,7 @@ return; } -@@ -1858,32 +1853,32 @@ +@@ -1877,32 +1872,32 @@ ekey[rc].ch = ctrl('T'); ekey[rc].rval = 2; ekey[rc].name = "^T"; @@ -517,7 +520,7 @@ } if(saveable_count > 1){ -@@ -2021,7 +2016,7 @@ +@@ -2040,7 +2035,7 @@ /* else fall thru like they cancelled */ case 1 : @@ -526,7 +529,7 @@ done--; break; -@@ -3126,16 +3121,16 @@ +@@ -3162,16 +3157,16 @@ { if(context && ps_global->context_list->next && context_isambig(folder)){ sprintf(tmp_20k_buf, @@ -546,7 +549,7 @@ return(-1); } -@@ -3259,14 +3254,14 @@ +@@ -3295,14 +3290,14 @@ export_opts[i = 0].ch = ctrl('T'); export_opts[i].rval = 10; export_opts[i].name = "^T"; @@ -563,7 +566,7 @@ } #endif /* !(DOS || MAC) */ -@@ -3274,7 +3269,7 @@ +@@ -3310,7 +3305,7 @@ export_opts[i].ch = ctrl('I'); export_opts[i].rval = 11; export_opts[i].name = "TAB"; @@ -572,7 +575,7 @@ } #if 0 -@@ -3283,7 +3278,7 @@ +@@ -3319,7 +3314,7 @@ export_opts[i].ch = ctrl('X'); export_opts[i].rval = 14; export_opts[i].name = "^X"; @@ -581,7 +584,7 @@ } #endif -@@ -3297,7 +3292,7 @@ +@@ -3333,7 +3328,7 @@ if(r < 0){ switch(r){ case -1: @@ -590,7 +593,7 @@ break; case -2: -@@ -3319,7 +3314,7 @@ +@@ -3355,7 +3350,7 @@ if(ps_global->restricted){ q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -599,7 +602,7 @@ goto fini; } -@@ -3338,7 +3333,7 @@ +@@ -3374,7 +3369,7 @@ || !format_message(mn_m2raw(msgmap, mn_get_cur(msgmap)), env, b, FM_NEW_MESS | FM_NOWRAP, pc)){ q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -608,7 +611,7 @@ break; } -@@ -3351,18 +3346,18 @@ +@@ -3387,18 +3382,18 @@ (void) close_system_pipe(&syspipe); else q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -630,7 +633,7 @@ goto fini; } -@@ -3474,7 +3469,7 @@ +@@ -3512,7 +3507,7 @@ STORE_S *store = NULL; struct variable *vars = ps->vars; static ESCKEY_S simple_export_opts[] = { @@ -639,7 +642,7 @@ {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}}; -@@ -3482,7 +3477,7 @@ +@@ -3520,7 +3515,7 @@ simple_export_opts[r].ch = ctrl('I'); simple_export_opts[r].rval = 11; simple_export_opts[r].name = "TAB"; @@ -648,7 +651,7 @@ } if(!srctext){ -@@ -3555,7 +3550,7 @@ +@@ -3593,7 +3588,7 @@ break; case -1: @@ -657,7 +660,7 @@ break; case -2: -@@ -4131,32 +4126,32 @@ +@@ -4180,32 +4175,32 @@ ekey[rc].ch = (allow_list) ? ctrl('T') : 0 ; ekey[rc].rval = (allow_list) ? 2 : 0; ekey[rc].name = (allow_list) ? "^T" : ""; @@ -695,7 +698,7 @@ } if(ps_global->context_list->next){ -@@ -4272,15 +4267,15 @@ +@@ -4321,15 +4316,15 @@ newfolder); else if(tc->use & CNTXT_INCMNG) q_status_message1(SM_ORDER, 0, 3, @@ -715,7 +718,7 @@ newfolder); return(NULL); -@@ -4293,7 +4288,7 @@ +@@ -4342,7 +4337,7 @@ /* fall thru like they cancelled */ case 1 : /* o_e says user cancel */ @@ -724,7 +727,7 @@ return(NULL); case 2 : /* o_e says user wants list */ -@@ -4529,7 +4524,7 @@ +@@ -4578,7 +4573,7 @@ else if ((new_context->use & CNTXT_INCMNG) && (folder_index(newfolder, new_context, FI_FOLDER) < 0)){ q_status_message1(SM_ORDER, 3, 4, @@ -733,7 +736,7 @@ return(0); } } -@@ -4610,7 +4605,7 @@ +@@ -4659,7 +4654,7 @@ } } @@ -742,7 +745,7 @@ pretty_fn(newfolder), 70), "\""); we_cancel = busy_alarm(1, status_msg, NULL, 1); -@@ -4693,7 +4688,7 @@ +@@ -4742,7 +4737,7 @@ && !mn_get_revsort(ps_global->msgmap))) refresh_sort(ps_global->msgmap, FALSE); @@ -751,7 +754,7 @@ old_folder); } } -@@ -4774,14 +4769,13 @@ +@@ -4823,14 +4818,13 @@ /* UWIN doesn't want to see this message */ if(!ps_global->nr_mode) @@ -770,7 +773,7 @@ sort_folder(ps_global->msgmap, ps_global->def_sort, ps_global->def_sort_rev, TRUE); -@@ -4947,9 +4941,9 @@ +@@ -4996,9 +4990,9 @@ char ing[4]; if(final_msg) @@ -782,7 +785,7 @@ buff1[0] = '\0'; buff2[0] = '\0'; -@@ -4958,7 +4952,7 @@ +@@ -5007,7 +5001,7 @@ stream->mailbox)); if(!stream->rdonly){ @@ -791,7 +794,7 @@ flush_status_messages(1); /* Save read messages? */ -@@ -4998,10 +4992,8 @@ +@@ -5047,10 +5041,8 @@ } else{ sprintf(prompt_b, @@ -804,7 +807,7 @@ ret = want_to(prompt_b, 'y', 0, NO_HELP, WT_NORM); } -@@ -5012,13 +5004,10 @@ +@@ -5061,13 +5053,10 @@ if(ret == 'y'){ sprintf(buff2, @@ -819,7 +822,7 @@ long2string(delete_count)); if(final_msg) *final_msg = cpystr(buff2); -@@ -5042,17 +5031,15 @@ +@@ -5093,17 +5082,15 @@ if(ret != 'y'){ if(stream->nmsgs){ sprintf(buff2, @@ -841,7 +844,7 @@ ing, pretty_fn(folder)); } -@@ -5071,7 +5058,7 @@ +@@ -5122,7 +5109,7 @@ q_status_message(SM_ORDER, F_ON(F_AUTO_READ_MSGS,ps_global) ? 0 : 3, 5, moved_msg); @@ -850,7 +853,7 @@ ing, pretty_fn(folder)); if(F_ON(F_NEWS_CROSS_DELETE, ps_global)) -@@ -5079,7 +5066,7 @@ +@@ -5130,7 +5117,7 @@ } else sprintf(buff2, @@ -859,7 +862,7 @@ ing, pretty_fn(folder)); if(final_msg) -@@ -5368,18 +5355,18 @@ +@@ -5430,18 +5417,18 @@ if(in_index && F_ON(F_PRINT_INDEX, state)){ char m[10]; static ESCKEY_S prt_opts[] = { @@ -883,7 +886,7 @@ if(agg) restore_selected(msgmap); -@@ -5396,11 +5383,11 @@ +@@ -5458,11 +5445,11 @@ } if(do_index) @@ -898,7 +901,7 @@ if(open_printer(prompt) < 0){ if(agg) -@@ -5663,7 +5650,7 @@ +@@ -5725,7 +5712,7 @@ /* else fall thru as if cancelled */ case 1 : @@ -907,7 +910,7 @@ done++; break; -@@ -5746,7 +5733,7 @@ +@@ -5808,7 +5795,7 @@ sel_opts = sel_opts2; if(old_tot = any_lflagged(msgmap, MN_SLCT)){ i = get_lflag(state->mail_stream, msgmap, mn_get_cur(msgmap), MN_SLCT); @@ -916,7 +919,7 @@ sel_opts += 2; /* disable extra options */ switch(q = radio_buttons(sel_pmt1, q_line, sel_opts1, 'c', 'x', help, RB_NORM)){ -@@ -5790,7 +5777,7 @@ +@@ -5852,7 +5839,7 @@ */ switch(q){ case 'x': /* cancel */ @@ -925,7 +928,7 @@ return; case 'c' : /* select/unselect current */ -@@ -5998,14 +5985,14 @@ +@@ -6060,14 +6047,14 @@ sel_opts3[i].ch = '*'; sel_opts3[i].rval = '*'; sel_opts3[i].name = "*"; @@ -942,7 +945,7 @@ } /* -@@ -6017,7 +6004,7 @@ +@@ -6079,7 +6066,7 @@ sel_opts3[i].ch = 'b'; sel_opts3[i].rval = 'b'; sel_opts3[i].name = "B"; @@ -951,7 +954,7 @@ } if(F_ON(F_ENABLE_PRYNT, state)){ -@@ -6088,7 +6075,7 @@ +@@ -6150,7 +6137,7 @@ break; case 'x' : /* cancel */ @@ -960,7 +963,7 @@ rv = 0; break; -@@ -6205,7 +6192,7 @@ +@@ -6267,7 +6254,7 @@ *t = '\0'; if(r == 1 || numbers[0] == '\0'){ @@ -969,7 +972,7 @@ return(1); } else -@@ -6331,7 +6318,7 @@ +@@ -6393,7 +6380,7 @@ prompt, sel_date_opt, help, &flags); switch (r){ case 1 : @@ -978,7 +981,7 @@ return(1); case 3 : -@@ -6441,15 +6428,15 @@ +@@ -6503,15 +6490,15 @@ ekey[0].ch = ctrl('T'); ekey[0].name = "^T"; ekey[0].rval = 10; @@ -997,7 +1000,7 @@ break; case 's' : -@@ -6457,7 +6444,7 @@ +@@ -6519,7 +6506,7 @@ ekey[0].ch = ctrl('X'); ekey[0].name = "^X"; ekey[0].rval = 13; @@ -1006,7 +1009,7 @@ break; case 'a' : -@@ -6556,7 +6543,7 @@ +@@ -6618,7 +6605,7 @@ } if(type == 'x' || r == 'x'){ @@ -1015,7 +1018,7 @@ return(1); } -@@ -6735,7 +6722,7 @@ +@@ -6799,7 +6786,7 @@ NO_HELP, RB_NORM); if(s == 'x'){ @@ -1024,7 +1027,7 @@ return(1); } else if(s == '!') -@@ -6832,7 +6819,7 @@ +@@ -6896,7 +6883,7 @@ /*----- String together the prompt ------*/ tmp[1] = '\0'; @@ -1033,7 +1036,7 @@ for(i = 0; state->sort_types[i] != EndofList && i < 8; i++) { sorts[i].rval = i; p = sorts[i].label = sort_name(state->sort_types[i]); -@@ -6849,7 +6836,7 @@ +@@ -6913,7 +6900,7 @@ sorts[i].ch = 'r'; sorts[i].rval = 'r'; sorts[i].name = cpystr("R"); @@ -1042,7 +1045,7 @@ sorts[++i].ch = -1; help = h_select_sort; -@@ -6862,7 +6849,7 @@ +@@ -6926,7 +6913,7 @@ } else{ retval = 0; diff --git a/chinese/pine4/files/patch-bb b/chinese/pine4/files/patch-bb index 12a5be0380d6..09353ef999c0 100644 --- a/chinese/pine4/files/patch-bb +++ b/chinese/pine4/files/patch-bb @@ -1,5 +1,5 @@ ---- pine/mailindx.c.orig Tue Jul 21 01:21:48 1998 -+++ pine/mailindx.c Tue Aug 4 12:42:18 1998 +--- pine/mailindx.c.orig Thu Sep 3 00:22:21 1998 ++++ pine/mailindx.c Tue Sep 22 19:18:33 1998 @@ -55,10 +55,10 @@ /* * Some common Command Bindings @@ -40,9 +40,9 @@ HELP_MENU, OTHER_MENU, - {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, -- {"Z","ZoomMode",{MC_ZOOM,1,{'z'}},KS_NONE}, +- {"Z","ZoomMode",{MC_ZOOM,1,{'z'}},KS_ZOOM}, + {":","選擇",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, -+ {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_NONE}, ++ {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_ZOOM}, LISTFLD_MENU, NULL_MENU, NULL_MENU, @@ -58,7 +58,7 @@ PREVMSG_MENU, NEXTMSG_MENU, PREVPAGE_MENU, -@@ -344,14 +344,14 @@ +@@ -356,14 +356,14 @@ if(flags & INDX_HEADER) set_titlebar((stream == ps_global->mail_stream) ? (style == MsgIndex || style == MultiMsgIndex) @@ -78,7 +78,7 @@ stream, cntxt, folder, msgmap, 1, MessageNumber, 0, 0); if(flags & INDX_FOOTER) { -@@ -443,7 +443,7 @@ +@@ -455,7 +455,7 @@ { dprint(1, (debugfile, "\n\n ---- MAIL INDEX ----\n")); if(!state->mail_stream) { @@ -87,7 +87,7 @@ state->prev_screen = mail_index_screen; state->next_screen = main_menu_screen; return; -@@ -624,7 +624,7 @@ +@@ -657,7 +657,7 @@ if(F_ON(F_SHOW_CURSOR, state) && cur_row < 0){ q_status_message(SM_ORDER, (ch==NO_OP_IDLE || ch==NO_OP_COMMAND) ? 0 : 3, 5, @@ -96,7 +96,7 @@ cur_row = state->ttyo->screen_rows - FOOTER_ROWS(state); display_message(ch); } -@@ -741,7 +741,7 @@ +@@ -778,7 +778,7 @@ k = i; if(++j >= id.lines_per_page){ if((id.msg_at_top = i) == 1L) @@ -105,7 +105,7 @@ break; } -@@ -750,7 +750,7 @@ +@@ -787,7 +787,7 @@ if(i <= 1L){ if(mn_get_cur(msgmap) == 1L) q_status_message(SM_ORDER, 0, 1, @@ -114,7 +114,7 @@ break; } -@@ -770,7 +770,7 @@ +@@ -807,7 +807,7 @@ k = i; if(++j >= id.lines_per_page){ if(i+id.lines_per_page >= mn_get_total(msgmap)) @@ -123,7 +123,7 @@ id.msg_at_top = i; break; -@@ -779,7 +779,7 @@ +@@ -816,7 +816,7 @@ if(i >= mn_get_total(msgmap)){ if(mn_get_cur(msgmap) == k) @@ -132,7 +132,7 @@ break; } -@@ -961,9 +961,9 @@ +@@ -1029,9 +1029,9 @@ } q_status_message2(SM_ORDER, 0, 1, @@ -144,7 +144,7 @@ } break; -@@ -985,9 +985,9 @@ +@@ -1053,9 +1053,9 @@ } q_status_message2(SM_ORDER, 0, 1, @@ -156,7 +156,7 @@ } break; -@@ -1787,7 +1787,7 @@ +@@ -1861,7 +1861,7 @@ dprint(1, (debugfile, "parse_index_format: unrecognized token: %s\n", q)); q_status_message1(SM_ORDER | SM_DING, 0, 3, @@ -165,7 +165,7 @@ continue; } -@@ -1829,7 +1829,7 @@ +@@ -1903,7 +1903,7 @@ if(!column){ dprint(1, (debugfile, "Completely unrecognizable index-format\n")); q_status_message(SM_ORDER | SM_DING, 0, 3, @@ -174,16 +174,16 @@ return(0); } -@@ -2320,7 +2320,7 @@ - sprintf(str, "%ld", idata->msgno); - else if(idata->bogus < 2 && cdesc->ctype == iSubject) - sprintf(str, "%-*.*s", width, width, -- "[ No Message Text Available ]"); -+ "[ 無法取得信件 ]"); - } - else - switch(cdesc->ctype){ -@@ -2959,8 +2959,8 @@ +@@ -2526,7 +2526,7 @@ + sprintf(str, "%ld", idata->msgno); + else if(idata->bogus < 2 && cdesc->ctype == iSubject) + sprintf(str, "%-*.*s", width, width, +- "[ No Message Text Available ]"); ++ "[ 無法取得信件 ]"); + } + else + switch(cdesc->ctype){ +@@ -3425,8 +3425,8 @@ HelpType help; static char search_string[MAX_SEARCH+1] = { '\0' }; static ESCKEY_S header_search_key[] = { {0, 0, NULL, NULL }, @@ -194,7 +194,7 @@ {-1, 0, NULL, NULL} }; dprint(4, (debugfile, "\n - search headers - \n")); -@@ -2969,7 +2969,7 @@ +@@ -3435,7 +3435,7 @@ return; } else if(mn_total_cur(msgmap) > 1L){ @@ -203,7 +203,7 @@ comatose(mn_total_cur(msgmap))); return; } -@@ -2980,13 +2980,13 @@ +@@ -3446,13 +3446,13 @@ new_string[0] = '\0'; while(1) { @@ -219,7 +219,7 @@ } else{ header_search_key[0].ch = header_search_key[0].rval = 0; -@@ -3005,7 +3005,7 @@ +@@ -3471,7 +3471,7 @@ continue; } else if(rc == 10){ @@ -228,7 +228,7 @@ if(any_lflagged(msgmap, MN_HIDE)){ do{ selected = sorted_msg; -@@ -3021,7 +3021,7 @@ +@@ -3487,7 +3487,7 @@ return; } else if(rc == 11){ @@ -237,7 +237,7 @@ if(any_lflagged(msgmap, MN_HIDE)){ do{ selected = sorted_msg; -@@ -3046,7 +3046,7 @@ +@@ -3512,7 +3512,7 @@ } if(rc == 1 || (new_string[0] == '\0' && search_string[0] == '\0')) { @@ -246,7 +246,7 @@ return; } -@@ -3085,21 +3085,21 @@ +@@ -3551,21 +3551,21 @@ } if(ps_global->intr_pending){ @@ -273,7 +273,7 @@ #ifndef DOS intr_handling_off(); -@@ -3236,7 +3236,7 @@ +@@ -3702,7 +3702,7 @@ && LEVELSORT(ps_global->mail_stream))) sort_func = percent_sorted; @@ -282,7 +282,7 @@ strsquish(tmp_20k_buf + 500, ps_global->cur_folder, ps_global->ttyo->screen_cols - 20)); we_cancel = busy_alarm(1, sort_msg, sort_func, 1); -@@ -3286,8 +3286,8 @@ +@@ -3752,8 +3752,8 @@ new_sort = mn_get_sort(msgmap); new_rev = mn_get_revsort(msgmap); q_status_message2(SM_ORDER, 3, 3, @@ -293,7 +293,7 @@ sort_name(new_sort)); } else if(mn_get_total(msgmap) < g_sort_prog->nmsgs) -@@ -4045,7 +4045,7 @@ +@@ -4515,7 +4515,7 @@ icache.name = temp_nam(NULL, "pi"); if((icache.cache = (void *)fopen(icache.name,"w+b")) == NULL){ @@ -302,7 +302,7 @@ fatal(tmp_20k_buf); } -@@ -4398,10 +4398,10 @@ +@@ -4897,10 +4897,10 @@ && format_message(mn_m2raw(ps_global->msgmap, mn_get_cur(ps_global->msgmap)), env, body, FM_NEW_MESS, pc)){ diff --git a/chinese/pine4/files/patch-bc b/chinese/pine4/files/patch-bc index 458027423721..8d0dbd503e48 100644 --- a/chinese/pine4/files/patch-bc +++ b/chinese/pine4/files/patch-bc @@ -1,6 +1,6 @@ ---- pine/mailpart.c.orig Wed Aug 19 10:37:25 1998 -+++ pine/mailpart.c Wed Aug 19 10:45:24 1998 -@@ -134,18 +134,18 @@ +--- pine/mailpart.c.orig Wed Sep 16 04:00:39 1998 ++++ pine/mailpart.c Tue Sep 22 20:29:13 1998 +@@ -142,18 +142,18 @@ {HELP_MENU, OTHER_MENU, {"<",NULL,{MC_EXIT,2,{'<',','}},KS_EXITMODE}, @@ -23,7 +23,7 @@ {NULL, NULL, {MC_EXPORT, 1, {'e'}}, KS_EXPORT}, HELP_MENU, -@@ -154,9 +154,9 @@ +@@ -162,9 +162,9 @@ QUIT_MENU, PIPE_MENU, BOUNCE_MENU, @@ -35,13 +35,11 @@ INDEX_MENU, REPLY_MENU, FORWARD_MENU}; -@@ -173,11 +173,11 @@ - static struct key att_view_keys[] = +@@ -182,10 +182,10 @@ {HELP_MENU, OTHER_MENU, -- {"<",NULL,{MC_EXIT,2,{'<',','}},KS_EXITMODE}, + {"<",NULL,{MC_EXIT,2,{'<',','}},KS_EXITMODE}, - {"Ret","[View Hilite]",{MC_VIEW_HANDLE,3, -+ {"<",NULL,{MC_EXIT,3,{'<',',',KEY_LEFT}},KS_EXITMODE}, + {"Ret","[檢視 Hilite]",{MC_VIEW_HANDLE,3, {ctrl('m'),ctrl('j'),KEY_RIGHT}},KS_NONE}, - {"^B","Prev URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE}, @@ -51,7 +49,7 @@ PREVPAGE_MENU, NEXTPAGE_MENU, DELETE_MENU, -@@ -193,7 +193,7 @@ +@@ -201,7 +201,7 @@ BOUNCE_MENU, NULL_MENU, WHEREIS_MENU, @@ -60,7 +58,7 @@ NULL_MENU, REPLY_MENU, FORWARD_MENU}; -@@ -323,12 +323,12 @@ +@@ -337,12 +337,12 @@ if(mn_total_cur(ps->msgmap) > 1L){ q_status_message(SM_ORDER | SM_DING, 0, 3, @@ -68,15 +66,14 @@ + "同一時間僅能檢視一封信的附件!"); return; } -- else if(ps->atmts && ps->atmts->description && !(ps->atmts + 1)->description) -+ else if(ps->atmts && !(ps->atmts + 1)->description) + else if(ps->atmts && ps->atmts->description && !(ps->atmts + 1)->description) q_status_message1(SM_ASYNC, 0, 3, - "Message %s has only one part (the message body), and no attachments.", + "信件 %s 僅有一部分(信件本體),沒有附件。", long2string(mn_get_cur(ps->msgmap))); /* -@@ -471,7 +471,7 @@ +@@ -485,7 +485,7 @@ break; if(ps->mangled_header){ @@ -85,7 +82,16 @@ ps->context_current, ps->cur_folder, ps->msgmap, 1, MessageNumber, 0, 0); ps->mangled_header = 0; -@@ -535,7 +535,7 @@ +@@ -523,7 +523,7 @@ + last_type = current->attp->body->type; + last_subtype = current->attp->body->subtype; + +- sprintf(backtag, "Msg #%ld", mn_get_cur(ps->msgmap)); ++ sprintf(backtag, "信件 #%ld", mn_get_cur(ps->msgmap)); + km->keys[ATT_PARENT_KEY].label = backtag; + + if(F_OFF(F_ENABLE_PIPE, ps)) +@@ -549,7 +549,7 @@ clrbitn(ATT_PRINT_KEY, bitmap); km->keys[ATT_EXPORT_KEY].name = "E"; @@ -94,7 +100,16 @@ } if(km_popped){ -@@ -630,7 +630,7 @@ +@@ -615,7 +615,7 @@ + break; + } + +- helper(h_attachment_screen, "HELP FOR ATTACHMENT INDEX", 0); ++ helper(h_attachment_screen, "附件索引的輔助說明", 0); + ps->mangled_screen = 1; + break; + +@@ -644,7 +644,7 @@ if(ctmp = next_attline(current)) current = ctmp; else @@ -103,7 +118,7 @@ break; -@@ -638,7 +638,7 @@ +@@ -652,7 +652,7 @@ if(ctmp = prev_attline(current)) current = ctmp; else @@ -112,7 +127,7 @@ break; -@@ -652,7 +652,7 @@ +@@ -666,7 +666,7 @@ } else q_status_message(SM_ORDER, 0, 1, @@ -121,7 +136,7 @@ break; -@@ -673,7 +673,7 @@ +@@ -687,7 +687,7 @@ } else q_status_message(SM_ORDER, 0, 1, @@ -130,7 +145,7 @@ break; -@@ -1041,7 +1041,7 @@ +@@ -1149,7 +1149,7 @@ { bitmap_t bitmap; @@ -139,7 +154,7 @@ ps_global->context_current, ps_global->cur_folder, ps_global->msgmap, 1, FolderName,0,0); -@@ -1210,7 +1210,7 @@ +@@ -1318,7 +1318,7 @@ gf_io_t pc; STORE_S *store; static ESCKEY_S att_save_opts[] = { @@ -148,7 +163,7 @@ {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}}; -@@ -1243,7 +1243,7 @@ +@@ -1351,7 +1351,7 @@ att_save_opts[++r].ch = ctrl('V'); att_save_opts[r].rval = 12; att_save_opts[r].name = "^V"; @@ -157,7 +172,7 @@ } #endif /* !(DOS || MAC) */ -@@ -1251,7 +1251,7 @@ +@@ -1359,7 +1359,7 @@ att_save_opts[++r].ch = ctrl('I'); att_save_opts[r].rval = 11; att_save_opts[r].name = "TAB"; @@ -166,7 +181,94 @@ } att_save_opts[++r].ch = -1; -@@ -1470,7 +1470,7 @@ +@@ -1393,7 +1393,7 @@ + + if(ps_global->restricted){ + q_status_message(SM_ORDER | SM_DING, 3, 3, +- "Download disallowed in restricted mode"); ++ "限制模式中不允許\下載"); + return; + } + +@@ -1401,7 +1401,7 @@ + tfp = temp_nam(NULL, "pd"); + dprint(1, (debugfile, "Download attachment called!\n")); + if(store = so_get(FileStar, tfp, WRITE_ACCESS|OWNER_ONLY)){ +- sprintf(prompt_buf, "Saving to \"%.50s\"", tfp); ++ sprintf(prompt_buf, "正在存入 \"%.50s\"", tfp); + we_cancel = init_att_progress(prompt_buf, + ps_global->mail_stream, + a->body); +@@ -1410,7 +1410,7 @@ + if(err = detach(ps_global->mail_stream, msgno, + a->number, &len, pc, NULL)) + q_status_message2(SM_ORDER | SM_DING, 3, 5, +- "%s: Error writing attachment to \"%s\"", ++ "%s: \\寫入附件至 \"%s\" 時發生錯誤", + err, tfp); + + /* cancel regardless, so it doesn't get in way of xfer */ +@@ -1427,18 +1427,18 @@ + (void)close_system_pipe(&syspipe); + else + q_status_message(SM_ORDER | SM_DING, 3, 3, +- err = "Error running download command"); ++ err = "執行下載命令時發生錯誤"); + } + + unlink(tfp); + } + else + q_status_message(SM_ORDER | SM_DING, 3, 3, +- err = "Error building temp file for download"); ++ err = "建立暫存檔時發生錯誤"); + + fs_give((void **)&tfp); + if(!err) +- q_status_message1(SM_ORDER, 0, 4, "Part %s downloaded", ++ q_status_message1(SM_ORDER, 0, 4, "已下載第 %s 部份", + a->number); + + return; +@@ -1450,12 +1450,12 @@ + + if((store = so_get(FileStar, full_filename, WRITE_ACCESS)) == NULL){ + q_status_message2(SM_ORDER | SM_DING, 3, 5, +- "Error opening destination %s: %s", ++ "開啟目地檔 %s 時發生錯誤:%s", + full_filename, error_description(errno)); + return; + } + +- sprintf(prompt_buf, "Saving to \"%.50s\"", full_filename); ++ sprintf(prompt_buf, "正在存入 \"%.50s\"", full_filename); + we_cancel = init_att_progress(prompt_buf, ps_global->mail_stream, a->body); + + gf_set_so_writec(&pc, store); +@@ -1474,7 +1474,7 @@ + truncate(full_filename, (over == -1) ? orig_size : 0); + + q_status_message2(SM_ORDER | SM_DING, 3, 5, +- "%s: Error writing attachment to \"%s\"", ++ "%s:寫入附件至 \"%s\" 時發生錯誤", + err, full_filename); + } + else{ +@@ -1552,7 +1552,7 @@ + MESSAGECACHE *mc; + STORE_S *so; + +- sprintf(nmsgs, "Attached Msg (part %s) ", a->number); ++ sprintf(nmsgs, "附加的信件 (第 %s 部份) ", a->number); + if(save_prompt(ps_global, &cntxt, newfolder, nmsgs, + a->body->nested.msg->env, msgno, a->number)){ + save_folder = (strucmp(newfolder, ps_global->inbox_name) == 0) +@@ -1574,11 +1574,11 @@ + a->body->size.bytes, flags, date, so); + if(rv == 1) + q_status_message2(SM_ORDER, 0, 4, +- "Attached message (part %s) saved to \"%s\"", ++ "附加的 digest(第 %s 部份) 存為 \"%s\"", a->number, save_folder); else if(rv == -1) @@ -175,7 +277,16 @@ /* else whatever broke in save_fetch_append shoulda bitched */ so_give(&so); -@@ -1546,11 +1546,11 @@ +@@ -1620,7 +1620,7 @@ + if(MIME_MSG(part->body.type, part->body.subtype)) + cnt++; + +- sprintf(nmsgs, "%d Msg Digest (part %s) ", cnt, a->number); ++ sprintf(nmsgs, "%d 信件 Digest (第 %s 部份) ", cnt, a->number); + + if(save_prompt(ps_global, &cntxt, newfolder, nmsgs, NULL, 0, NULL)){ + save_folder = (strucmp(newfolder, ps_global->inbox_name) == 0) +@@ -1654,11 +1654,11 @@ if(rv == 1) q_status_message2(SM_ORDER, 0, 4, @@ -189,7 +300,7 @@ /* else whatever broke in save_fetch_append shoulda bitched */ if(our_stream) -@@ -1604,7 +1604,7 @@ +@@ -1712,7 +1712,7 @@ ATTACH_S *ap = a; STORE_S *store; static ESCKEY_S opts[] = { @@ -198,7 +309,7 @@ {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}}; -@@ -1612,7 +1612,7 @@ +@@ -1720,7 +1720,7 @@ opts[i].ch = ctrl('I'); opts[i].rval = 11; opts[i].name = "TAB"; @@ -207,7 +318,7 @@ } filename[0] = full_filename[0] = '\0'; -@@ -1625,7 +1625,7 @@ +@@ -1733,12 +1733,12 @@ if(rv < 0){ switch(rv){ case -1: @@ -216,7 +327,35 @@ break; case -2: -@@ -1677,7 +1677,7 @@ + q_status_message1(SM_ORDER, 0, 2, +- "Can't export to file outside of %s", ++ "無法將檔案匯出至 %s 以外的地方", + ps_global->VAR_OPER_DIR); + break; + } +@@ -1752,17 +1752,17 @@ + q_status_message(SM_ORDER | SM_DING, 3, 4, err); + else + q_status_message3(SM_ORDER, 0, 4, +- "Attached message (part %s) %s to \"%s\"", ++ "附件(第 %s 部份)%s至 \"%s\"", + a->number, +- over==0 ? "written" +- : over==1 ? "overwritten" : "appended", ++ over==0 ? "寫入" ++ : over==1 ? "覆蓋\" : "附加", + full_filename); + + so_give(&store); + } + else + q_status_message2(SM_ORDER | SM_DING, 3, 4, +- "Error opening file \"%s\" to export message: %s", ++ "無法開啟檔案 \"%s\" 以供匯出信件:%s", + full_filename, error_description(errno)); + } + +@@ -1785,7 +1785,7 @@ ATTACH_S *ap; STORE_S *store; static ESCKEY_S opts[] = { @@ -225,7 +364,7 @@ {-1, 0, NULL, NULL}, {-1, 0, NULL, NULL}}; -@@ -1685,7 +1685,7 @@ +@@ -1793,7 +1793,7 @@ opts[i].ch = ctrl('I'); opts[i].rval = 11; opts[i].name = "TAB"; @@ -234,7 +373,7 @@ } filename[0] = full_filename[0] = '\0'; -@@ -1698,7 +1698,7 @@ +@@ -1806,12 +1806,12 @@ if(rv < 0){ switch(rv){ case -1: @@ -243,7 +382,68 @@ break; case -2: -@@ -1906,14 +1906,14 @@ + q_status_message1(SM_ORDER, 0, 2, +- "Can't export to file outside of %s", ++ "無法將檔案匯出至 %s 以外的地方", + ps_global->VAR_OPER_DIR); + break; + } +@@ -1833,7 +1833,7 @@ + sprintf(tmp_20k_buf, " [Unknown Message subtype: %s ]\n", + ap->body->subtype); + if(!so_puts(store, tmp_20k_buf)) +- err = "Can't write export file"; ++ err = "無法寫入匯出檔"; + } + else{ + count++; +@@ -1842,29 +1842,29 @@ + } + } + else if(!so_puts(store, "Unknown type in Digest")) +- err = "Can't write export file"; ++ err = "無法寫入匯出檔"; + } + + so_give(&store); + + if(err){ + q_status_message1(SM_ORDER | SM_DING, 3, 3, +- "Error exporting: %s", err); ++ "匯出檔案時發生錯誤:%s", err); + q_status_message1(SM_ORDER | SM_DING, 3, 3, +- "%s messages exported before error occurred", err); ++ "%s 封信件在錯誤產生之前被匯出", err); + } + else + q_status_message4(SM_ORDER, 0, 4, +- "%s messages in digest (part %s) %s to \"%s\"", ++ "共 %s 封信件(第 %s 部份)%s至 \"%s\"", + long2string(count), + a->number, +- over==0 ? "written" +- : over==1 ? "overwritten" : "appended", ++ over==0 ? "被寫入" ++ : over==1 ? "被覆蓋\" : "被附加", + full_filename); + } + else + q_status_message2(SM_ORDER | SM_DING, 3, 4, +- "Error opening file \"%s\" to export digest: %s", ++ "無法開啟檔案 \"%s\" 以供匯出 digest:%s", + full_filename, error_description(errno)); + } + +@@ -1933,7 +1933,7 @@ + + + q_status_message2(SM_ORDER | SM_DING, 3, 3, +- "Error printing message %s, part %s", ++ "無法列印第 %s 封信件的第 %s 部份", + long2string(msgno), a->number); + return(0); + } +@@ -2014,14 +2014,14 @@ /*----- Can't display this type ------*/ if(a->body->encoding < ENCOTHER) q_status_message4(SM_ORDER | SM_DING, 3, 5, @@ -261,16 +461,16 @@ body_encodings[(a->body->encoding <= ENCMAX) ? a->body->encoding : ENCOTHER]); -@@ -2102,7 +2102,7 @@ - gf_set_so_writec(&pc, store); - (void) decode_text(a, msgno, pc, QStatus, FM_DISPLAY | FM_HANDLES); - gf_clear_so_writec(store); -- scroll_attachment("ATTACHED TEXT", store, src, handles, a, flags); -+ scroll_attachment("附件文字", store, src, handles, a, flags); +@@ -2243,7 +2243,7 @@ + clear_index_cache_ent(msgno); + + if(store = format_text_att(msgno, a, &handles)){ +- scroll_attachment("ATTACHED TEXT", store, CharStar, handles, a, flags); ++ scroll_attachment("附件文字", store, CharStar, handles, a, flags); free_handles(&handles); so_give(&store); /* free resources associated with store */ } -@@ -2277,22 +2277,22 @@ +@@ -2411,22 +2411,22 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = so_text(store); sargs.text.src = src; @@ -297,21 +497,19 @@ } if(!handles){ -@@ -2706,10 +2706,10 @@ - memset(&sargs, 0, sizeof(SCROLL_S)); +@@ -2858,9 +2858,9 @@ sargs.text.text = so_text(store); sargs.text.src = CharStar; -- sargs.text.desc = "attachment info"; + sargs.text.desc = "attachment info"; - sargs.bar.title = "ABOUT ATTACHMENT"; -+ sargs.text.desc = "附件資訊"; -+ sargs.bar.title = "關於附件"; ++ sargs.bar.title = "附件資訊"; sargs.help.text = h_simple_text_view; - sargs.help.title = "HELP FOR \"ABOUT ATTACHMENT\""; + sargs.help.title = "\"關於附件\"的輔助說明"; scrolltool(&sargs); -@@ -2771,7 +2771,7 @@ +@@ -2922,7 +2922,7 @@ else /* partially formatted outgoing message */ pine_send(outgoing, &body, ps_global->nr_mode @@ -320,7 +518,22 @@ NULL, NULL, NULL, NULL, NULL, FALSE); ps_global->mangled_screen = 1; -@@ -2857,7 +2857,7 @@ +@@ -2938,12 +2938,12 @@ + mail_free_body(&body); + so_give((STORE_S **) &msgtext); + q_status_message(SM_ORDER | SM_DING, 4, 5, +- "Error fetching message contents. Can't forward message."); ++ "取得信件內容時發生錯誤。無法轉寄信件。"); + } + } + else + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Error allocating message text"); ++ "無法配置信件文字"); + + mail_free_envelope(&outgoing); + } +@@ -3008,7 +3008,7 @@ pine_simple_send(outgoing, &body, NULL, NULL, NULL, 1); else /* partially formatted outgoing message */ pine_send(outgoing, &body, @@ -329,7 +542,27 @@ NULL, NULL, NULL, NULL, NULL, FALSE); ps_global->mangled_screen = 1; -@@ -2954,7 +2954,7 @@ +@@ -3023,16 +3023,16 @@ + else{ + so_give((STORE_S **) &msgtext); + q_status_message(SM_ORDER | SM_DING, 4, 5, +- "Error fetching message contents. Can't forward message."); ++ "取得信件內容時發生錯誤。無法轉寄信件。"); + } + } + else + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Error allocating message text"); ++ "無法配置信件文字"); + } + else + q_status_message1(SM_ORDER,3,4, +- "Error fetching message %s. Can't forward it.", ++ "取得信件 %s 的內容時發生錯誤。無法轉寄它。", + long2string(msgno)); + + mail_free_envelope(&outgoing); +@@ -3105,7 +3105,7 @@ tp = body_partno(stream, msgno, a->body), msgtext, prefix, include_text)){ /* partially formatted outgoing message */ @@ -338,7 +571,23 @@ fcc.tptr, NULL, NULL, NULL, NULL, 0); pine_free_body(&body); -@@ -3035,7 +3035,7 @@ +@@ -3113,13 +3113,13 @@ + } + else + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Error building message body"); ++ "無法建立信件本體"); + + fs_give((void **) &tp); + } + else + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Error allocating message text"); ++ "無法配置信件文字"); + } + + seeyalater: +@@ -3186,7 +3186,7 @@ sprintf(prompt, "Pipe %sattachment %s to %s: ", raw ? "RAW " : "", a->number, capture ? "" : "(Free Output) "); @@ -347,7 +596,7 @@ pipe_opt[2].label = capture ? "Free Output" : "Capture Output"; flags = OE_APPEND_CURRENT | OE_SEQ_SENSITIVE; rc = optionally_enter(pipe_command, -FOOTER_ROWS(ps_global), 0, -@@ -3053,7 +3053,7 @@ +@@ -3204,7 +3204,7 @@ } else if(rc == 0){ if(pipe_command[0] == '\0'){ @@ -356,7 +605,7 @@ break; } -@@ -3127,7 +3127,7 @@ +@@ -3278,7 +3278,7 @@ break; } else if(rc == 1){ diff --git a/chinese/pine4/files/patch-bd b/chinese/pine4/files/patch-bd index 42ad8eb016ec..08e112efd180 100644 --- a/chinese/pine4/files/patch-bd +++ b/chinese/pine4/files/patch-bd @@ -1,6 +1,6 @@ ---- pine/mailview.c.orig Wed Aug 19 10:37:26 1998 -+++ pine/mailview.c Wed Aug 19 10:45:24 1998 -@@ -140,8 +140,8 @@ +--- pine/mailview.c.orig Thu Sep 17 05:56:10 1998 ++++ pine/mailview.c Tue Sep 22 19:30:34 1998 +@@ -145,8 +145,8 @@ static struct key view_keys[] = {HELP_MENU, OTHER_MENU, @@ -11,7 +11,7 @@ PREVMSG_MENU, NEXTMSG_MENU, PREVPAGE_MENU, -@@ -166,11 +166,11 @@ +@@ -171,11 +171,11 @@ HELP_MENU, OTHER_MENU, @@ -27,7 +27,7 @@ JUMP_MENU, TAB_MENU, HDRMODE_MENU, -@@ -187,7 +187,7 @@ +@@ -192,7 +192,7 @@ #define FLAG_KEY 34 #define VIEW_PIPE_KEY 35 @@ -36,7 +36,7 @@ {HELP_MENU, WHEREIS_MENU, QUIT_MENU, -@@ -211,7 +211,7 @@ +@@ -216,7 +216,7 @@ NEXTMSG_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, @@ -45,16 +45,16 @@ JUMP_MENU, PRYNTTXT_MENU, SAVE_MENU, -@@ -233,7 +233,7 @@ +@@ -238,7 +238,7 @@ static struct key simple_text_keys[] = {HELP_MENU, NULL_MENU, -- {"E","Exit Viewer",{MC_EXIT,1,{'e'}},KS_NONE}, -+ {"E","離開",{MC_EXIT,1,{'e'}},KS_NONE}, +- {"E","Exit Viewer",{MC_EXIT,1,{'e'}},KS_EXITMODE}, ++ {"E","離開",{MC_EXIT,1,{'e'}},KS_EXITMODE}, NULL_MENU, NULL_MENU, NULL_MENU, -@@ -242,7 +242,7 @@ +@@ -247,7 +247,7 @@ PRYNTTXT_MENU, WHEREIS_MENU, FWDEMAIL_MENU, @@ -63,7 +63,7 @@ INST_KEY_MENU(simple_text_keymenu, simple_text_keys); -@@ -377,7 +377,7 @@ +@@ -388,7 +388,7 @@ * we were viewing. If so, make sure we don't just come back. */ if(mn_get_total(ps->msgmap) <= 0L || !ps->mail_stream){ @@ -72,7 +72,7 @@ ps->next_screen = mail_index_screen; break; } -@@ -391,7 +391,7 @@ +@@ -402,7 +402,7 @@ body = NULL; if(!(env = mail_fetchstructure(ps->mail_stream, raw_msgno, &body)) || !(mc = mail_elt(ps->mail_stream, raw_msgno))){ @@ -81,7 +81,7 @@ comatose(mn_get_cur(ps->msgmap))); dprint(1, (debugfile, "!!!! ERROR fetching %s of msg %ld\n", env ? "elt" : "env", mn_get_cur(ps->msgmap))); -@@ -444,7 +444,7 @@ +@@ -457,7 +457,7 @@ memset(&scrollargs, 0, sizeof(SCROLL_S)); scrollargs.text.text = so_text(store); scrollargs.text.src = src; @@ -90,7 +90,7 @@ /* * make first selectable handle the default -@@ -463,11 +463,11 @@ +@@ -477,11 +477,11 @@ else scrollargs.body_valid = 1; @@ -104,7 +104,7 @@ scrollargs.keys.menu = &view_keymenu; scrollargs.keys.what = save_what; setbitmap(scrollargs.keys.bitmap); -@@ -1196,7 +1196,7 @@ +@@ -1214,7 +1214,7 @@ /*---- format and copy envelope ----*/ if(ps_global->full_header) q_status_message(SM_INFO, 0, 3, @@ -113,7 +113,7 @@ HD_INIT(&h, ps_global->VAR_VIEW_HEADERS, ps_global->view_all_except, FE_DEFAULT); -@@ -1235,7 +1235,7 @@ +@@ -1253,7 +1253,7 @@ if(append_file_name) fs_give((void **)&append_file_name); @@ -122,7 +122,7 @@ error_description(errno)); return(0); } -@@ -1529,7 +1529,7 @@ +@@ -1547,7 +1547,7 @@ write_error: if(!(flgs & FM_DISPLAY)) @@ -131,7 +131,7 @@ decode_err ? decode_err : error_description(errno)); return(0); -@@ -1865,8 +1865,8 @@ +@@ -1885,12 +1885,12 @@ char prompt[256], tmp[MAILTMPLEN]; int rc, flags, local_h; static ESCKEY_S launch_opts[] = { @@ -141,17 +141,23 @@ + {'n', 'n', "N", "否"}, {-2, 0, NULL, NULL}, {-2, 0, NULL, NULL}, - {0, 'u', "U", "editURL"}, -@@ -1887,7 +1887,7 @@ - else{ - launch_opts[5].ch = -1; - if(!local_h){ -- if(want_to("No Web-Browser application defined! Define now", -+ if(want_to("尚未定義 Web-Browser!現在定義", +- {0, 'u', "U", "editURL"}, +- {0, 'a', "A", "editApp"}, ++ {0, 'u', "U", "編輯 URL"}, ++ {0, 'a', "A", "編輯應用程式"}, + {-1, 0, NULL, NULL}}; + + if(handle->type == URL){ +@@ -1920,7 +1920,7 @@ + return(0); + } + else{ +- if(want_to("No URL-Viewer application defined! Define now", ++ if(want_to("尚未定義 URL 檢視程式!現在定義", 'y', 0, NO_HELP, WT_SEQ_SENSITIVE) == 'y'){ /* Prompt for the displayer? */ tmp[0] = '\0'; -@@ -1931,7 +1931,7 @@ +@@ -1964,7 +1964,7 @@ } else{ q_status_message1(SM_ORDER | SM_DING, 2, 2, @@ -160,7 +166,7 @@ error_description(errno)); continue; } -@@ -1960,8 +1960,8 @@ +@@ -1994,8 +1994,8 @@ return(1); while(1){ @@ -171,30 +177,39 @@ (handle->type == URL) ? "\"" : "", (handle->type == URL) ? handle->h.url.path : "", (handle->type == URL) -@@ -2426,11 +2426,11 @@ +@@ -2606,11 +2606,11 @@ mode = PIPE_RESET | PIPE_USER ; if(syspipe = open_system_pipe(cmd, NULL, NULL, mode)){ close_system_pipe(&syspipe); - q_status_message(SM_ORDER, 0, 4, "VIEWER command completed"); -+ q_status_message(SM_ORDER, 0, 4, "VIEWER 命令完成"); ++ q_status_message(SM_ORDER, 0, 4, "檢視器命令完成"); } else q_status_message1(SM_ORDER, 3, 4, -- "Cannot spawn command : %s", cmd); -+ "無法起始命令:%s", cmd); +- "Cannot spawn command : %s", cmd); ++ "無法起始命令:%s", cmd); } else if(f = url_local_handler(handle->h.url.path)){ if((*f)(handle->h.url.path) > 1) -@@ -2438,7 +2438,7 @@ +@@ -2618,7 +2618,7 @@ } else q_status_message1(SM_ORDER, 2, 2, -- "\"Web-Browser\" not defined: Can't open %s", -+ "尚未定義 \"Web-Browser\":無法開啟 %s", +- "\"URL-Viewer\" not defined: Can't open %s", ++ "尚未定義 \"URL-檢視器\":無法開啟 %s", handle->h.url.path); return(rv); -@@ -2758,7 +2758,7 @@ +@@ -2630,7 +2630,7 @@ + int return_value; + { + q_status_message(SM_ORDER | SM_DING, 3, 3, +- "Can't spawn. Command too long."); ++ "無法起始。命令太長。"); + return(return_value); + } + +@@ -2920,7 +2920,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 4, @@ -203,7 +218,7 @@ if(outgoing) mail_free_envelope(&outgoing); -@@ -2822,7 +2822,7 @@ +@@ -2984,7 +2984,7 @@ else if(errstr) q_status_message(SM_ORDER|SM_DING, 3, 3, errstr); else @@ -212,7 +227,7 @@ break; -@@ -2845,7 +2845,7 @@ +@@ -3007,7 +3007,7 @@ if(uid_val != ps_global->mail_stream->uid_validity){ /* Complain! */ q_status_message(SM_ORDER|SM_DING, 3, 3, @@ -221,7 +236,7 @@ } if(uid){ -@@ -2861,7 +2861,7 @@ +@@ -3023,7 +3023,7 @@ if(i > mn_get_total(ps_global->msgmap)) q_status_message(SM_ORDER, 2, 3, @@ -230,7 +245,7 @@ } else if(search){ /* -@@ -2882,9 +2882,9 @@ +@@ -3044,9 +3044,9 @@ if(i = any_lflagged(ps_global->msgmap, MN_SLCT)){ extern long zoom_index(); @@ -243,7 +258,7 @@ /* Zoom the index! */ zoom_index(ps_global, ps_global->msgmap); } -@@ -3023,9 +3023,9 @@ +@@ -3185,9 +3185,9 @@ if(auth && *auth != '*') q_status_message1(SM_ORDER, 3, 3, @@ -256,7 +271,7 @@ /* * At this point our structure should contain the -@@ -3110,7 +3110,7 @@ +@@ -3272,7 +3272,7 @@ if(i > mn_get_total(ps_global->msgmap)) q_status_message(SM_ORDER, 2, 3, @@ -265,7 +280,7 @@ } break; -@@ -3189,7 +3189,7 @@ +@@ -3386,7 +3386,7 @@ } else q_status_message1(SM_ORDER | SM_DING, 0, 3, @@ -274,7 +289,7 @@ return(1); } -@@ -3216,7 +3216,7 @@ +@@ -3413,7 +3413,7 @@ dprint(2, (debugfile, "-- bogus url \"%s\": %s\n", url ? url : "<NULL URL>", reason)); if(url) @@ -283,7 +298,7 @@ (void *) (strchr(url, ':') - url), url, reason); return(0); -@@ -3356,7 +3356,7 @@ +@@ -3554,7 +3554,7 @@ write_error: if(style == QStatus) @@ -292,16 +307,16 @@ error_description(errno)); return(1); -@@ -3606,7 +3606,7 @@ - gf_set_so_writec(&tmp_pc, df_store); +@@ -3805,7 +3805,7 @@ + gf_set_so_readc(&tmp_gc, df_store); if(errstr = dfilter(display_filter, tmp_store, tmp_pc, NULL)){ q_status_message1(SM_ORDER | SM_DING, 3, 3, - "Formatting error: %s", errstr); + "格式錯誤:%s", errstr); rv = FHT_WRTERR; } - else{ -@@ -3618,7 +3618,7 @@ + else +@@ -3815,7 +3815,7 @@ } else{ q_status_message1(SM_ORDER | SM_DING, 3, 3, @@ -310,7 +325,7 @@ rv = FHT_WRTERR; } } -@@ -3643,7 +3643,7 @@ +@@ -3841,7 +3841,7 @@ if(errstr = gf_pipe(tmp_gc, final_pc)){ rv = FHT_WRTERR; q_status_message1(SM_ORDER | SM_DING, 3, 3, @@ -319,7 +334,7 @@ } } -@@ -3782,7 +3782,7 @@ +@@ -3984,7 +3984,7 @@ format_newsgroup_string("Newsgroups: ", e->newsgroups, prefix, pc); if(e->ngbogus) q_status_message(SM_ORDER, 0, 3, @@ -328,7 +343,7 @@ } if((which & FE_FOLLOWUPTO) && e->followup_to) -@@ -4406,7 +4406,7 @@ +@@ -4624,7 +4624,7 @@ } if(!sparms->bar.title) @@ -337,7 +352,7 @@ if(sparms->bar.style == TitleBarNone) sparms->bar.style = MsgTextPercent; -@@ -4555,7 +4555,7 @@ +@@ -4773,7 +4773,7 @@ } if(first_view && num_display_lines >= get_scroll_text_lines()) @@ -346,7 +361,7 @@ force = 0; /* may not need to next time around */ -@@ -4671,7 +4671,7 @@ +@@ -4898,7 +4898,7 @@ whereis_pos.row = 0; if(sparms->help.text == NO_HELP || ps_global->nr_mode){ q_status_message(SM_ORDER, 0, 5, @@ -355,7 +370,7 @@ break; } -@@ -4710,12 +4710,12 @@ +@@ -4937,12 +4937,12 @@ cur_top_line -= scroll_lines; if(cur_top_line <= 0){ cur_top_line = 0; @@ -370,7 +385,7 @@ STYLE_NAME(sparms)); break; -@@ -4729,12 +4729,12 @@ +@@ -4956,12 +4956,12 @@ cur_top_line += scroll_lines; if(cur_top_line + num_display_lines >= get_scroll_text_lines()) @@ -385,7 +400,7 @@ STYLE_NAME(sparms)); break; -@@ -4751,11 +4751,11 @@ +@@ -4978,11 +4978,11 @@ cur_top_line++; if(cur_top_line + num_display_lines >= get_scroll_text_lines()) @@ -399,7 +414,7 @@ STYLE_NAME(sparms)); } -@@ -4772,11 +4772,11 @@ +@@ -4999,11 +4999,11 @@ if(cur_top_line){ cur_top_line--; if(cur_top_line == 0) @@ -413,7 +428,7 @@ STYLE_NAME(sparms)); } -@@ -4807,7 +4807,7 @@ +@@ -5034,7 +5034,7 @@ } q_status_message(SM_ORDER, 0, 1, @@ -422,7 +437,7 @@ } break; -@@ -4837,7 +4837,7 @@ +@@ -5064,7 +5064,7 @@ } q_status_message(SM_ORDER, 0, 1, @@ -431,7 +446,7 @@ } break; -@@ -4856,7 +4856,7 @@ +@@ -5083,7 +5083,7 @@ break; case -1 : @@ -440,7 +455,7 @@ break; default : -@@ -4943,14 +4943,14 @@ +@@ -5170,14 +5170,14 @@ q_status_message(SM_ORDER, 0, 3, tmp_20k_buf); else q_status_message2(SM_ORDER, 0, 3, @@ -459,7 +474,7 @@ break; -@@ -5006,7 +5006,7 @@ +@@ -5257,7 +5257,7 @@ break; case -1 : @@ -468,7 +483,7 @@ break; default : -@@ -5251,13 +5251,13 @@ +@@ -5522,13 +5522,13 @@ int rc, flags; static char search_string[MAX_SEARCH+1] = { '\0' }; static ESCKEY_S word_search_key[] = { { 0, 0, "", "" }, @@ -485,7 +500,7 @@ help = NO_HELP; nsearch_string[0] = '\0'; -@@ -5272,13 +5272,13 @@ +@@ -5543,13 +5543,13 @@ continue; } else if(rc == 10){ @@ -501,7 +516,7 @@ cursor_pos->row = max(get_scroll_text_lines() - 1, 0); cursor_pos->col = 0; return(cursor_pos->row); -@@ -6069,10 +6069,10 @@ +@@ -6411,10 +6411,10 @@ if(*msg_p[0]) for(i = 0; i < msg_q; i++) q_status_message2(SM_ORDER, 3, 4, @@ -514,7 +529,7 @@ } else{ SCROLL_S sargs; -@@ -6083,7 +6083,7 @@ +@@ -6425,7 +6425,7 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = f; sargs.text.src = FileStar; diff --git a/chinese/pine4/files/patch-be b/chinese/pine4/files/patch-be index 07f83897f2a3..0beea920d4ab 100644 --- a/chinese/pine4/files/patch-be +++ b/chinese/pine4/files/patch-be @@ -1,6 +1,6 @@ ---- pine/newmail.c.orig Fri Mar 27 07:28:33 1998 -+++ pine/newmail.c Tue Aug 4 12:42:19 1998 -@@ -289,38 +289,28 @@ +--- pine/newmail.c.orig Sat Aug 22 10:33:02 1998 ++++ pine/newmail.c Tue Sep 22 19:22:59 1998 +@@ -301,38 +301,28 @@ ENVELOPE *e; char subject[200], from[2*MAX_SCREEN_COLS], intro[MAX_SCREEN_COLS+1]; @@ -47,7 +47,7 @@ if(e->from->personal) istrncpy(from + ((number > 1L) ? 18 : 6), (char *) rfc1522_decode((unsigned char *) tmp_20k_buf, -@@ -337,13 +327,13 @@ +@@ -349,13 +339,13 @@ if(number <= 1L) { if(e && e->subject){ diff --git a/chinese/pine4/files/patch-bk b/chinese/pine4/files/patch-bk index d967e6e9d9af..7d218d7a14e9 100644 --- a/chinese/pine4/files/patch-bk +++ b/chinese/pine4/files/patch-bk @@ -1,8 +1,8 @@ ---- pine/send.c.orig Wed Aug 19 10:37:27 1998 -+++ pine/send.c Wed Aug 19 10:45:31 1998 -@@ -209,18 +209,18 @@ - - +--- pine/send.c.orig Wed Sep 16 03:12:31 1998 ++++ pine/send.c Tue Sep 22 11:56:19 1998 +@@ -211,18 +211,18 @@ + * Various useful strings + */ #define INTRPT_PMT \ - "Continue INTERRUPTED composition (answering \"n\" won't erase it)" + "繼續編輯上次中斷的文章嗎(回答 \"否\" 將不會刪除它)" @@ -12,7 +12,7 @@ #define FORM_PMT \ - "Start composition from Form Letter Folder" + "開始自來源信件匣中編輯" - #define PSTPN_FORM_PMT \ + #define PSTPN_FORM_PMT \ - "Save to Postponed or Form letter folder? " + "要存至「暫緩」或「來源」信件匣?" #define POST_PMT \ @@ -23,9 +23,9 @@ -#define INTR_DEL_PMT "Deleted messages will be removed from folder. Delete" +#define INTR_DEL_PMT "刪除的信件將被移出檔案匣。確定刪除嗎" - /* - * Since c-client preallocates, it's necessary here to define a limit -@@ -375,14 +375,14 @@ + #if defined(DOS) || defined(OS2) + #define POST_PERM_GRIPE \ +@@ -382,14 +382,14 @@ mail_close(stream); if(ret == 'x'){ q_status_message(SM_ORDER, 0, 3, @@ -42,7 +42,7 @@ file_path); if(stream) mail_close(stream); -@@ -451,14 +451,14 @@ +@@ -469,14 +469,14 @@ if(ret == 'x'){ q_status_message(SM_ORDER, 0, 3, @@ -59,7 +59,7 @@ if(stream) mail_close(stream); } -@@ -533,7 +533,7 @@ +@@ -562,7 +562,7 @@ if(ret == 'x'){ q_status_message(SM_ORDER, 0, 3, @@ -68,7 +68,7 @@ done++; } } -@@ -543,7 +543,7 @@ +@@ -572,7 +572,7 @@ } else{ q_status_message1(SM_ORDER | SM_DING, 3, 3, @@ -77,7 +77,7 @@ if(stream) mail_close(stream); } -@@ -617,7 +617,7 @@ +@@ -646,7 +646,7 @@ fs_give((void **)&tmp_fcc); } @@ -86,7 +86,7 @@ reply, redraft_pos, lcc, custom, fcc_is_sticky); if(reply){ -@@ -684,7 +684,7 @@ +@@ -713,7 +713,7 @@ */ if(!stream->nmsgs){ q_status_message(SM_ORDER | SM_DING, 3, 5, @@ -95,7 +95,7 @@ return(redraft_cleanup(stream, TRUE)); } else if(stream == ps_global->mail_stream){ -@@ -720,7 +720,7 @@ +@@ -749,7 +749,7 @@ mn_give(&msgmap); if(rv){ @@ -104,7 +104,7 @@ (void) redraft_cleanup(stream, FALSE); return(0); /* special case */ } -@@ -958,7 +958,7 @@ +@@ -992,7 +992,7 @@ if(b->type == TYPEMULTIPART){ if(strucmp(b->subtype, "mixed")){ q_status_message1(SM_INFO, 3, 4, @@ -113,7 +113,7 @@ b->subtype); fs_give((void **)&b->subtype); b->subtype = cpystr("mixed"); -@@ -966,7 +966,7 @@ +@@ -1000,7 +1000,7 @@ } else{ q_status_message2(SM_ORDER | SM_DING, 3, 4, @@ -122,7 +122,7 @@ body_types[b->type], b->subtype); return(redraft_cleanup(stream, TRUE)); } -@@ -980,7 +980,7 @@ +@@ -1014,7 +1014,7 @@ set_mime_type_by_grope(&part->body, NULL); if(part->body.type != TYPETEXT){ q_status_message2(SM_ORDER | SM_DING, 3, 4, @@ -131,7 +131,7 @@ body_types[part->body.type], part->body.subtype); return(redraft_cleanup(stream, TRUE)); -@@ -1041,7 +1041,7 @@ +@@ -1075,7 +1075,7 @@ if(stream == ps_global->mail_stream){ q_status_message1(SM_ORDER, 3, 7, @@ -140,7 +140,7 @@ ps_global->inbox_name); do_broach_folder(ps_global->inbox_name, ps_global->context_list); -@@ -1062,7 +1062,7 @@ +@@ -1096,7 +1096,7 @@ if(!(rv = mail_delete(stream, mbox))) q_status_message1(SM_ORDER|SM_DING, 3, 3, @@ -149,7 +149,7 @@ fs_give((void **) &mbox); success = rv > 0L; -@@ -1085,7 +1085,7 @@ +@@ -1119,7 +1119,7 @@ { if(background_posting(FALSE)){ q_status_message1(SM_ORDER, 0, 3, @@ -158,7 +158,7 @@ type); return(failure); } -@@ -1308,7 +1308,7 @@ +@@ -1342,7 +1342,7 @@ if(rc == 1 || (rc == 0 && !answer)) { q_status_message(SM_ORDER, 3, 4, @@ -167,7 +167,7 @@ return(0); } -@@ -1397,7 +1397,7 @@ +@@ -1431,7 +1431,7 @@ if(rc == 1 || (rc == 0 && !answer)) { q_status_message(SM_ORDER, 3, 4, @@ -176,7 +176,7 @@ return(0); } -@@ -1453,7 +1453,7 @@ +@@ -1487,7 +1487,7 @@ if(rc == 1 || (rc == 0 && answer[0] == '\0')) { q_status_message(SM_ORDER, 3, 4, @@ -185,7 +185,7 @@ return(0); } -@@ -1480,31 +1480,31 @@ +@@ -1514,31 +1514,31 @@ */ static struct headerentry he_template[]={ {"From : ", "From", h_composer_from, 10, 0, NULL, @@ -226,7 +226,7 @@ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, KS_NONE}, {"Subject : ", "Subject", h_composer_subject, 10, 0, NULL, valid_subject, NULL, NULL, NULL, NULL, -@@ -1539,7 +1539,7 @@ +@@ -1573,7 +1573,7 @@ static struct headerentry he_custom_addr_templ={ NULL, NULL, h_composer_custom_addr,10, 0, NULL, @@ -235,7 +235,7 @@ 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK}; static struct headerentry he_custom_free_templ={ NULL, NULL, h_composer_custom_free,10, 0, NULL, -@@ -1822,7 +1822,7 @@ +@@ -1856,7 +1856,7 @@ default: q_status_message1(SM_ORDER,3,3, @@ -244,7 +244,7 @@ break; } } -@@ -1832,7 +1832,7 @@ +@@ -1866,7 +1866,7 @@ ekey[0].ch = ctrl('T'); ekey[0].rval = 2; ekey[0].name = "^T"; @@ -253,7 +253,7 @@ ekey[1].ch = -1; /*---------------------------------------------------------------------- -@@ -1943,12 +1943,12 @@ +@@ -1977,12 +1977,12 @@ opts[i].ch = 'y'; opts[i].rval = 'y'; opts[i].name = "Y"; @@ -268,7 +268,7 @@ verbose_requested = 0; if(F_ON(F_VERBOSE_POST, ps_global)){ -@@ -1995,7 +1995,7 @@ +@@ -2029,7 +2029,7 @@ dsn_show = (dsn_requested & DSN_SHOW); sprintf(tmp_20k_buf, "%s%s%s%s%s%sto \"%s\" ? ", @@ -277,7 +277,7 @@ (verbose_requested || dsn_show) ? "(" : "", (verbose_requested) -@@ -2132,7 +2132,7 @@ +@@ -2166,7 +2166,7 @@ if(!(outgoing->to || outgoing->cc || outgoing->bcc || local_so)){ q_status_message(SM_ORDER, 3, 5, @@ -286,7 +286,7 @@ continue; } -@@ -2157,7 +2157,7 @@ +@@ -2191,7 +2191,7 @@ } else if(result == 0){ q_status_message(SM_ORDER,3,5, @@ -295,7 +295,7 @@ retval = -1; dprint(1, (debugfile, "explicit fcc write failed!\n")); -@@ -2175,7 +2175,7 @@ +@@ -2209,7 +2209,7 @@ } } else{ @@ -304,7 +304,7 @@ retval = -1; } } -@@ -2203,7 +2203,7 @@ +@@ -2237,7 +2237,7 @@ break; case 1: @@ -313,16 +313,16 @@ done++; retval = -1; break; -@@ -2447,7 +2447,7 @@ +@@ -2488,7 +2488,7 @@ break; case 'x': /* ^C */ - q_status_message(SM_ORDER, 0, 3, "Message cancelled"); + q_status_message(SM_ORDER, 0, 3, "取消信件"); dprint(4, (debugfile, "=== send: cancelled\n")); + pbuf = save_previous_pbuf; return; - -@@ -2837,7 +2837,7 @@ +@@ -2879,7 +2879,7 @@ default: q_status_message1(SM_ORDER,3,7, @@ -331,7 +331,7 @@ (void *)pf->type); break; } -@@ -2864,7 +2864,7 @@ +@@ -2906,7 +2906,7 @@ #endif if(pf->canedit || !he->rich_header) q_status_message(SM_ORDER, 3, 3, @@ -340,7 +340,7 @@ memset(he, 0, (size_t)sizeof(*he)); pf->he = NULL; -@@ -3207,7 +3207,7 @@ +@@ -3254,7 +3254,7 @@ ? "CANCEL" : "HUH?")); if((editor_result & COMP_CANCEL) && F_ON(F_QUELL_DEAD_LETTER, ps_global)){ @@ -349,7 +349,7 @@ break; } -@@ -3231,7 +3231,7 @@ +@@ -3278,7 +3278,7 @@ && (check_addresses(&header) == CA_BAD)){ /*--- Addresses didn't check out---*/ q_status_message(SM_ORDER, 7, 7, @@ -358,16 +358,16 @@ continue; } -@@ -3288,7 +3288,7 @@ +@@ -3336,7 +3336,7 @@ if(!so_puts(local_so, tmp_20k_buf)){ - if(editor_result & COMP_CANCEL) - q_status_message2(SM_ORDER | SM_DING, 3, 3, -- "Can't write \"%s\": %s", -+ "無法寫入 \"%s\":%s", - folder, error_description(errno)); - else - dprint(1, (debugfile, "* * * CAN'T WRITE %s: %s\n", -@@ -3300,7 +3300,7 @@ + if(editor_result & COMP_CANCEL) + q_status_message2(SM_ORDER | SM_DING, 3, 3, +- "Can't write \"%s\": %s", ++ "無法寫入 \"%s\": %s", + folder, error_description(errno)); + else + dprint(1, (debugfile, "* * * CAN'T WRITE %s: %s\n", +@@ -3349,7 +3349,7 @@ if(!ps_global->VAR_POSTPONED_FOLDER || !ps_global->VAR_POSTPONED_FOLDER[0]){ q_status_message(SM_ORDER | SM_DING, 3, 3, @@ -376,7 +376,7 @@ continue; } -@@ -3330,7 +3330,7 @@ +@@ -3379,7 +3379,7 @@ } else{ strcpy(folder, ps_global->VAR_POSTPONED_FOLDER); @@ -385,7 +385,7 @@ } local_so = open_fcc(folder,&fcc_cntxt, 1, NULL, NULL); -@@ -3472,10 +3472,10 @@ +@@ -3521,10 +3521,10 @@ && ps_global->VAR_FORM_FOLDER[0] && !strcmp(folder, ps_global->VAR_FORM_FOLDER)) q_status_message(SM_ORDER, 0, 3, @@ -398,7 +398,7 @@ break; /* postpone went OK, get out of here */ } -@@ -3485,15 +3485,15 @@ +@@ -3534,15 +3534,15 @@ if(fcc_result && folder) lc = last_cmpnt(folder); @@ -417,7 +417,7 @@ body_start = 1; continue; /* postpone failed, jump back in to composer */ } -@@ -3509,14 +3509,14 @@ +@@ -3558,14 +3558,14 @@ /* --- If posting, confirm with user ----*/ if(outgoing->newsgroups && *outgoing->newsgroups && want_to(POST_PMT, 'n', 'n', NO_HELP, WT_NORM) == 'n'){ @@ -434,7 +434,7 @@ dprint(4, (debugfile, "no recip, continuing\n")); continue; } -@@ -3558,8 +3558,8 @@ +@@ -3607,8 +3607,8 @@ && !filter_message_text(sending_filter_requested, outgoing, *body, &orig_so)){ q_status_message1(SM_ORDER, 3, 3, @@ -445,7 +445,7 @@ continue; } -@@ -3650,7 +3650,7 @@ +@@ -3699,7 +3699,7 @@ } else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){ q_status_message(SM_ORDER, 3, 5, @@ -454,7 +454,7 @@ dprint(1, (debugfile, "explicit fcc write failed!\n")); result |= P_FCC_LOSE; -@@ -3717,7 +3717,7 @@ +@@ -3766,7 +3766,7 @@ } else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){ q_status_message(SM_ORDER,3,5, @@ -463,7 +463,7 @@ dprint(1, (debugfile, "explicit fcc write failed!\n")); result |= P_FCC_LOSE; } -@@ -3801,8 +3801,8 @@ +@@ -3852,8 +3852,8 @@ postpone_prompt() { int ret = 1; @@ -474,7 +474,7 @@ {-1, 0, NULL, NULL} }; return(radio_buttons(PSTPN_FORM_PMT, -FOOTER_ROWS(ps_global), -@@ -3949,23 +3949,23 @@ +@@ -4005,23 +4005,23 @@ char *buf; int *goodorbad; { @@ -506,7 +506,7 @@ (result & P_FCC_WIN) ? "\"" : "", (result & P_FCC_WIN) ? fcc_name : "", (result & P_FCC_WIN) ? "\"" : ""); -@@ -4004,7 +4004,7 @@ +@@ -4060,7 +4060,7 @@ || (F_ON(F_COMPOSE_REJECTS_UNQUAL, ps_global) && a->host[0] == '@'))){ q_status_message2(SM_ORDER, 4, 7, @@ -515,7 +515,7 @@ a->mailbox, (a->host[0] == '.') ? a->host -@@ -4014,7 +4014,7 @@ +@@ -4070,7 +4070,7 @@ else if(ps_global->restricted && !address_is_us(*pf->addr, ps_global)){ q_status_message(SM_ORDER, 3, 3, @@ -524,7 +524,7 @@ return(CA_BAD); } else if(a->mailbox && strucmp(a->mailbox, "mailer-daemon") == 0 -@@ -4164,7 +4164,7 @@ +@@ -4220,7 +4220,7 @@ if(!(n > 0L && n <= mn_get_total(ps_global->msgmap) && (e = mail_fetchstructure(ps_global->mail_stream, mn_m2raw(ps_global->msgmap, n), &b)))){ @@ -533,7 +533,7 @@ flush_status_messages(0); return(0L); } -@@ -4179,7 +4179,7 @@ +@@ -4235,7 +4235,7 @@ /* actually write message text */ if(!format_message(mn_m2raw(ps_global->msgmap, n), e, b, FM_NEW_MESS | FM_DISPLAY, f)){ @@ -542,7 +542,7 @@ flush_status_messages(0); rv = 0L; } -@@ -4292,12 +4292,12 @@ +@@ -4348,12 +4348,12 @@ opts[i].ch = 'y'; opts[i].rval = 'y'; opts[i].name = "Y"; @@ -557,7 +557,7 @@ if(filters){ /* set global_filter_pointer to desired filter or NULL if none */ -@@ -4305,12 +4305,12 @@ +@@ -4361,12 +4361,12 @@ opts[i].ch = ctrl('P'); opts[i].rval = 10; opts[i].name = "^P"; @@ -572,7 +572,7 @@ if(F_ON(F_FIRST_SEND_FILTER_DFLT, ps_global)) filters = filters->next; -@@ -4380,23 +4380,23 @@ +@@ -4436,23 +4436,23 @@ p = NULL; dsn_show = (dsn_requested & DSN_SHOW); @@ -601,7 +601,7 @@ (verbose_requested || background_requested) ? "mode" : "", (dsn_show -@@ -4411,11 +4411,11 @@ +@@ -4467,11 +4467,11 @@ *p = ' '; if(verbose_label) @@ -615,7 +615,7 @@ if(F_ON(F_DSN, ps_global)){ if(dsn_requested & DSN_SHOW){ -@@ -4439,11 +4439,11 @@ +@@ -4495,11 +4495,11 @@ break; } else if(rv == 'n'){ /* Declined! */ @@ -629,7 +629,7 @@ break; } else if(rv == 10) /* PREVIOUS filter */ -@@ -4625,7 +4625,7 @@ +@@ -4681,7 +4681,7 @@ if(body->type != TYPEOTHER){ rv = 1; q_status_message3(SM_ORDER, 0, 3, @@ -638,7 +638,7 @@ body_types[body->type], body->subtype ? body->subtype : rfc822_default_subtype(body->type)); } -@@ -4674,7 +4674,7 @@ +@@ -4730,7 +4730,7 @@ (void) close_system_pipe(&syspipe); if((l = name_file_size(fname)) < 0L){ q_status_message2(SM_ORDER | SM_DING, 3, 4, @@ -647,7 +647,7 @@ fnp = error_description(errno)); dprint(1, (debugfile, "!!! Upload cmd \"%s\" failed for \"%s\": %s\n", -@@ -4686,7 +4686,7 @@ +@@ -4742,7 +4742,7 @@ return(l >= 0); } else @@ -656,7 +656,7 @@ return(0); } -@@ -4739,7 +4739,7 @@ +@@ -4795,7 +4795,7 @@ else if(reply->flags == REPLY_MSGNO) return; @@ -665,7 +665,7 @@ if(!stream){ if(stream = mail_open(NULL, reply->mailbox, OP_SILENT)){ ourstream++; -@@ -4817,7 +4817,7 @@ +@@ -4873,7 +4873,7 @@ so_give(&tmpf_so); } else @@ -674,7 +674,7 @@ } if(!errstr){ -@@ -4841,13 +4841,13 @@ +@@ -4897,13 +4897,13 @@ so_give(&tmpf_so); } else @@ -691,7 +691,7 @@ } else errstr = gf_filter(cmd, key ? filter_session_key() : NULL, -@@ -4858,7 +4858,7 @@ +@@ -4914,7 +4914,7 @@ if(errstr){ int ch; @@ -700,7 +700,7 @@ fflush(stdout); while((ch = read_char(300)) != ctrl('M') && ch != NO_OP_IDLE) -@@ -4951,7 +4951,7 @@ +@@ -5007,7 +5007,7 @@ if(tmp_so) so_give(&tmp_so); @@ -709,7 +709,7 @@ errstr); dprint(1, (debugfile, "Filter FAILED: %s\n", errstr)); } -@@ -5036,11 +5036,11 @@ +@@ -5092,11 +5092,11 @@ loser = pine_simple_send(outgoing, &body, NULL, NULL, NULL, 0); @@ -723,7 +723,7 @@ mail_free_envelope(&outgoing); pine_free_body(&body); -@@ -5124,7 +5124,7 @@ +@@ -5180,7 +5180,7 @@ if(!pf){ q_status_message(SM_ORDER,3,3, @@ -732,7 +732,7 @@ return(0); } -@@ -5133,7 +5133,7 @@ +@@ -5189,7 +5189,7 @@ gf_filter_init(); /* zero piped byte count, 'n */ send_bytes_to_send = send_body_size(body); /* count body bytes */ ps_global->c_client_error[0] = error_buf[0] = '\0'; @@ -741,7 +741,7 @@ send_bytes_to_send ? sent_percent : NULL, 1); /* try posting via local "<mta> <-t>" if specified */ -@@ -5318,7 +5318,7 @@ +@@ -5374,7 +5374,7 @@ struct headerentry *last_he = NULL; sprintf(error_buf, @@ -750,7 +750,7 @@ (sending_stream && sending_stream->reply) ? ": ": ".", (sending_stream && sending_stream->reply) ? sending_stream->reply : ""); -@@ -5391,7 +5391,7 @@ +@@ -5447,7 +5447,7 @@ TIME_STAMP("smtp done", 1); } else if(!error_mess) @@ -759,7 +759,7 @@ ps_global->c_client_error); if(verbose_file){ -@@ -5399,7 +5399,7 @@ +@@ -5455,7 +5455,7 @@ TIME_STAMP("verbose start", 1); fclose(verbose_send_output); verbose_send_output = NULL; @@ -768,7 +768,7 @@ display_output_file(verbose_file, "Verbose SMTP Interaction",NULL, 1); TIME_STAMP("verbose end", 1); } -@@ -5488,12 +5488,12 @@ +@@ -5544,12 +5544,12 @@ if(folder_index(fcc, *fcc_cntxt, FI_FOLDER) < 0){ if(ps_global->context_list->next) sprintf(tmp_20k_buf, @@ -783,7 +783,7 @@ strsquish(tmp_20k_buf + 500, fcc, 40)); if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){ -@@ -5530,7 +5530,7 @@ +@@ -5586,7 +5586,7 @@ ok++; } else{ @@ -792,7 +792,7 @@ strsquish(tmp_20k_buf + 500, fcc, 40)); if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){ /* -@@ -5564,8 +5564,8 @@ +@@ -5620,8 +5620,8 @@ if(ok == 0){ if(ps_global->mm_log_error){ @@ -803,7 +803,7 @@ l1 = strlen(s1); l2 = strlen(s2); -@@ -5583,10 +5583,10 @@ +@@ -5639,10 +5639,10 @@ } else @@ -816,7 +816,7 @@ q_status_message(SM_ORDER | SM_DING, 3, 3, errstr); } -@@ -5634,7 +5634,7 @@ +@@ -5690,7 +5690,7 @@ if(label && *label){ char msg_buf[80]; @@ -825,7 +825,7 @@ we_cancel = busy_alarm(1, msg_buf, NULL, 1); } else -@@ -5670,7 +5670,7 @@ +@@ -5726,7 +5726,7 @@ we_cancel = 0; q_status_message1(SM_ORDER | SM_DING, 3, 5, @@ -834,7 +834,7 @@ dprint(1, (debugfile, "ERROR appending %s in \"%s\"", fcc, cntxt ? cntxt->context : "NULL")); return(0); -@@ -6146,7 +6146,7 @@ +@@ -6209,7 +6209,7 @@ if((file_contents = (void *)so_get(FileStar, pa->filename, READ_ACCESS)) == NULL){ q_status_message2(SM_ORDER | SM_DING, 3, 4, @@ -843,7 +843,7 @@ error_description(errno), pa->filename); display_message('x'); continue; -@@ -6673,13 +6673,17 @@ +@@ -6736,13 +6736,17 @@ body->subtype = cpystr("octet-stream"); } @@ -868,7 +868,7 @@ } } -@@ -6848,6 +6852,9 @@ +@@ -6912,6 +6916,9 @@ value = rfc1522_encode(tmp_20k_buf, (unsigned char *) text, ps_global->VAR_CHAR_SET); @@ -878,7 +878,7 @@ if(value && value == text){ /* no encoding was done, have to fold */ int fold_by, len; char *actual_field; -@@ -7180,7 +7187,7 @@ +@@ -7254,7 +7261,7 @@ break; default: @@ -887,7 +887,7 @@ break; } } -@@ -7499,7 +7506,8 @@ +@@ -7573,7 +7580,8 @@ switch (body->encoding) { /* all else needs filtering */ case ENC8BIT: /* encode 8BIT into QUOTED-PRINTABLE */ @@ -897,7 +897,7 @@ break; case ENCBINARY: /* encode binary into BASE64 */ -@@ -7513,7 +7521,7 @@ +@@ -7587,7 +7595,7 @@ if(encode_error = gf_pipe(gc, l_putc)){ /* shove body part down pipe */ q_status_message1(SM_ORDER | SM_DING, 3, 4, @@ -906,7 +906,7 @@ display_message('x'); } -@@ -7582,7 +7590,7 @@ +@@ -7656,7 +7664,7 @@ && !(so_puts(so, "Content-Transfer-Encoding: ") && so_puts(so, body_encodings[(body->encoding==ENCBINARY) ? ENCBASE64 @@ -915,7 +915,7 @@ ? ENCQUOTEDPRINTABLE : (body->encoding <= ENCMAX) ? body->encoding -@@ -8205,7 +8213,7 @@ +@@ -8279,7 +8287,7 @@ || (forbid = pine_header_forbidden(name))){ if(forbid) q_status_message1(SM_ORDER, 3, 3, @@ -924,7 +924,7 @@ *t = save; continue; -@@ -8322,7 +8330,7 @@ +@@ -8396,7 +8404,7 @@ if(ps_global->post){ if(gripe) q_status_message(SM_ORDER|SM_DING, 3, 3, diff --git a/chinese/pine4/files/patch-bo b/chinese/pine4/files/patch-bo index e0eef8d39021..d7ea62040456 100644 --- a/chinese/pine4/files/patch-bo +++ b/chinese/pine4/files/patch-bo @@ -1,6 +1,17 @@ ---- build.orig Tue Jun 16 01:35:10 1998 -+++ build Wed Aug 19 10:45:16 1998 -@@ -256,11 +256,11 @@ +--- build.orig Fri Sep 4 08:01:15 1998 ++++ build Tue Sep 22 13:21:37 1998 +@@ -80,8 +80,8 @@ + pine The Pine mailer. Once compiled this should work just fine on + your system with no other files than this binary, and no + modifications to your system. Optionally you may create two +- configuration files, /usr/local/lib/pine.conf and +- /usr/local/lib/pine.info. See the documentation for details. ++ configuration files, /usr/local/etc/pine.conf and ++ /usr/local/etc/pine.info. See the documentation for details. + + pico The standalone editor similar to the Pine message composer. + This is a very simple straight forward text editor. +@@ -274,11 +274,11 @@ if [ -s c-client ] ; then rm -f c-client ; fi ln -s imap/c-client c-client @@ -17,7 +28,7 @@ eval echo make "$makeargs" "$K1" "$K2" $ccltarg cd $PHOME/imap eval make "$makeargs" "$K1" "$K2" $ccltarg -@@ -281,14 +281,16 @@ +@@ -299,14 +299,14 @@ cd $PHOME/bin rm -f pine mtest imapd pico pilot if [ -s ../pine/pine ] ; then ln ../pine/pine pine ; fi @@ -27,17 +38,15 @@ +# if [ -s ../imapd/imapd ] ; then ln ../imapd/imapd imapd ; fi if [ -s ../pico/pico ] ; then ln ../pico/pico pico ; fi if [ -s ../pico/pilot ] ; then ln ../pico/pilot pilot ; fi -+ if [ -s ../pico/libpico.so.2.0 ] ; -+ then ln ../pico/libpico.so.2.0 libpico.so.2.0 ; fi cd $PHOME echo '' echo "Links to executables are in bin directory:" - size bin/pine bin/mtest bin/imapd bin/pico bin/pilot -+ size bin/pine bin/pico bin/pilot bin/libpico.so.2.0 ++ size bin/pine bin/pico bin/pilot echo "Done" ;; -@@ -299,10 +301,10 @@ +@@ -317,10 +317,10 @@ make clean echo "Cleaning Pine" cd $PHOME/pine diff --git a/chinese/pine4/files/patch-bp b/chinese/pine4/files/patch-bp index ddcafda265d2..0d07559d4209 100644 --- a/chinese/pine4/files/patch-bp +++ b/chinese/pine4/files/patch-bp @@ -5,13 +5,13 @@ /etc/mime.types System-wide file ext. to MIME type mapping .br -/usr/local/lib/pine.info Local pointer to system administrator. -+/usr/local/etc/pine.info Local pointer to system administrator. ++@@PREFIX@@/etc/pine.info Local pointer to system administrator. .br -/usr/local/lib/pine.conf System-wide configuration file. -+/usr/local/etc/pine.conf System-wide configuration file. ++@@PREFIX@@/etc/pine.conf System-wide configuration file. .br -/usr/local/lib/pine.conf.fixed Non-overridable configuration file. -+/usr/local/etc/pine.conf.fixed Non-overridable configuration file. ++@@PREFIX@@/etc/pine.conf.fixed Non-overridable configuration file. .br /tmp/.\\usr\\spool\\mail\\xxxx Per-folder mailbox lock files. .br diff --git a/chinese/pine4/files/patch-br b/chinese/pine4/files/patch-br index 3ea141eae580..5a68b420380a 100644 --- a/chinese/pine4/files/patch-br +++ b/chinese/pine4/files/patch-br @@ -1,48 +1,57 @@ ---- pine/pine.hlp.orig Wed Jul 22 06:04:04 1998 -+++ pine/pine.hlp Wed Aug 19 10:45:28 1998 -@@ -750,9 +750,9 @@ +--- pine/pine.hlp.orig Tue Sep 22 20:33:23 1998 ++++ pine/pine.hlp Tue Sep 22 20:34:09 1998 +@@ -835,9 +835,9 @@ executable <Unix search path>/pine persnl cfg ~/.pinerc - global cfg /usr/local/lib/pine.conf - fixed cfg /usr/local/lib/pine.conf.fixed - local help /usr/local/lib/pine.info -+ global cfg /usr/local/etc/pine.conf -+ fixed cfg /usr/local/etc/pine.conf.fixed -+ local help /usr/local/etc/pine.info ++ global cfg @@PREFIX@@/etc/pine.conf ++ fixed cfg @@PREFIX@@/etc/pine.conf.fixed ++ local help @@PREFIX@@/etc/pine.info interrupted ~/.pine-interrupted-mail debug ~/.pine-debugN -@@ -1137,9 +1137,9 @@ +@@ -850,7 +850,7 @@ + sentmail# ~/mail/sent-mail + mailcap# ~/.mailcap + /etc/mailcap + + /usr/etc/mailcap + /usr/local/etc/mailcap +- mimetypes# ~/.mime.types + /etc/mime.types + /usr/local/lib/mime.types ++ mimetypes# ~/.mime.types + /etc/mime.types + @@PREFIX@@/etc/mime.types + + news-spool varies across Unix flavors, e.g. /usr/spool/news or /var/news + active-news varies across Unix flavors, e.g. /usr/lib/news/active +@@ -1404,9 +1404,9 @@ this link now to send a message to it:<BR> <A HREF="X-Pine-Gripe:_LOCAL_ADDRESS_?local"><!--#echo var="_LOCAL_FULLNAME_"--></A><P> <!--chtml endif--> -<!--chtml if [ -r /usr/local/lib/pine.info ]--> -+<!--chtml if [ -r /usr/local/etc/pine.info ]--> ++<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]--> <HR WIDTH="75%">Local Support Contacts:<P> -<!--#include file="/usr/local/lib/pine.info"--> -+<!--#include file="/usr/local/etc/pine.info"--> ++<!--#include file="@@PREFIX@@/etc/pine.info"--> <HR WIDTH="75%"> <!--chtml endif--> <P> -@@ -1226,7 +1226,7 @@ +@@ -1493,7 +1493,7 @@ <OL> <LI> <A HREF="#intro">Introduction</A> <LI> <A HREF="#pine_help">Pine Help</A> -<!--chtml if [ -r /usr/local/lib/pine.info ]--> -+<!--chtml if [ -r /usr/local/etc/pine.info ]--> ++<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]--> <LI> <A HREF="#local_support">Local Support Contacts</A> <!--chtml endif--> <LI> <A HREF="#giving_cmds">Giving Commands in Pine</A> -@@ -1333,9 +1333,9 @@ +@@ -1600,9 +1600,9 @@ at your site.) -<!--chtml if [ -r /usr/local/lib/pine.info ]--> -+<!--chtml if [ -r /usr/local/etc/pine.info ]--> ++<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]--> <H2><A NAME="local_support">Local Support Contacts</A></H2> -<!--#include file="/usr/local/lib/pine.info"--> -+<!--#include file="/usr/local/etc/pine.info"--> ++<!--#include file="@@PREFIX@@/etc/pine.info"--> <!--chtml endif--> <H2><A NAME="giving_cmds">Giving Commands in Pine</A></H2> diff --git a/chinese/pine4/files/patch-bs b/chinese/pine4/files/patch-bs new file mode 100644 index 000000000000..51763015b004 --- /dev/null +++ b/chinese/pine4/files/patch-bs @@ -0,0 +1,25 @@ +--- pine/mailcap.c.orig Tue Sep 15 05:31:21 1998 ++++ pine/mailcap.c Tue Sep 22 14:27:29 1998 +@@ -61,7 +61,7 @@ + + Mime types makes mime assign attachment types according + to file name extensions found in a system wide file +- ``/usr/local/lib/mime.types'' and a user specific file ++ ``@@PREFIX@@/etc/mime.types'' and a user specific file + ``~/.mime.types'' . These files specify file extensions + that will be connected to a mime type. + ******************************************************* +@@ -96,11 +96,11 @@ + #define MC_PATH_SEPARATOR ':' + #define MC_USER_FILE NULL + #define MC_STDPATH \ +- ".mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap" ++ ".mailcap:/etc/mailcap:/usr/etc/mailcap:@@PREFIX@@/etc/mailcap" + #define MT_PATH_SEPARATOR ':' + #define MT_USER_FILE NULL + #define MT_STDPATH \ +- ".mime.types:/etc/mime.types:/usr/local/lib/mime.types" ++ ".mime.types:/etc/mime.types:@@PREFIX@@/etc/mime.types" + #endif /* !DOS */ + + #ifdef _WINDOWS diff --git a/chinese/pine4/files/patch-bt b/chinese/pine4/files/patch-bt new file mode 100644 index 000000000000..73285bb6ad09 --- /dev/null +++ b/chinese/pine4/files/patch-bt @@ -0,0 +1,27 @@ +--- pine/osdep/expnfldr.orig Tue Sep 22 21:19:44 1998 ++++ pine/osdep/expnfldr Tue Sep 22 21:20:44 1998 +@@ -32,13 +32,13 @@ + } else if(ps_global->restricted + && (strindex("./~", temp_filename[0]) != NULL + || srchstr(temp_filename,"/../"))){ +- q_status_message(SM_ORDER, 0, 3, "Can only open local folders"); ++ q_status_message(SM_ORDER, 0, 3, "僅能開啟本地的檔案匣"); + return(0); + } else if(temp_filename[0] == '*') { + strcpy(filename, temp_filename); + } else if(ps_global->VAR_OPER_DIR && srchstr(temp_filename,"..")){ + q_status_message(SM_ORDER, 0, 3, +- "\"..\" not allowed in folder name"); ++ "檔案匣名稱中不允許\有 \"..\""); + return(0); + } else if (temp_filename[0] == '~'){ + if(fnexpand(temp_filename, sizeof(temp_filename)) == NULL) { +@@ -46,7 +46,7 @@ + if(p != NULL) + *p = '\0'; + q_status_message1(SM_ORDER, 3, 3, +- "Error expanding folder name: \"%s\" unknown user", ++ "檔案匣展開錯誤:\"%s\" 未知的使用者", + temp_filename); + return(0); + } diff --git a/chinese/pine4/files/patch-bu b/chinese/pine4/files/patch-bu new file mode 100644 index 000000000000..37b8893c8556 --- /dev/null +++ b/chinese/pine4/files/patch-bu @@ -0,0 +1,21 @@ +--- pine/osdep/execview.orig Tue Sep 22 21:21:12 1998 ++++ pine/osdep/execview Tue Sep 22 21:22:10 1998 +@@ -45,14 +45,14 @@ + if(syspipe = open_system_pipe(command, r_file_h, NULL, mode)){ + close_system_pipe(&syspipe); + if(needsterminal == 1) +- q_status_message(SM_ORDER, 0, 4, "VIEWER command completed"); ++ q_status_message(SM_ORDER, 0, 4, "VIEWER 命令完成"); + else if(needsterminal == 2) +- display_output_file(result_file, "VIEWER", " command result", 1); ++ display_output_file(result_file, "VIEWER", " 命令結果", 1); + else +- display_output_file(result_file, "VIEWER", " command launched", 1); ++ display_output_file(result_file, "VIEWER", " 命令已啟動", 1); + } + else +- q_status_message1(SM_ORDER, 3, 4, "Cannot spawn command : %s", cmd); ++ q_status_message1(SM_ORDER, 3, 4, "無法起始命令:%s", cmd); + + fs_give((void **)&command); + if(result_file) diff --git a/chinese/pine4/files/patch-bv b/chinese/pine4/files/patch-bv new file mode 100644 index 000000000000..ffa5de3907b8 --- /dev/null +++ b/chinese/pine4/files/patch-bv @@ -0,0 +1,90 @@ +--- pine/osdep/print.orig Tue Sep 22 21:22:23 1998 ++++ pine/osdep/print Tue Sep 22 21:26:09 1998 +@@ -39,12 +39,12 @@ + HelpType help; + char **list; + static ESCKEY_S ekey[] = { +- {'y', 'y', "Y", "Yes"}, +- {'n', 'n', "N", "No"}, +- {ctrl('P'), 10, "^P", "Prev Printer"}, +- {ctrl('N'), 11, "^N", "Next Printer"}, ++ {'y', 'y', "Y", "是"}, ++ {'n', 'n', "N", "否"}, ++ {ctrl('P'), 10, "^P", "前一印表機"}, ++ {ctrl('N'), 11, "^N", "下一印表機"}, + {-2, 0, NULL, NULL}, +- {'c', 'c', "C", "CustomPrint"}, ++ {'c', 'c', "C", "自定印表機"}, + {KEY_UP, 10, "", ""}, + {KEY_DOWN, 11, "", ""}, + {-1, 0, NULL, NULL}}; +@@ -61,7 +61,7 @@ + + if(ps_global->VAR_PRINTER == NULL){ + q_status_message(SM_ORDER | SM_DING, 3, 5, +- "No printer has been chosen. Use SETUP on main menu to make choice."); ++ "尚未選擇印表機。請用主選單中的設定來選擇。"); + return(-1); + } + +@@ -138,7 +138,7 @@ + switch(cmd){ + case 'y': + q_status_message1(SM_ORDER, 0, 9, +- "Printing with command \"%s\"", command); ++ "正以 \"%s\" 命令列印中", command); + done++; + break; + +@@ -175,7 +175,7 @@ + if(trailer) + fs_give((void **)&trailer); + +- sprintf(prompt, "Enter custom command : "); ++ sprintf(prompt, "輸入自定的命令:"); + command[0] = '\0'; + rc = 1; + help = NO_HELP; +@@ -195,13 +195,13 @@ + removing_trailing_white_space(command); + removing_leading_white_space(command); + q_status_message1(SM_ORDER, 0, 9, +- "Printing with command \"%s\"", command); ++ "正以 \"%s\" 命令列印中", command); + } + } + } + + if(cmd == 'x' || cmd == 'n'){ +- q_status_message(SM_ORDER, 0, 2, "Print cancelled"); ++ q_status_message(SM_ORDER, 0, 2, "取消列印"); + if(init) + fs_give((void **)&init); + +@@ -221,7 +221,7 @@ + || strucmp(command, aname) == 0){ + /*----------- Printer attached to ansi device ---------*/ + q_status_message(SM_ORDER, 0, 9, +- "Printing to attached desktop printer..."); ++ "正列印至桌上印表機..."); + display_message('x'); + xonxoff_proc(1); /* make sure XON/XOFF used */ + crlf_proc(1); /* AND LF->CR xlation */ +@@ -252,7 +252,7 @@ + else{ + fs_give((void **)&ps_global->print->result); + q_status_message1(SM_ORDER | SM_DING, 3, 4, +- "Error opening printer: %s", ++ "印表機開啟錯誤:%s", + error_description(errno)); + dprint(2, (debugfile, "Error popening printer \"%s\"\n", + error_description(errno))); +@@ -311,7 +311,7 @@ + + fs_give((void **)&ps_global->print); + +- q_status_message(SM_ASYNC, 0, 3, "Print command completed"); ++ q_status_message(SM_ASYNC, 0, 3, "列印指令完成"); + display_message('x'); + } + diff --git a/chinese/pine4/files/patch-bw b/chinese/pine4/files/patch-bw new file mode 100644 index 000000000000..06556abd1c60 --- /dev/null +++ b/chinese/pine4/files/patch-bw @@ -0,0 +1,61 @@ +--- pine/osdep/termin.gen.orig Wed Aug 19 08:35:10 1998 ++++ pine/osdep/termin.gen Tue Sep 22 21:47:15 1998 +@@ -32,21 +32,19 @@ + * we're in again... + */ + if(ps_global->expunge_count){ +- q_status_message3(SM_ORDER, 3, 3, +- "%s message%s expunged from folder \"%s\"", +- long2string(ps_global->expunge_count), +- plural(ps_global->expunge_count), +- pretty_fn(ps_global->cur_folder)); ++ q_status_message2(SM_ORDER, 3, 3, ++ "自資料匣 \"%s\" 中刪除 %s 封信件", ++ pretty_fn(ps_global->cur_folder), ++ long2string(ps_global->expunge_count)); + ps_global->expunge_count = 0L; + display_message('x'); + } + + if(ps_global->inbox_expunge_count){ +- q_status_message3(SM_ORDER, 3, 3, +- "%s message%s expunged from folder \"%s\"", +- long2string(ps_global->inbox_expunge_count), +- plural(ps_global->inbox_expunge_count), +- pretty_fn(ps_global->inbox_name)); ++ q_status_message2(SM_ORDER, 3, 3, ++ "自資料匣 \"%s\" 中刪除 %s 封信件", ++ pretty_fn(ps_global->inbox_name), ++ long2string(ps_global->inbox_expunge_count)); + ps_global->inbox_expunge_count = 0L; + display_message('x'); + } +@@ -71,7 +69,7 @@ + int winner = 0; + + if(ps_global->post->status < 0){ +- q_status_message(SM_ORDER | SM_DING, 3, 3, "Abysmal failure!"); ++ q_status_message(SM_ORDER | SM_DING, 3, 3, "徹底失敗!"); + } + else{ + (void) pine_send_status(ps_global->post->status, +@@ -84,7 +82,7 @@ + + if(!winner) + q_status_message(SM_ORDER, 0, 3, +- "Re-send via \"Compose\" then \"Yes\" to \"Continue INTERRUPTED?\""); ++ "由 \"編修\" 再回答 \"是\" 來繼續重送 \"上次中斷的信件?\""); + + if(ps_global->post->fcc) + fs_give((void **) &ps_global->post->fcc); +@@ -115,8 +113,8 @@ + + + static struct key oe_keys[] = +- {{"^G","Help",KS_SCREENHELP}, {"^C","Cancel",KS_NONE}, +- {"^T","xxx",KS_NONE}, {"Ret","Accept",KS_NONE}, ++ {{"^G","輔助說明",KS_SCREENHELP}, {"^C","取消",KS_NONE}, ++ {"^T","xxx",KS_NONE}, {"Ret","同意",KS_NONE}, + {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, + {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, + {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, diff --git a/chinese/pine4/files/pgpdecode b/chinese/pine4/files/pgpdecode index 86d5a97daa04..40625939c37c 100644 --- a/chinese/pine4/files/pgpdecode +++ b/chinese/pine4/files/pgpdecode @@ -6,9 +6,46 @@ # The tmp files in the original version were world readable for # the short time of unpacking, setting suitable umask prevents this # +# Wed Sep 16 21:35:43 WST 1997 Anthony Di Pietro <anthony@dino.omen.com.au> +# Modified to work with both PGP v2 and PGP v5. +# Now uses mktemp to prevent symlink attack and tmp races. + umask 077 -trap "rm -f /tmp/pgpdecode.???.$$; exit" 0 1 2 15 -(pgp -f > /tmp/pgpdecode.txt.$$) 2>&1 | tee /tmp/pgpdecode.pgp.$$ 1>&2 -sed -e 's/^/| /' /tmp/pgpdecode.pgp.$$ -echo " " -cat /tmp/pgpdecode.txt.$$ + +MYNAME=`basename $0` + +STDOUT=`mktemp -q /tmp/${MYNAME}.XXXXXX` +if [ $? -ne 0 ] +then + echo "$0: Can't create temporary file to decode message." + exit 1 +fi + +trap "rm -f $STDOUT ; exit" 0 1 2 15 + +STDERR=`mktemp -q /tmp/${MYNAME}.XXXXXX` +if [ $? -ne 0 ] +then + echo "$0: Can't create temporary file to decode message." + exit 1 +fi + +trap "rm -f $STDOUT $STDERR; exit" 0 1 2 15 + +if [ -x /usr/local/bin/pgpv ] +then + pgpv 2>&1 > $STDOUT |tee $STDERR > /dev/tty +else + pgp -f 2>&1 > $STDOUT |tee $STDERR > /dev/tty +fi + +cat $STDERR | \ +grep -v '^No files specified. Using stdin.$' | \ +grep -v '^Opening file \"stdout\" type text.$' | \ +grep -v '^Opening file \"stdout\" type binary.$' | \ +grep -v '^Opening file \"/dev/null\" type text.$' | \ +grep -v '^Opening file \"/dev/null\" type binary.$' | \ +grep -v '^$'| \ +sed -e 's/^/| /' +echo "" +cat $STDOUT diff --git a/chinese/pine4/files/pgpencrypt b/chinese/pine4/files/pgpencrypt index b727b6693153..3baa1d2739eb 100644 --- a/chinese/pine4/files/pgpencrypt +++ b/chinese/pine4/files/pgpencrypt @@ -1,4 +1,11 @@ #!/bin/sh # ---------- pgpencrypt --------- # 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de> -pgp -feast $* +# Wed 16 Sep 1998 23:46:43 WST Anthony Di Pietro <anthony@dino.omen.com.au> +# Modified to work with both PGP v2 and PGP v5. +if [ -x /usr/local/bin/pgpe ] +then + pgpe -s -a -r $* +else + pgp -feast $* +fi diff --git a/chinese/pine4/files/pgpsign b/chinese/pine4/files/pgpsign index e56326cb1bf9..6eff395c89c0 100644 --- a/chinese/pine4/files/pgpsign +++ b/chinese/pine4/files/pgpsign @@ -1,4 +1,11 @@ #!/bin/sh # ---------- pgpsign --------- # 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de> -pgp -fast +# Wed 16 Sep 1998 23:48:51 WST Anthony Di Pietro <anthony@dino.omen.com.au> +# Modified to work with both PGP v2 and PGP v5. +if [ -x /usr/local/bin/pgps ] +then + pgps -a -t +else + pgp -fast +fi diff --git a/chinese/pine4/files/pine.conf b/chinese/pine4/files/pine.conf index 883488f1bb20..7aadc067d99f 100644 --- a/chinese/pine4/files/pine.conf +++ b/chinese/pine4/files/pine.conf @@ -23,7 +23,8 @@ # e.g. feature-list= select-without-confirm, signature-at-bottom # Default condition for all of the features is no-. feature-list=enable-8bit-esmtp-negotiation, - enable-arrow-navigation + enable-arrow-navigation, + signature-at-bottom # Reflects capabilities of the display you have. Default: US-ASCII. # Typical alternatives include ISO-8859-x, (x is a number between 1 and 9). diff --git a/chinese/pine4/pkg-comment b/chinese/pine4/pkg-comment index a0b7777ce545..b3b6745d85c9 100644 --- a/chinese/pine4/pkg-comment +++ b/chinese/pine4/pkg-comment @@ -1 +1 @@ -Pine(tm) -- a Program for Internet News & Email with Chinese(BIG-5) support +PINE(tm) -- a Program for Internet News & Email with Chinese(BIG-5) support diff --git a/chinese/pine4/pkg-descr b/chinese/pine4/pkg-descr index f4bf3564bb85..ce866efdaf88 100644 --- a/chinese/pine4/pkg-descr +++ b/chinese/pine4/pkg-descr @@ -8,9 +8,9 @@ Besides Pine this package includes the Pico editor, the Pilot file browser and also the IMAPv4r1 daemon and POP2/POP3 servers (these daemons are not built by default). -An optional configuration file "pine.conf" can be put into /usr/local/etc -to set system wide defaults. The format of this file is identical to the -.pinerc file that is auto-generated by pine in your home directory. +An optional set of configuration files can be put into /usr/local/etc +to set system wide defaults. Have a look at the documentation installed +in /usr/local/share/doc/pine/ for more details. Also included in dot.pinerc.pgp.sample are example entries needed to add to your .pinerc to activate the pgp add on scripts pgpdecode, @@ -19,15 +19,15 @@ pgpencode, and pgpsign. dot.pinerc.sample is an example configuration file can be put into your home directory as .pinerc. -Pine on WWW: http://www.cac.washington.edu/pine/ +Pine on WWW: http://www.washington.edu/pine/ -This version of zh-pine ports was based on pine4(pine 4.02) ports of FreeBSD, +This version of zh-pine ports was based on pine4(pine 4.04) ports of FreeBSD, which is maintained by: - Adrian Penisoara (Ady) pine@freebsd.ady.ro -zh-pine 4.02 ports for FreeBSD is maintained by: +zh-pine 4.04 ports for FreeBSD is maintained by: - Liang Tai Hwa avatar@www.mmlab.cse.yzu.edu.tw diff --git a/chinese/pine4/pkg-plist b/chinese/pine4/pkg-plist index e477632da870..34a1759d5615 100644 --- a/chinese/pine4/pkg-plist +++ b/chinese/pine4/pkg-plist @@ -6,9 +6,8 @@ bin/pilot bin/pine etc/dot.pinerc.pgp.sample etc/dot.pinerc.sample -lib/libpico.so.2.0 -@exec /sbin/ldconfig -m %B -@unexec /sbin/ldconfig -R +@exec %D/bin/pine -P %D/etc/pine.conf -conf >%D/etc/pine.conf.tmp +@exec /bin/mv %D/etc/pine.conf.tmp %D/etc/pine.conf share/doc/pine/brochure.txt share/doc/pine/tech-notes.txt share/doc/pine/tech-notes/background.html |