summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsteve <steve@FreeBSD.org>1999-11-01 00:41:02 +0000
committersteve <steve@FreeBSD.org>1999-11-01 00:41:02 +0000
commitfc3e74f54da1f464d751552fd18a45214007dd8d (patch)
tree252d5b1898de3aa50f37f2374cdc915692c00ad2
parent1c174749651ff8dc83b3e6fc7eaa986f213bb0d5 (diff)
downloadFreeBSD-ports-fc3e74f54da1f464d751552fd18a45214007dd8d.zip
FreeBSD-ports-fc3e74f54da1f464d751552fd18a45214007dd8d.tar.gz
Update to version 4.20.
PR: 14575 Submitted by: maintainer
-rw-r--r--chinese/pine4/Makefile6
-rw-r--r--chinese/pine4/distinfo2
-rw-r--r--chinese/pine4/files/patch-aa8
-rw-r--r--chinese/pine4/files/patch-ab4
-rw-r--r--chinese/pine4/files/patch-ac24
-rw-r--r--chinese/pine4/files/patch-ad8
-rw-r--r--chinese/pine4/files/patch-af4
-rw-r--r--chinese/pine4/files/patch-ag6
-rw-r--r--chinese/pine4/files/patch-ah8
-rw-r--r--chinese/pine4/files/patch-ai6
-rw-r--r--chinese/pine4/files/patch-aj28
-rw-r--r--chinese/pine4/files/patch-ak14
-rw-r--r--chinese/pine4/files/patch-al2
-rw-r--r--chinese/pine4/files/patch-am2
-rw-r--r--chinese/pine4/files/patch-an6
-rw-r--r--chinese/pine4/files/patch-ao34
-rw-r--r--chinese/pine4/files/patch-ap6
-rw-r--r--chinese/pine4/files/patch-aq26
-rw-r--r--chinese/pine4/files/patch-ar4
-rw-r--r--chinese/pine4/files/patch-as150
-rw-r--r--chinese/pine4/files/patch-au2
-rw-r--r--chinese/pine4/files/patch-av234
-rw-r--r--chinese/pine4/files/patch-aw166
-rw-r--r--chinese/pine4/files/patch-ax231
-rw-r--r--chinese/pine4/files/patch-ay38
-rw-r--r--chinese/pine4/files/patch-az12
-rw-r--r--chinese/pine4/files/patch-ba260
-rw-r--r--chinese/pine4/files/patch-bb59
-rw-r--r--chinese/pine4/files/patch-bc122
-rw-r--r--chinese/pine4/files/patch-bd209
-rw-r--r--chinese/pine4/files/patch-be69
-rw-r--r--chinese/pine4/files/patch-bf1026
-rw-r--r--chinese/pine4/files/patch-bg99
-rw-r--r--chinese/pine4/files/patch-bh18
-rw-r--r--chinese/pine4/files/patch-bi81
-rw-r--r--chinese/pine4/files/patch-bj42
-rw-r--r--chinese/pine4/files/patch-bk204
-rw-r--r--chinese/pine4/files/patch-bl12
-rw-r--r--chinese/pine4/files/patch-bm10
-rw-r--r--chinese/pine4/files/patch-bn16
-rw-r--r--chinese/pine4/files/patch-bo20
-rw-r--r--chinese/pine4/files/patch-bp6
-rw-r--r--chinese/pine4/files/patch-br14
-rw-r--r--chinese/pine4/files/patch-bs4
-rw-r--r--chinese/pine4/files/patch-bt4
-rw-r--r--chinese/pine4/files/patch-bu6
-rw-r--r--chinese/pine4/files/patch-bv4
-rw-r--r--chinese/pine4/files/patch-bw12
-rw-r--r--chinese/pine4/pkg-descr4
49 files changed, 2027 insertions, 1305 deletions
diff --git a/chinese/pine4/Makefile b/chinese/pine4/Makefile
index 884fb1d..d2b62be 100644
--- a/chinese/pine4/Makefile
+++ b/chinese/pine4/Makefile
@@ -1,14 +1,14 @@
# New ports collection makefile for: pine
# http://www.washington.edu/pine/
-# Version required: 4.10
+# Version required: 4.20
# Date created: 15 July 1998
# Whom: Tai-hwa Liang <avatar@www.mmlab.cse.yzu.edu.tw>
#
# $FreeBSD$
#
-DISTNAME= pine4.10
-PKGNAME= zh-pine-4.10
+DISTNAME= pine4.20
+PKGNAME= zh-pine-4.20
CATEGORIES= chinese mail news
MASTER_SITES= ftp://ftp.cac.washington.edu/pine/
diff --git a/chinese/pine4/distinfo b/chinese/pine4/distinfo
index 6a13613..2859144 100644
--- a/chinese/pine4/distinfo
+++ b/chinese/pine4/distinfo
@@ -1 +1 @@
-MD5 (pine4.10.tar.gz) = f871e201b4070da1f060f35d3b8f2ccd
+MD5 (pine4.20.tar.gz) = 9b60a049e3575fc0b1a201f5f0105f14
diff --git a/chinese/pine4/files/patch-aa b/chinese/pine4/files/patch-aa
index 77e51cd..483e8f6 100644
--- a/chinese/pine4/files/patch-aa
+++ b/chinese/pine4/files/patch-aa
@@ -1,6 +1,6 @@
---- imap/src/osdep/unix/Makefile.orig Fri Jul 17 03:12:53 1998
-+++ imap/src/osdep/unix/Makefile Tue Jul 28 08:34:59 1998
-@@ -75,7 +75,7 @@
+--- imap/src/osdep/unix/Makefile.orig Thu Sep 30 13:54:13 1999
++++ imap/src/osdep/unix/Makefile Thu Oct 14 10:53:41 1999
+@@ -86,7 +86,7 @@
# Commands possibly overriden by the individual port
ARRC=ar rc
@@ -9,7 +9,7 @@
LN=ln -s
RANLIB=ranlib
-@@ -93,7 +93,7 @@
+@@ -104,7 +104,7 @@
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbox.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o
diff --git a/chinese/pine4/files/patch-ab b/chinese/pine4/files/patch-ab
index 63666fa..65fd619 100644
--- a/chinese/pine4/files/patch-ab
+++ b/chinese/pine4/files/patch-ab
@@ -1,5 +1,5 @@
---- imap/src/osdep/unix/os_bsi.h.orig Sat Jul 11 17:29:33 1998
-+++ imap/src/osdep/unix/os_bsi.h Tue Jul 28 08:34:59 1998
+--- imap/src/osdep/unix/os_bsi.h.orig Tue Feb 9 14:46:59 1999
++++ imap/src/osdep/unix/os_bsi.h Thu Oct 14 10:53:41 1999
@@ -37,7 +37,12 @@
#include <unistd.h>
#include <string.h>
diff --git a/chinese/pine4/files/patch-ac b/chinese/pine4/files/patch-ac
index b812c52..f7d6cc0 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 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))
+--- imap/src/osdep/unix/env_unix.c.orig Thu Oct 14 12:37:16 1999
++++ imap/src/osdep/unix/env_unix.c Thu Oct 14 13:21:27 1999
+@@ -825,7 +825,11 @@
+ }
+ close (pi[0]); close (pi[1]);
+ }
+- if (lockEaccesError) {/* punt silently if paranoid site */
+ if (
+#ifdef __FreeBSD__
-+ strncmp(lock,"/var/mail/",10) && /* /var/mail/... isn't lockable */
++ strncmp(base->lock,"/var/mail/",10) && /* /var/mail/... isn't lockable */
+#endif
-+ mail_parameters (NIL,GET_LOCKEACCESERROR,NIL))
- mm_log ("Mailbox vulnerable - directory must have 1777 protection",
- WARN);
- *lock = '\0'; /* give up on lock file */
++ lockEaccesError) {/* punt silently if paranoid site */
+ sprintf (tmp,"Mailbox vulnerable - directory %.80s",hitch);
+ if (s = strrchr (tmp,'/')) *s = '\0';
+ strcat (tmp," must have 1777 protection");
diff --git a/chinese/pine4/files/patch-ad b/chinese/pine4/files/patch-ad
index 28c07fa..0fa04dc 100644
--- a/chinese/pine4/files/patch-ad
+++ b/chinese/pine4/files/patch-ad
@@ -1,8 +1,8 @@
---- imap/Makefile.orig Thu Jul 16 14:54:19 1998
-+++ imap/Makefile Tue Jul 28 08:34:58 1998
-@@ -250,12 +250,12 @@
+--- imap/Makefile.orig Thu Sep 30 14:03:17 1999
++++ imap/Makefile Thu Oct 14 10:53:41 1999
+@@ -389,12 +389,12 @@
$(TOOLS)/$@ "$(LN)" src/charset c-client
- $(LN) `pwd`/src/kerberos/* c-client
+ sh -c '(test -d src/kerberos) && ($(LN) `pwd`/src/kerberos/* c-client) || true'
$(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client
- $(TOOLS)/$@ "$(LN)" src/mtest mtest
- $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
diff --git a/chinese/pine4/files/patch-af b/chinese/pine4/files/patch-af
index 7a6b031..1d9c890 100644
--- a/chinese/pine4/files/patch-af
+++ b/chinese/pine4/files/patch-af
@@ -1,5 +1,5 @@
---- pico/osdep/os-bsf.h.orig Thu Jul 9 00:37:28 1998
-+++ pico/osdep/os-bsf.h Tue Jul 28 08:35:00 1998
+--- pico/osdep/os-bsf.h.orig Thu Oct 8 06:10:21 1998
++++ pico/osdep/os-bsf.h Thu Oct 14 10:53:41 1999
@@ -23,7 +23,7 @@
#define USE_DIRENT
diff --git a/chinese/pine4/files/patch-ag b/chinese/pine4/files/patch-ag
index db69313..11ba58d 100644
--- a/chinese/pine4/files/patch-ag
+++ b/chinese/pine4/files/patch-ag
@@ -1,6 +1,6 @@
---- pico/osdep/term.cap.orig Sat Feb 28 08:14:53 1998
-+++ pico/osdep/term.cap Tue Jul 28 08:35:00 1998
-@@ -270,7 +270,8 @@
+--- pico/osdep/term.cap.orig Thu Jul 8 07:25:22 1999
++++ pico/osdep/term.cap Thu Oct 14 10:53:41 1999
+@@ -272,7 +272,8 @@
_kppu = tgetstr("kP", &p);
_kppd = tgetstr("kN", &p);
_kphome = tgetstr("kh", &p);
diff --git a/chinese/pine4/files/patch-ah b/chinese/pine4/files/patch-ah
index 19f0b82..dd44568 100644
--- a/chinese/pine4/files/patch-ah
+++ b/chinese/pine4/files/patch-ah
@@ -1,6 +1,6 @@
---- pico/attach.c.orig Sat Jul 11 06:41:23 1998
-+++ pico/attach.c Tue Aug 4 12:42:13 1998
-@@ -74,12 +74,12 @@
+--- pico/attach.c.orig Fri May 28 07:10:00 1999
++++ pico/attach.c Thu Oct 14 10:53:41 1999
+@@ -75,12 +75,12 @@
int n;
menu_attach[n = 0].name = "^T";
@@ -15,7 +15,7 @@
menu_attach[n].key = (CTRL|'I');
}
-@@ -101,12 +101,12 @@
+@@ -102,12 +102,12 @@
menu_attach[++n].name = NULL;
KS_OSDATASET(&menu_attach[0], KS_NONE);
diff --git a/chinese/pine4/files/patch-ai b/chinese/pine4/files/patch-ai
index f50baad..ce2847a 100644
--- a/chinese/pine4/files/patch-ai
+++ b/chinese/pine4/files/patch-ai
@@ -1,5 +1,5 @@
---- pico/browse.c.orig Wed Sep 16 08:19:17 1998
-+++ pico/browse.c Tue Sep 22 17:29:07 1998
+--- pico/browse.c.orig Sat Oct 2 07:21:05 1999
++++ pico/browse.c Thu Oct 14 10:53:41 1999
@@ -126,12 +126,12 @@
@@ -453,7 +453,7 @@
break;
@@ -1425,7 +1425,7 @@
- switch(readpattern("File name to find")){
+ switch(readpattern("File name to find", FALSE)){
case HELPCH:
- emlwrite("\007No help yet!", NULL);
+ emlwrite("\007尚無輔助說明!", NULL);
diff --git a/chinese/pine4/files/patch-aj b/chinese/pine4/files/patch-aj
index a797458..a6dd035 100644
--- a/chinese/pine4/files/patch-aj
+++ b/chinese/pine4/files/patch-aj
@@ -1,5 +1,5 @@
---- pico/composer.c.orig Thu Dec 24 05:03:58 1998
-+++ pico/composer.c Wed Feb 24 02:12:51 1999
+--- pico/composer.c.orig Fri Jun 11 06:55:22 1999
++++ pico/composer.c Thu Oct 14 10:53:41 1999
@@ -133,12 +133,12 @@
@@ -164,7 +164,7 @@
return(0);
}
}
-@@ -1553,7 +1553,7 @@
+@@ -1552,7 +1552,7 @@
if (term.t_nrow < 6 && ch != NODATA){
(*term.t_beep)();
@@ -253,7 +253,7 @@
headents[level].name);
saved_state = save_pico_state();
(*Pmaster->helper)(headents[level].help, buf, 1);
-@@ -3110,7 +3110,7 @@
+@@ -3114,7 +3114,7 @@
}
if((sbuf=(char *)malloc((unsigned) i)) == NULL){
@@ -262,7 +262,7 @@
return(-1);
}
-@@ -3167,7 +3167,7 @@
+@@ -3171,7 +3171,7 @@
if(!arg){
headarg = arg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
if(!arg){
@@ -271,7 +271,7 @@
return(-1);
}
else{
-@@ -3180,7 +3180,7 @@
+@@ -3184,7 +3184,7 @@
else{
nextarg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
if(!nextarg){
@@ -280,7 +280,7 @@
return(-1);
}
else{
-@@ -3196,7 +3196,7 @@
+@@ -3200,7 +3200,7 @@
if(!e->sticky){
line = e->hd_text;
if(!(arg->tptr=(char *)malloc(strlen(line->text) + 1))){
@@ -289,7 +289,7 @@
return(-1);
}
else
-@@ -3213,7 +3213,7 @@
+@@ -3217,7 +3217,7 @@
if(!headarg){
headarg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
if(!headarg){
@@ -298,7 +298,7 @@
return(-1);
}
else{
-@@ -3522,7 +3522,7 @@
+@@ -3543,7 +3543,7 @@
if(ksize()){
if((bp = buf = (char *)malloc(ksize()+5)) == NULL){
@@ -307,7 +307,7 @@
return(FALSE);
}
}
-@@ -3556,7 +3556,7 @@
+@@ -3577,7 +3577,7 @@
work_buf_len = strlen(ods.cur_l->text) + buf_len;
work_buf = (char *) malloc((work_buf_len + 1) * sizeof(char));
if (work_buf == NULL) {
@@ -316,7 +316,7 @@
return(FALSE);
}
-@@ -3765,9 +3765,9 @@
+@@ -3786,9 +3786,9 @@
if(Pmaster && Pmaster->exit_label)
menu_header[SEND_KEY].label = Pmaster->exit_label;
else if(gmode & (MDVIEW | MDHDRONLY))
@@ -328,7 +328,7 @@
if(gmode & MDVIEW){
menu_header[CUT_KEY].name = NULL;
-@@ -3788,14 +3788,14 @@
+@@ -3809,14 +3809,14 @@
menu_header[RICH_KEY].name = NULL;
}
else{
@@ -345,7 +345,7 @@
}
else
menu_header[PONE_KEY].name = NULL;
-@@ -3804,7 +3804,7 @@
+@@ -3825,7 +3825,7 @@
}
else{
menu_header[PONE_KEY].name = "^O";
@@ -354,7 +354,7 @@
KS_OSDATASET(&menu_header[PONE_KEY],KS_OSDATAGET(&headents[ods.cur_e]));
menu_header[ATT_KEY].name = "^J";
-@@ -3876,7 +3876,7 @@
+@@ -3897,7 +3897,7 @@
*headents[i].realaddr = bufp;
}
else{
diff --git a/chinese/pine4/files/patch-ak b/chinese/pine4/files/patch-ak
index 4c11951..29263ac 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 Sep 22 18:30:04 1998
+--- pico/display.c.orig Thu Sep 2 03:25:22 1999
++++ pico/display.c Thu Oct 14 10:53:41 1999
@@ -71,32 +71,32 @@
* Standard pico keymenus...
*/
@@ -126,7 +126,7 @@
wkeyhelp(menu_compose);
#ifdef _WINDOWS
/* When alt editor is available "Where is" is not on the menu
-@@ -1150,11 +1150,11 @@
+@@ -1159,11 +1159,11 @@
}
menu_yesno[1].name = "Y";
@@ -141,7 +141,7 @@
wkeyhelp(menu_yesno); /* paint generic menu */
sgarbk = TRUE; /* mark menu dirty */
if(Pmaster && curwp)
-@@ -1168,7 +1168,7 @@
+@@ -1177,7 +1177,7 @@
switch(GetKey()){
case (CTRL|'M') : /* default */
if(dflt >= 0){
@@ -150,7 +150,7 @@
rv = dflt;
}
else
-@@ -1185,14 +1185,14 @@
+@@ -1194,14 +1194,14 @@
case 'y' :
case 'Y' :
case F3 :
@@ -167,7 +167,7 @@
rv = FALSE;
break;
-@@ -1320,7 +1320,7 @@
+@@ -1329,7 +1329,7 @@
#endif
menu_mlreply[0].name = "^G";
@@ -176,7 +176,7 @@
KS_OSDATASET(&menu_mlreply[0], KS_SCREENHELP);
for(j = 0, i = 1; i < 6; i++){ /* insert odd extras */
menu_mlreply[i].name = NULL;
-@@ -1340,7 +1340,7 @@
+@@ -1349,7 +1349,7 @@
}
menu_mlreply[6].name = "^C";
diff --git a/chinese/pine4/files/patch-al b/chinese/pine4/files/patch-al
index f0d0415..3fc6bd6 100644
--- a/chinese/pine4/files/patch-al
+++ b/chinese/pine4/files/patch-al
@@ -1,5 +1,5 @@
--- pico/ebind.h.orig Sat Feb 28 08:10:31 1998
-+++ pico/ebind.h Tue Aug 4 12:42:14 1998
++++ pico/ebind.h Thu Oct 14 10:53:41 1999
@@ -145,7 +145,7 @@
{CTRL|'O', filewrite},
{CTRL|'P', backline},
diff --git a/chinese/pine4/files/patch-am b/chinese/pine4/files/patch-am
index 7a4dcd7..86f1c7b 100644
--- a/chinese/pine4/files/patch-am
+++ b/chinese/pine4/files/patch-am
@@ -1,5 +1,5 @@
--- pico/edef.h.orig Thu Apr 23 07:53:44 1998
-+++ pico/edef.h Tue Aug 4 12:42:14 1998
++++ pico/edef.h Thu Oct 14 10:53:41 1999
@@ -59,7 +59,7 @@
int ComposerEditing = FALSE; /* TRUE if message line is open */
int revexist = FALSE; /* does reverse video exist? */
diff --git a/chinese/pine4/files/patch-an b/chinese/pine4/files/patch-an
index a8c1da0..1c4d0e0 100644
--- a/chinese/pine4/files/patch-an
+++ b/chinese/pine4/files/patch-an
@@ -1,6 +1,6 @@
---- pico/estruct.h.orig Fri May 29 06:56:52 1998
-+++ pico/estruct.h Tue Aug 4 12:42:14 1998
-@@ -125,7 +125,7 @@
+--- pico/estruct.h.orig Tue Oct 5 04:02:41 1999
++++ pico/estruct.h Thu Oct 14 10:53:41 1999
+@@ -130,7 +130,7 @@
#define LOBIT_CHAR(C) ((C) > 0x1f && (C) < 0x7f)
#define HIBIT_CHAR(C) ((C) > 0x7f && (C) <= 0xff)
#define HIBIT_OK(C) (!(gmode & MDHBTIGN))
diff --git a/chinese/pine4/files/patch-ao b/chinese/pine4/files/patch-ao
index 2d5dc25..a8fc50f 100644
--- a/chinese/pine4/files/patch-ao
+++ b/chinese/pine4/files/patch-ao
@@ -1,5 +1,5 @@
---- pico/file.c.orig Sat Jan 30 03:59:32 1999
-+++ pico/file.c Mon Feb 22 22:11:27 1999
+--- pico/file.c.orig Tue Mar 23 09:26:04 1999
++++ pico/file.c Thu Oct 14 10:53:41 1999
@@ -63,17 +63,17 @@
return(s);
@@ -91,7 +91,7 @@
opertree);
else
retval = ifile(fname);
-@@ -252,7 +251,7 @@
+@@ -255,7 +254,7 @@
break;
case (CTRL|'T'):
if(msg){
@@ -100,7 +100,7 @@
}
else{
if(*fname && isdir(fname, NULL, NULL))
-@@ -267,7 +266,7 @@
+@@ -270,7 +269,7 @@
if((s = FileBrowse(dir, NLINE, fname, NLINE,
NULL, FB_READ)) == 1){
if(gmode&MDSCUR){
@@ -109,7 +109,7 @@
NULL);
sleep(2);
}
-@@ -308,7 +307,7 @@
+@@ -311,7 +310,7 @@
if(gmode&MDSCUR){
emlwrite(
@@ -118,7 +118,7 @@
NULL);
return(0);
}
-@@ -408,20 +407,20 @@
+@@ -411,20 +410,20 @@
strcpy(curbp->b_fname, fname);
if ((s=ffropen(fname)) != FIOSUC){ /* Hard file open. */
if(s == FIOFNF) /* File not found. */
@@ -143,7 +143,7 @@
emlwrite(line, NULL);
break;
}
-@@ -479,14 +478,14 @@
+@@ -482,14 +481,14 @@
fname[0] = '\0';
menu_write[0].name = "^T";
@@ -161,7 +161,7 @@
QDEFLT|QFFILE, menu_write);
switch(s){
-@@ -497,7 +496,7 @@
+@@ -500,7 +499,7 @@
}
case TRUE:
if((gmode & MDTREE) && !compresspath(opertree, fname, NFILEN)){
@@ -170,7 +170,7 @@
opertree);
sleep(2);
continue;
-@@ -505,7 +504,7 @@
+@@ -508,7 +507,7 @@
else{
fixpath(fname, NFILEN); /* fixup ~ in file name */
if((gmode & MDTREE) && !in_oper_tree(fname)){
@@ -179,7 +179,7 @@
sleep(2);
continue;
}
-@@ -589,12 +588,12 @@
+@@ -592,12 +591,12 @@
strcpy(fname, shows);
}
else {
@@ -194,7 +194,7 @@
sleep(3);
}
refresh(FALSE, 1);
-@@ -632,7 +631,7 @@
+@@ -635,7 +634,7 @@
return(ABORT);
}
}
@@ -203,7 +203,7 @@
if ((s=writeout(fname, 0)) != -1) {
if(!(gmode&MDTOOL)){
-@@ -649,9 +648,9 @@
+@@ -652,9 +651,9 @@
}
if(s > 1)
@@ -215,7 +215,7 @@
}
return ((s == -1) ? FALSE : TRUE);
}
-@@ -677,12 +676,12 @@
+@@ -680,12 +679,12 @@
if ((curbp->b_flag&BFCHG) == 0) /* Return, no changes. */
return (TRUE);
if (curbp->b_fname[0] == 0) { /* Must have a name. */
@@ -230,7 +230,7 @@
if ((s=writeout(curbp->b_fname, 0)) != -1) {
curbp->b_flag &= ~BFCHG;
wp = wheadp; /* Update mode lines. */
-@@ -693,10 +692,10 @@
+@@ -696,10 +695,10 @@
wp = wp->w_wndp;
}
if(s > 1){
@@ -243,7 +243,7 @@
}
return (s);
}
-@@ -815,7 +814,7 @@
+@@ -818,7 +817,7 @@
curbp->b_flag &= ~BFTEMP; /* and are not temporary*/
curbp->b_linecnt = -1; /* must be recalculated */
@@ -252,7 +252,7 @@
done = newline = 0;
nline = 0L;
while(!done)
-@@ -825,7 +824,7 @@
+@@ -828,7 +827,7 @@
else
forwchar(FALSE, 1);
@@ -261,7 +261,7 @@
emlwrite(line, NULL);
break;
}
-@@ -913,7 +912,7 @@
+@@ -916,7 +915,7 @@
strcat(fn, S_FILESEP);
}
else{
diff --git a/chinese/pine4/files/patch-ap b/chinese/pine4/files/patch-ap
index 3d37a1d..08b06bc 100644
--- a/chinese/pine4/files/patch-ap
+++ b/chinese/pine4/files/patch-ap
@@ -1,5 +1,5 @@
---- pico/main.c.orig Thu Jul 16 16:30:47 1998
-+++ pico/main.c Tue Aug 4 12:42:14 1998
+--- pico/main.c.orig Fri Sep 24 05:44:10 1999
++++ pico/main.c Thu Oct 14 10:53:41 1999
@@ -66,7 +66,7 @@
{ F9, (CTRL|'K')},
{ F10, (CTRL|'U')},
@@ -9,7 +9,7 @@
{ F12, (CTRL|'T')}
#else
{ F12, (CTRL|'D')}
-@@ -424,7 +424,7 @@
+@@ -459,7 +459,7 @@
gmode ^= MDSSPD;
break;
case 'q': /* -q for termcap takes precedence */
diff --git a/chinese/pine4/files/patch-aq b/chinese/pine4/files/patch-aq
index e3e54a2..9dbff84 100644
--- a/chinese/pine4/files/patch-aq
+++ b/chinese/pine4/files/patch-aq
@@ -1,6 +1,6 @@
---- pico/pico.c.orig Tue Jul 7 05:41:45 1998
-+++ pico/pico.c Tue Aug 4 12:42:15 1998
-@@ -318,7 +318,7 @@
+--- pico/pico.c.orig Fri Jun 11 06:56:16 1999
++++ pico/pico.c Thu Oct 14 10:53:41 1999
+@@ -313,7 +313,7 @@
c = GetKey();
if (term.t_nrow < 6 && c != NODATA){
(*term.t_beep)();
@@ -9,7 +9,7 @@
continue;
}
-@@ -560,9 +560,9 @@
+@@ -555,9 +555,9 @@
}
if(c&CTRL)
@@ -21,7 +21,7 @@
lastflag = 0; /* Fake last flags. */
return (FALSE);
-@@ -615,7 +615,7 @@
+@@ -610,7 +610,7 @@
return(TRUE);
}
else{
@@ -30,7 +30,7 @@
curwp->w_flag |= WFMODE; /* and modeline so we */
sgarbk = TRUE; /* redraw the keymenu */
pclear(term.t_nrow - 1, term.t_nrow + 1);
-@@ -624,17 +624,17 @@
+@@ -619,17 +619,17 @@
}
}
else switch(mlyesno(Pmaster->headents
@@ -52,7 +52,7 @@
break;
default:
-@@ -672,7 +672,7 @@
+@@ -667,7 +667,7 @@
/* First, make sure there are no outstanding problems */
if(AttachError()){
@@ -61,7 +61,7 @@
return(FALSE);
}
-@@ -706,7 +706,7 @@
+@@ -701,7 +701,7 @@
if (f != FALSE /* Argument forces it. */
|| anycb() == FALSE /* All buffers clean. */
/* User says it's OK. */
@@ -70,7 +70,7 @@
vttidy();
#if defined(USE_TERMCAP) || defined(USE_TERMINFO) || defined(VMS)
kbdestroy(kbesc);
-@@ -719,7 +719,7 @@
+@@ -714,7 +714,7 @@
wquit(1, 0);
}
else if(s == ABORT){
@@ -79,7 +79,7 @@
if(term.t_mrow == 0)
curwp->w_flag |= WFHARD; /* cause bottom 3 lines to paint */
}
-@@ -753,7 +753,7 @@
+@@ -748,7 +748,7 @@
ctrlg(f, n)
int f, n;
{
@@ -88,7 +88,7 @@
return (ABORT);
}
-@@ -764,7 +764,7 @@
+@@ -759,7 +759,7 @@
rdonly()
{
(*term.t_beep)();
@@ -97,7 +97,7 @@
return(FALSE);
}
-@@ -1289,7 +1289,7 @@
+@@ -1323,7 +1323,7 @@
wp->doto = 0;
}
else
@@ -106,7 +106,7 @@
return((void *)wp);
}
-@@ -1377,7 +1377,7 @@
+@@ -1411,7 +1411,7 @@
register LINE *lp;
if((lp = lalloc(0)) == NULL){
diff --git a/chinese/pine4/files/patch-ar b/chinese/pine4/files/patch-ar
index f24487a..2124b48 100644
--- a/chinese/pine4/files/patch-ar
+++ b/chinese/pine4/files/patch-ar
@@ -1,5 +1,5 @@
---- pico/pilot.c.orig Thu Jul 16 16:30:46 1998
-+++ pico/pilot.c Tue Aug 4 12:42:15 1998
+--- pico/pilot.c.orig Tue Aug 25 01:37:39 1998
++++ pico/pilot.c Thu Oct 14 10:53:42 1999
@@ -222,7 +222,7 @@
sup_keyhelp = !sup_keyhelp;
break;
diff --git a/chinese/pine4/files/patch-as b/chinese/pine4/files/patch-as
index 18a08ee..d3c4726 100644
--- a/chinese/pine4/files/patch-as
+++ b/chinese/pine4/files/patch-as
@@ -1,18 +1,18 @@
---- 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 */
+--- pico/search.c.orig Tue Oct 5 05:49:41 1999
++++ pico/search.c Thu Oct 14 11:36:00 1999
+@@ -131,9 +131,9 @@
while(1){
+
if (gmode & MDREPLACE)
- status = srpat("Search", defpat, repl_mode);
+ status = srpat("搜尋", defpat, repl_mode);
else
-- status = readpattern("Search");
-+ status = readpattern("搜尋");
+- status = readpattern("Search", TRUE);
++ status = readpattern("搜尋", TRUE);
switch(status){
case TRUE: /* user typed something */
-@@ -142,14 +142,14 @@
+@@ -146,14 +146,14 @@
saved_state = save_pico_state();
(*Pmaster->helper)(Pmaster->search_help,
@@ -29,7 +29,7 @@
case (CTRL|'L'): /* redraw requested */
refresh(FALSE, 1);
-@@ -179,7 +179,7 @@
+@@ -235,7 +235,7 @@
default:
if(status == ABORT)
@@ -38,7 +38,7 @@
else
mlerase();
-@@ -228,16 +228,16 @@
+@@ -283,16 +283,16 @@
/* and complain if not there */
if (status == FALSE){
@@ -59,7 +59,7 @@
}
else if(status == TRUE){
emlwrite("", NULL);
-@@ -267,7 +267,7 @@
+@@ -321,7 +321,7 @@
/* additional 'replace all' menu option */
menu_pat[0].name = "^X";
menu_pat[0].key = (CTRL|'X');
@@ -68,7 +68,7 @@
KS_OSDATASET(&menu_pat[0], KS_NONE);
menu_pat[1].name = NULL;
-@@ -279,10 +279,10 @@
+@@ -333,10 +333,10 @@
pputs(origpat, 1); /* highlight word */
(*term.t_rev)(0);
@@ -81,7 +81,7 @@
if(rpat[0] != 0){
strcat(prompt, " [");
expandp(rpat, &prompt[strlen(prompt)], NPAT/2);
-@@ -324,14 +324,14 @@
+@@ -378,14 +378,14 @@
saved_state = save_pico_state();
(*Pmaster->helper)(Pmaster->search_help,
@@ -98,7 +98,7 @@
case (CTRL|'L'): /* redraw requested */
refresh(FALSE, 1);
-@@ -341,18 +341,18 @@
+@@ -395,18 +395,18 @@
case (CTRL|'X'): /* toggle replace all option */
if (repl_all){
repl_all = FALSE;
@@ -120,7 +120,7 @@
else
mlerase();
chword(defpat, origpat);
-@@ -401,9 +401,9 @@
+@@ -455,9 +455,9 @@
(*term.t_rev)(0);
fflush(stdout);
@@ -132,7 +132,7 @@
expandp(&repl[0], &prompt[strlen(prompt)], NPAT/2);
strcat(prompt, "\"");
-@@ -417,13 +417,13 @@
+@@ -471,13 +471,13 @@
chword(realpat, realpat); /* replace word by itself */
update();
if(status == ABORT){ /* if cancelled return */
@@ -148,40 +148,86 @@
return (FALSE);
}
}
-@@ -440,18 +440,18 @@
- EXTRAKEYS menu_pat[4];
-
- menu_pat[0].name = "^Y";
-- menu_pat[0].label = "FirstLine";
-+ menu_pat[0].label = "第一行";
- menu_pat[0].key = (CTRL|'Y');
- KS_OSDATASET(&menu_pat[0], KS_NONE);
- menu_pat[1].name = "^V";
-- menu_pat[1].label = "LastLine";
-+ menu_pat[1].label = "最後一行";
- menu_pat[1].key = (CTRL|'V');
- KS_OSDATASET(&menu_pat[1], KS_NONE);
- menu_pat[2].name = "^R";
- if (repl_mode)
-- menu_pat[2].label = "No Replace";
-+ menu_pat[2].label = "不取代";
- else
-- menu_pat[2].label = "Replace";
-+ menu_pat[2].label = "取代";
- menu_pat[2].key = (CTRL|'R');
- KS_OSDATASET(&menu_pat[2], KS_NONE);
- menu_pat[3].name = NULL;
-@@ -504,11 +504,11 @@
- EXTRAKEYS menu_pat[3];
-
- menu_pat[0].name = "^Y";
-- menu_pat[0].label = "FirstLine";
-+ menu_pat[0].label = "第一行";
- menu_pat[0].key = (CTRL|'Y');
- KS_OSDATASET(&menu_pat[0], KS_NONE);
- menu_pat[1].name = "^V";
-- menu_pat[1].label = "LastLine";
-+ menu_pat[1].label = "最後一行";
- menu_pat[1].key = (CTRL|'V');
- KS_OSDATASET(&menu_pat[1], KS_NONE);
- menu_pat[2].name = NULL;
+@@ -495,33 +495,33 @@
+ EXTRAKEYS menu_pat[7];
+
+ menu_pat[i = 0].name = "^Y";
+- menu_pat[i].label = "FirstLine";
++ menu_pat[i].label = "第一行";
+ menu_pat[i].key = (CTRL|'Y');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^V";
+- menu_pat[i].label = "LastLine";
++ menu_pat[i].label = "最後一行";
+ menu_pat[i].key = (CTRL|'V');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^R";
+- menu_pat[i].label = repl_mode ? "No Replace" : "Replace";
++ menu_pat[i].label = repl_mode ? "不取代" : "取代";
+ menu_pat[i].key = (CTRL|'R');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ if(!repl_mode){
+ menu_pat[++i].name = "^T";
+- menu_pat[i].label = "LineNumber";
++ menu_pat[i].label = "行號";
+ menu_pat[i].key = (CTRL|'T');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^W";
+- menu_pat[i].label = "Start of Para";
++ menu_pat[i].label = "段落起始";
+ menu_pat[i].key = (CTRL|'W');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^O";
+- menu_pat[i].label = "End of Para";
++ menu_pat[i].label = "段落結尾";
+ menu_pat[i].key = (CTRL|'O');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+ }
+@@ -577,7 +577,7 @@
+ EXTRAKEYS menu_pat[2];
+
+ menu_pat[i = 0].name = "^T";
+- menu_pat[i].label = "No Line Number";
++ menu_pat[i].label = "無行號";
+ menu_pat[i].key = (CTRL|'T');
+ KS_OSDATASET(&menu_pat[i++], KS_NONE);
+
+@@ -622,28 +622,28 @@
+ EXTRAKEYS menu_pat[6];
+
+ menu_pat[i = 0].name = "^Y";
+- menu_pat[i].label = "FirstLine";
++ menu_pat[i].label = "第一行";
+ menu_pat[i].key = (CTRL|'Y');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^V";
+- menu_pat[i].label = "LastLine";
++ menu_pat[i].label = "最後一行";
+ menu_pat[i].key = (CTRL|'V');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ if(text_mode){
+ menu_pat[++i].name = "^T";
+- menu_pat[i].label = "LineNumber";
++ menu_pat[i].label = "行號";
+ menu_pat[i].key = (CTRL|'T');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^W";
+- menu_pat[i].label = "Start of Para";
++ menu_pat[i].label = "段落起始";
+ menu_pat[i].key = (CTRL|'W');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+
+ menu_pat[++i].name = "^O";
+- menu_pat[i].label = "End of Para";
++ menu_pat[i].label = "段落結尾";
+ menu_pat[i].key = (CTRL|'O');
+ KS_OSDATASET(&menu_pat[i], KS_NONE);
+ }
diff --git a/chinese/pine4/files/patch-au b/chinese/pine4/files/patch-au
index b827f7c..53169b4 100644
--- a/chinese/pine4/files/patch-au
+++ b/chinese/pine4/files/patch-au
@@ -1,5 +1,5 @@
--- pine/osdep/os-bsf.h.orig Thu Oct 8 05:51:40 1998
-+++ pine/osdep/os-bsf.h Mon Feb 22 22:21:57 1999
++++ pine/osdep/os-bsf.h Thu Oct 14 10:53:42 1999
@@ -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
diff --git a/chinese/pine4/files/patch-av b/chinese/pine4/files/patch-av
index b336511..2c40253 100644
--- a/chinese/pine4/files/patch-av
+++ b/chinese/pine4/files/patch-av
@@ -1,5 +1,5 @@
---- pine/addrbook.c.orig Tue Feb 23 16:21:22 1999
-+++ pine/addrbook.c Tue Feb 23 18:02:45 1999
+--- pine/addrbook.c.orig Fri Sep 10 05:35:09 1999
++++ pine/addrbook.c Thu Oct 14 11:37:56 1999
@@ -129,14 +129,14 @@
char *pcpine_help_addrbook PROTO((char *));
#endif
@@ -91,7 +91,7 @@
- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
dprint(1,
- (debugfile, "RESETTING address book... addr_book_compose_oneaddr!\n"));
+ (debugfile, "RESETTING address book... addr_book_oneaddr!\n"));
addrbook_reset();
@@ -1768,7 +1768,7 @@
@@ -102,7 +102,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -1803,7 +1803,7 @@
+@@ -1844,7 +1844,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -111,7 +111,7 @@
dprint(1,
(debugfile, "RESETTING address book... addr_book_compose!\n"));
addrbook_reset();
-@@ -1812,7 +1812,7 @@
+@@ -1853,7 +1853,7 @@
ab_nesting_level++;
@@ -120,7 +120,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -1847,7 +1847,7 @@
+@@ -1888,7 +1888,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -129,7 +129,7 @@
dprint(1,
(debugfile, "RESETTING address book... addr_book_compose_lcc!\n"));
addrbook_reset();
-@@ -1860,7 +1860,7 @@
+@@ -1901,7 +1901,7 @@
* We used to use SelectAddrLccCom here but decided it wasn't necessary
* to restrict the selection to a list.
*/
@@ -138,7 +138,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -1895,7 +1895,7 @@
+@@ -1936,7 +1936,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -147,7 +147,7 @@
dprint(1,
(debugfile, "RESETTING address book... addr_book_change_list!\n"));
addrbook_reset();
-@@ -1904,7 +1904,7 @@
+@@ -1945,7 +1945,7 @@
ab_nesting_level++;
@@ -156,7 +156,7 @@
error);
if(ab_nesting_level <= 1)
-@@ -1937,7 +1937,7 @@
+@@ -1978,7 +1978,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -165,7 +165,7 @@
dprint(1,
(debugfile, "RESETTING address book...addr_book_bounce!\n"));
addrbook_reset();
-@@ -1946,7 +1946,7 @@
+@@ -1987,7 +1987,7 @@
ab_nesting_level++;
@@ -174,7 +174,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -1978,7 +1978,7 @@
+@@ -2019,7 +2019,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -183,7 +183,7 @@
dprint(1,
(debugfile, "RESETTING address book...addr_book_takeaddr!\n"));
addrbook_reset();
-@@ -1987,7 +1987,7 @@
+@@ -2028,7 +2028,7 @@
ab_nesting_level++;
@@ -192,7 +192,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -2023,7 +2023,7 @@
+@@ -2064,7 +2064,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -201,7 +201,7 @@
dprint(1,
(debugfile, "RESETTING address book...addr_book_nick_for_edit!\n"));
addrbook_reset();
-@@ -2038,7 +2038,7 @@
+@@ -2079,7 +2079,7 @@
* and this seemed to be the easiest way to accomplish that.
*/
as.n_serv = 0;
@@ -210,7 +210,7 @@
as.n_serv = save_n_serv;
if(ab_nesting_level <= 1)
-@@ -2071,7 +2071,7 @@
+@@ -2112,7 +2112,7 @@
save_nesting_level = cpyint(ab_nesting_level);
memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
if(setjmp(addrbook_changed_unexpectedly)){
@@ -219,7 +219,7 @@
dprint(1,
(debugfile, "RESETTING address book...addr_book_selnick!\n"));
addrbook_reset();
-@@ -2080,7 +2080,7 @@
+@@ -2121,7 +2121,7 @@
ab_nesting_level++;
@@ -228,7 +228,7 @@
if(ab_nesting_level <= 1)
end_adrbks();
-@@ -2103,8 +2103,8 @@
+@@ -2144,8 +2144,8 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
@@ -239,7 +239,7 @@
PREVPAGE_MENU,
NEXTPAGE_MENU,
NULL_MENU,
-@@ -2127,10 +2127,10 @@
+@@ -2168,10 +2168,10 @@
HELP_MENU,
OTHER_MENU,
@@ -254,7 +254,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -2259,7 +2259,7 @@
+@@ -2303,7 +2303,7 @@
if(!init_addrbooks(HalfOpen, 1, !as.config, !are_selecting)){
if(are_selecting){
q_status_message(SM_ORDER | SM_DING, 0, 4,
@@ -263,7 +263,7 @@
display_message(c);
sleep(2);
return NULL;
-@@ -2267,7 +2267,7 @@
+@@ -2311,7 +2311,7 @@
else if(!as.config){
ps->next_screen = main_menu_screen;
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -272,7 +272,7 @@
ps->mangled_screen = 1;
return NULL;
}
-@@ -2277,7 +2277,7 @@
+@@ -2321,7 +2321,7 @@
readonly_warning(NO_DING, NULL);
else if(as.adrbks[0].access == NoAccess)
q_status_message(SM_ORDER, 0, 4,
@@ -281,7 +281,7 @@
}
erase_checks();
-@@ -2422,10 +2422,10 @@
+@@ -2466,10 +2466,10 @@
if(style == AddrBookScreen){
if(F_ON(F_CMBND_ABOOK_DISP,ps_global))
@@ -295,7 +295,7 @@
is_custom_title ? pab->nickname : "",
is_custom_title ? ">" : "");
-@@ -2490,7 +2490,7 @@
+@@ -2534,7 +2534,7 @@
km->how_many = 1;
clrbitn(OTHER_KEY, bitmap);
@@ -304,7 +304,7 @@
KS_OSDATASET(&km->keys[TWO_KEY], KS_EXITMODE);
/*
-@@ -2503,22 +2503,22 @@
+@@ -2547,22 +2547,22 @@
clrbitn(THREE_KEY, bitmap);
menu_init_binding(km, 'A', MC_ADDABOOK, "A",
add_is_global(as.top_ent+as.cur_row)
@@ -334,7 +334,7 @@
ADD_KEY);
}
}
-@@ -2531,7 +2531,7 @@
+@@ -2575,7 +2575,7 @@
* The OTHER_KEY is used as the Exit key in selection mode.
* This is because the TWO_KEY is being used for < actions.
*/
@@ -343,7 +343,7 @@
OTHER_KEY);
KS_OSDATASET(&km->keys[OTHER_KEY], KS_EXITMODE);
-@@ -2551,8 +2551,8 @@
+@@ -2595,8 +2595,8 @@
clrbitn(TWO_KEY, bitmap);
else{
menu_init_binding(km, '<', cmd, "<",
@@ -354,7 +354,7 @@
TWO_KEY);
menu_add_binding(km, ',', cmd);
if(F_ON(F_ARROW_NAV,ps))
-@@ -2563,16 +2563,16 @@
+@@ -2607,16 +2607,16 @@
if(checkedn){
if(entry_is_clickable_title(as.top_ent+as.cur_row)){
menu_init_binding(km, 'S', MC_CHOICE, "S",
@@ -374,7 +374,7 @@
TWO_KEY);
}
else
-@@ -2584,7 +2584,7 @@
+@@ -2628,7 +2628,7 @@
* key becomes the ViewAbook key.
*/
if(entry_is_askserver(as.top_ent+as.cur_row) && !as.checkboxes){
@@ -383,7 +383,7 @@
THREE_KEY);
menu_add_binding(km, 's', MC_QUERY_SERV);
menu_add_binding(km, '.', MC_QUERY_SERV);
-@@ -2592,7 +2592,7 @@
+@@ -2636,7 +2636,7 @@
menu_add_binding(km, KEY_RIGHT, MC_QUERY_SERV);
}
else if(entry_is_clickable_title(as.top_ent+as.cur_row)){
@@ -392,7 +392,7 @@
THREE_KEY);
menu_add_binding(km, 'v', MC_OPENABOOK);
menu_add_binding(km, '.', MC_OPENABOOK);
-@@ -2600,7 +2600,7 @@
+@@ -2644,7 +2644,7 @@
menu_add_binding(km, KEY_RIGHT, MC_OPENABOOK);
}
else if(cur_is_open()){
@@ -401,7 +401,7 @@
THREE_KEY);
}
else
-@@ -2613,7 +2613,7 @@
+@@ -2657,7 +2657,7 @@
*/
if(entry_is_clickable(as.top_ent+as.cur_row) &&
!entry_is_clickable_title(as.top_ent+as.cur_row)){
@@ -410,7 +410,7 @@
SENDTO_KEY);
menu_add_binding(km, '.', MC_EXPAND);
if(F_ON(F_ARROW_NAV,ps))
-@@ -2623,12 +2623,12 @@
+@@ -2667,12 +2667,12 @@
clrbitn(SENDTO_KEY, bitmap);
if(cur_is_open() && as.checkboxes){
@@ -425,7 +425,7 @@
DELETE_KEY);
}
else
-@@ -2645,7 +2645,7 @@
+@@ -2689,7 +2689,7 @@
* reasonable function call.
*/
km->keys[OTHER_KEY].name = "O";
@@ -434,7 +434,7 @@
km->keys[OTHER_KEY].bind.cmd = MC_OTHER;
km->keys[OTHER_KEY].bind.ch[0] = 'O';
km->keys[OTHER_KEY].bind.nch = 1;
-@@ -2664,13 +2664,13 @@
+@@ -2708,13 +2708,13 @@
if(F_OFF(F_EXPANDED_DISTLISTS,ps) &&
entry_is_listent(as.top_ent+as.cur_row)){
cmd = MC_UNEXPAND;
@@ -450,7 +450,7 @@
TWO_KEY);
KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
}
-@@ -2679,11 +2679,11 @@
+@@ -2723,11 +2723,11 @@
/*
* Add or delete entries from this address book.
*/
@@ -464,8 +464,8 @@
+ menu_init_binding(km, 'C', MC_COMPOSE, "C", "編修",
SENDTO_KEY);
KS_OSDATASET(&km->keys[SENDTO_KEY], KS_COMPOSER);
- }
-@@ -2709,7 +2709,7 @@
+ menu_init_binding(km, '#', MC_ROLE, "#", "Role",
+@@ -2756,7 +2756,7 @@
if(F_OFF(F_EXPANDED_DISTLISTS,ps) &&
entry_is_listent(as.top_ent+as.cur_row)){
cmd = MC_UNEXPAND;
@@ -474,7 +474,7 @@
TWO_KEY);
KS_OSDATASET(&km->keys[TWO_KEY], KS_NONE);
}
-@@ -2717,12 +2717,12 @@
+@@ -2764,12 +2764,12 @@
if(as.n_addrbk > 1 || as.n_serv){
cmd = MC_POPUP;
menu_init_binding(km, '<', cmd, "<",
@@ -489,7 +489,7 @@
TWO_KEY);
KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
}
-@@ -2732,9 +2732,9 @@
+@@ -2779,9 +2779,9 @@
/*
* Add or delete entries from this address book.
*/
@@ -501,7 +501,7 @@
DELETE_KEY);
}
else{
-@@ -2744,14 +2744,14 @@
+@@ -2791,14 +2791,14 @@
/* Find someplace to put Main Menu command */
if(cmd == MC_POPUP){
@@ -517,8 +517,8 @@
+ menu_init_binding(km, 'C', MC_COMPOSE, "C", "編修",
SENDTO_KEY);
KS_OSDATASET(&km->keys[SENDTO_KEY], KS_COMPOSER);
- }
-@@ -2761,7 +2761,7 @@
+ menu_init_binding(km, '#', MC_ROLE, "#", "Role",
+@@ -2810,7 +2810,7 @@
* non-selection mode.
*/
cmd = MC_MAIN;
@@ -527,7 +527,7 @@
TWO_KEY);
KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
-@@ -2800,10 +2800,10 @@
+@@ -2850,10 +2850,10 @@
cmd = MC_VIEW_ENTRY;
menu_init_binding(km, '>', cmd, ">",
@@ -542,7 +542,7 @@
THREE_KEY);
if(cmd == MC_QUERY_SERV)
-@@ -2941,13 +2941,13 @@
+@@ -2992,13 +2992,13 @@
}
if(as.config)
@@ -559,7 +559,7 @@
/*
* Helper() may have a Main Menu key. If user types that
-@@ -3021,7 +3021,7 @@
+@@ -3072,7 +3072,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -568,7 +568,7 @@
break;
-@@ -3057,7 +3057,7 @@
+@@ -3108,7 +3108,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -577,7 +577,7 @@
break;
-@@ -3128,11 +3128,11 @@
+@@ -3179,11 +3179,11 @@
}
else if(dlc_to_flush->type == DlcTitleNoPerm)
q_status_message(SM_ORDER, 0, 4,
@@ -591,7 +591,7 @@
break;
-@@ -3178,7 +3178,7 @@
+@@ -3229,7 +3229,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -600,7 +600,7 @@
break;
-@@ -3190,7 +3190,7 @@
+@@ -3241,7 +3241,7 @@
/* Select an entry to mail to or a nickname to add to */
if(!any_addrs_avail(as.top_ent+as.cur_row)){
q_status_message(SM_ORDER | SM_DING, 0, 4,
@@ -609,7 +609,7 @@
break;
}
-@@ -3212,7 +3212,7 @@
+@@ -3263,7 +3263,7 @@
}
else if(as.checkboxes && checkedn <= 0){
q_status_message(SM_ORDER, 0, 1,
@@ -618,7 +618,7 @@
break;
}
else if(as.checkboxes){
-@@ -3296,7 +3296,7 @@
+@@ -3347,7 +3347,7 @@
if(selecting_mult_nicks){
if(dl->type != ListHead && style == SelectAddrLccCom){
q_status_message(SM_ORDER, 0, 4,
@@ -627,7 +627,7 @@
break;
}
else{
-@@ -3358,16 +3358,16 @@
+@@ -3422,16 +3422,16 @@
if(entry_is_clickable(as.top_ent+as.cur_row))
clickable_warning(as.top_ent+as.cur_row);
else if(entry_is_askserver(as.top_ent+as.cur_row))
@@ -647,7 +647,7 @@
break;
-@@ -3391,7 +3391,7 @@
+@@ -3455,7 +3455,7 @@
if(adrbk_check_all_validity_now()){
if(resync_screen(pab, style, checkedn)){
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -656,7 +656,7 @@
ps->mangled_screen = 1;
break;
}
-@@ -3406,7 +3406,7 @@
+@@ -3470,7 +3470,7 @@
dprint(9, (debugfile,
"Calling edit_entry to add entry manually\n"));
edit_entry(pab->address_book, (AdrBk_Entry *)NULL, NO_NEXT,
@@ -665,7 +665,7 @@
/*
* Warped means we got plopped down somewhere in the display
-@@ -3551,7 +3551,7 @@
+@@ -3615,7 +3615,7 @@
}
else{
q_status_message1(SM_ORDER|SM_DING, 0, 4,
@@ -674,7 +674,7 @@
if(nick)
fs_give((void **)&nick);
if(file)
-@@ -3586,7 +3586,7 @@
+@@ -3650,7 +3650,7 @@
ps->mangled_screen = 1;
}
else
@@ -683,7 +683,7 @@
break;
-@@ -3594,7 +3594,7 @@
+@@ -3658,7 +3658,7 @@
/*---------- Delete an address book -------------------*/
case MC_DELABOOK:
if(as.n_addrbk == 0){
@@ -692,7 +692,7 @@
break;
}
-@@ -3665,7 +3665,7 @@
+@@ -3729,7 +3729,7 @@
start_disp = 0;
ps->mangled_body = 1;
ps->mangled_footer = 1;
@@ -701,7 +701,7 @@
}
else{
if(err){
-@@ -3683,7 +3683,7 @@
+@@ -3747,7 +3747,7 @@
case MC_SHUFFLE:
if(entry_is_addkey(as.top_ent+as.cur_row)){
q_status_message(SM_ORDER, 0, 4,
@@ -710,7 +710,7 @@
break;
}
-@@ -3756,8 +3756,8 @@
+@@ -3820,8 +3820,8 @@
q_status_message(SM_ORDER, 0, 3,
msg ? msg :
@@ -721,7 +721,7 @@
if(ret < 0)
dprint(5, (debugfile, "addrbook shuffle failed: %s\n",
msg ? msg : "?"));
-@@ -3784,7 +3784,7 @@
+@@ -3848,7 +3848,7 @@
if(new_top_ent == as.top_ent ||
(as.cur_row + (as.top_ent-new_top_ent) > as.l_p_page - 1)){
@@ -730,7 +730,7 @@
}
else{
as.cur_row += (as.top_ent - new_top_ent);
-@@ -3842,7 +3842,7 @@
+@@ -3906,7 +3906,7 @@
if(new_end_line - as.top_ent <= as.l_p_page - 1 ||
as.cur_row - (new_end_line-as.top_ent-(as.l_p_page-1)) < 0){
@@ -739,7 +739,7 @@
}
else{
as.cur_row -= (new_end_line-as.top_ent-(as.l_p_page-1));
-@@ -3930,7 +3930,7 @@
+@@ -3994,7 +3994,7 @@
#endif
default:
q_status_message(SM_INFO, 0, 1,
@@ -748,7 +748,7 @@
break;
}
}
-@@ -4037,7 +4037,7 @@
+@@ -4101,7 +4101,7 @@
break;
if(as.top_ent == new_top_ent && as.cur_row == (fl-as.top_ent)){
@@ -757,7 +757,7 @@
break;
}
-@@ -4073,7 +4073,7 @@
+@@ -4137,7 +4137,7 @@
as.cur_row -
(new_end_line-as.top_ent-(as.l_p_page-1)) < 0){
q_status_message(SM_INFO, 0, 1,
@@ -766,7 +766,7 @@
}
else{
as.cur_row -=
-@@ -4122,14 +4122,14 @@
+@@ -4186,14 +4186,14 @@
if(adrbk_check_all_validity_now()){
if(resync_screen(pab, style, checkedn)){
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -783,7 +783,7 @@
break;
}
-@@ -4191,7 +4191,7 @@
+@@ -4255,7 +4255,7 @@
case MC_TOGGLE:
togglex:
if(!any_addrs_avail(as.top_ent+as.cur_row)){
@@ -792,7 +792,7 @@
break;
}
-@@ -4210,10 +4210,10 @@
+@@ -4274,10 +4274,10 @@
if(style == SelectAddrLccCom && dl->type == ListEnt)
q_status_message(SM_ORDER, 0, 4,
@@ -805,7 +805,7 @@
else if(dl->type == ListHead || dl->type == Simple){
current_changed_flag++;
if(entry_is_checked(pab->address_book->checks,
-@@ -4230,11 +4230,11 @@
+@@ -4294,11 +4294,11 @@
}
else
q_status_message(SM_ORDER, 0, 4,
@@ -819,7 +819,7 @@
break;
-@@ -4252,7 +4252,7 @@
+@@ -4316,7 +4316,7 @@
ps->mangled_body = 1;
start_disp = 0;
q_status_message(SM_ORDER, 0, 4,
@@ -828,7 +828,7 @@
break;
-@@ -4272,13 +4272,13 @@
+@@ -4342,13 +4342,13 @@
if(!directory_ok){
q_status_message(SM_ORDER, 0, 4,
(style == SelectAddrLccCom)
@@ -845,7 +845,7 @@
break;
}
-@@ -4333,14 +4333,14 @@
+@@ -4403,14 +4403,14 @@
/*----- Select entries to work on --*/
case MC_SELECT:
if(!any_addrs_avail(as.top_ent+as.cur_row)){
@@ -862,7 +862,7 @@
else
clickable_warning(as.top_ent+as.cur_row);
-@@ -4373,7 +4373,7 @@
+@@ -4443,7 +4443,7 @@
/*----------- Select current entry ----------*/
case MC_SELCUR:
if(!any_addrs_avail(as.top_ent+as.cur_row)){
@@ -871,7 +871,7 @@
break;
}
-@@ -4434,7 +4434,7 @@
+@@ -4504,7 +4504,7 @@
dlc_restart = *dlc;
as.zoomed = 0;
q_status_message(SM_ORDER, 0, 2,
@@ -880,7 +880,7 @@
warp_to_dlc(&dlc_restart, 0L);
/* put current entry in middle of screen */
-@@ -4501,11 +4501,11 @@
+@@ -4571,11 +4571,11 @@
}
else
q_status_message(SM_ORDER, 0, 4,
@@ -894,7 +894,7 @@
break;
-@@ -4518,7 +4518,7 @@
+@@ -4588,7 +4588,7 @@
: NULL,
&start_disp);
else{
@@ -903,7 +903,7 @@
ab_unzoom(&start_disp);
}
-@@ -4560,7 +4560,7 @@
+@@ -4630,7 +4630,7 @@
}
else
q_status_message(SM_ORDER, 0, 2,
@@ -912,7 +912,7 @@
break;
-@@ -4606,7 +4606,7 @@
+@@ -4676,7 +4676,7 @@
/*------ Copy entries into an abook ----*/
case MC_SAVE:
if(!any_addrs_avail(as.top_ent+as.cur_row)){
@@ -921,7 +921,7 @@
break;
}
-@@ -4628,7 +4628,7 @@
+@@ -4698,7 +4698,7 @@
/*------ Forward an entry in mail -----------*/
case MC_FORWARD:
if(!any_addrs_avail(as.top_ent+as.cur_row)){
@@ -930,7 +930,7 @@
break;
}
-@@ -4643,14 +4643,14 @@
+@@ -4713,14 +4713,14 @@
}
if(!is_addr(as.top_ent+as.cur_row)){
@@ -947,7 +947,7 @@
break;
}
-@@ -4682,18 +4682,18 @@
+@@ -4752,18 +4752,18 @@
case MC_UNKNOWN:
if(c == 'e' && !are_selecting){
q_status_message(SM_ORDER | SM_DING, 0, 2,
@@ -969,7 +969,7 @@
break;
}
/* else, fall through */
-@@ -4731,7 +4731,7 @@
+@@ -4801,7 +4801,7 @@
as.zoomed = 1;
if(as.selections){
@@ -978,7 +978,7 @@
if(cur_is_open()){
dl = dlist(as.top_ent+as.cur_row);
if((dl->type == ListHead ||
-@@ -4779,7 +4779,7 @@
+@@ -4849,7 +4849,7 @@
}
else{
as.zoomed = 0;
@@ -987,7 +987,7 @@
}
}
-@@ -4840,7 +4840,7 @@
+@@ -4910,7 +4910,7 @@
char *name;
{
q_status_message2(SM_ORDER | (bell ? SM_DING : 0), 0, 4,
@@ -996,7 +996,7 @@
name ? " " : "",
name ? name : "");
}
-@@ -4861,11 +4861,11 @@
+@@ -4931,11 +4931,11 @@
dl = dlist(cur_line);
if(dl->type == NoAbooks)
q_status_message(SM_ORDER, 0, 4,
@@ -1011,7 +1011,7 @@
}
-@@ -4882,9 +4882,9 @@
+@@ -4952,9 +4952,9 @@
register AddrScrn_Disp *dl;
dl = dlist(cur_line);
@@ -1024,7 +1024,7 @@
}
-@@ -4900,7 +4900,7 @@
+@@ -4970,7 +4970,7 @@
char *what;
{
q_status_message1(SM_INFO | (bell ? SM_DING : 0), 0, 2,
@@ -1033,7 +1033,7 @@
}
-@@ -4910,7 +4910,7 @@
+@@ -4980,7 +4980,7 @@
void
no_tabs_warning()
{
@@ -1042,7 +1042,7 @@
}
-@@ -4929,11 +4929,11 @@
+@@ -4999,12 +4999,12 @@
{
int ret = 0;
static ESCKEY_S opts[] = {
@@ -1051,24 +1051,26 @@
- {'%', '%', "%", "Print"},
- {'f', 'f', "F", "Forward"},
- {'s', 's', "S", "Save"},
+- {'#', '#', "#", "Role"},
+ {'c', 'c', "C", "編排"},
+ {'d', 'd', "D", "刪除"},
+ {'%', '%', "%", "列印"},
+ {'f', 'f', "F", "轉寄"},
+ {'s', 's', "S", "存檔"},
++ {'#', '#', "#", "角色"},
{ 0, '%', "", ""},
{-1, 0, NULL, NULL}};
+ #define PHANTOM_PRINT 6
+@@ -5014,7 +5014,7 @@
-@@ -4942,7 +4942,7 @@
-
- opts[5].ch = (F_ON(F_ENABLE_PRYNT, ps_global)) ? 'y' : -1;
+ opts[PHANTOM_PRINT].ch = (F_ON(F_ENABLE_PRYNT, ps_global)) ? 'y' : -1;
- switch(radio_buttons("APPLY command : ", command_line, opts, 0, 'z',
+ switch(radio_buttons("套用命令:", command_line, opts, 0, 'z',
NO_HELP, RB_NORM)){
case 'c':
- ret = ab_compose_to_addr(cur_line, 1);
-@@ -4965,7 +4965,7 @@
+ ret = ab_compose_to_addr(cur_line, 1, 0);
+@@ -5041,7 +5041,7 @@
break;
case 'z':
@@ -1077,7 +1079,7 @@
break;
}
-@@ -4987,22 +4987,22 @@
+@@ -5063,22 +5063,22 @@
int *start_disp;
{
static ESCKEY_S sel_opts1[] = {
@@ -1109,7 +1111,7 @@
ESCKEY_S *sel_opts;
HelpType help = NO_HELP;
adrbk_cntr_t num, ab_count;
-@@ -5030,8 +5030,8 @@
+@@ -5106,8 +5106,8 @@
if(dl && (dl->type == ListHead || dl->type == Simple)){
sel_opts1[1].label = entry_is_selected(abook->selects,
(a_c_arg_t)dl->elnum)
@@ -1120,7 +1122,7 @@
sel_opts1[1].ch = 'c';
}
else
-@@ -5053,7 +5053,7 @@
+@@ -5129,7 +5129,7 @@
default:
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -1129,7 +1131,7 @@
return;
}
}
-@@ -5062,8 +5062,8 @@
+@@ -5138,8 +5138,8 @@
(dl->type == ListHead || dl->type == Simple)){
sel_opts1[1].label = entry_is_selected(abook->selects,
(a_c_arg_t)dl->elnum)
@@ -1140,7 +1142,7 @@
sel_opts1[1].ch = 'c';
}
else
-@@ -5080,7 +5080,7 @@
+@@ -5156,7 +5156,7 @@
switch(q){
case 'x': /* cancel */
@@ -1149,7 +1151,7 @@
break;
case 'c': /* select/unselect current */
-@@ -5092,7 +5092,7 @@
+@@ -5168,7 +5168,7 @@
if(as.selections == 0 && as.zoomed){
as.zoomed = 0;
q_status_message(SM_ORDER, 0, 2,
@@ -1158,7 +1160,7 @@
do_warp++;
}
else if(as.zoomed){
-@@ -5131,17 +5131,17 @@
+@@ -5207,17 +5207,17 @@
if(as.selections == 0 && as.zoomed){
as.zoomed = 0;
q_status_message(SM_ORDER, 0, 2,
@@ -1180,7 +1182,7 @@
q_status_message(SM_ORDER, 0, 2, bb);
if(as.zoomed)
do_beginning++;
-@@ -5157,7 +5157,7 @@
+@@ -5233,7 +5233,7 @@
}
}
@@ -1189,7 +1191,7 @@
comatose(ab_count));
if(prevsel == 0 && as.selections > 0 &&
!as.zoomed && F_ON(F_AUTO_ZOOM, ps)){
-@@ -5194,14 +5194,14 @@
+@@ -5270,14 +5270,14 @@
do_beginning++;
else{
as.zoomed = 0;
@@ -1206,7 +1208,7 @@
comatose(as.selections));
break;
-@@ -5227,7 +5227,7 @@
+@@ -5303,7 +5303,7 @@
if(as.selections == 0){
as.zoomed = 0;
q_status_message(SM_ORDER, 0, 2,
@@ -1215,7 +1217,7 @@
do_warp++;
}
else
-@@ -5246,63 +5246,63 @@
+@@ -5322,63 +5322,63 @@
if(prevsel == as.selections && prevsel > 0){
if(as.selections == 1)
q_status_message(SM_ORDER, 0, 2,
@@ -1293,7 +1295,7 @@
comatose(as.selections-prevsel),
comatose(as.selections));
}
-@@ -5312,17 +5312,17 @@
+@@ -5388,17 +5388,17 @@
default :
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -1314,7 +1316,7 @@
return;
}
-@@ -5381,11 +5381,11 @@
+@@ -5457,11 +5457,11 @@
int narrow;
{
static ESCKEY_S ab_sel_type_opt[] = {
@@ -1329,7 +1331,7 @@
int type;
adrbk_cntr_t num, ab_count;
-@@ -5403,7 +5403,7 @@
+@@ -5479,7 +5479,7 @@
break;
case 'x':
@@ -1338,7 +1340,7 @@
return -1;
default:
-@@ -5523,7 +5523,7 @@
+@@ -5599,7 +5599,7 @@
}
if(type == 'x' || r == 'x'){
@@ -1347,7 +1349,7 @@
return -1;
}
-@@ -5606,7 +5606,7 @@
+@@ -5682,7 +5682,7 @@
break;
default:
@@ -1356,7 +1358,7 @@
return(err);
}
-@@ -5725,18 +5725,18 @@
+@@ -5801,18 +5801,18 @@
new_top_ent = NO_LINE;
if(rc == -2)
@@ -1379,7 +1381,7 @@
/* know match is on the same page */
if(!*warped &&
-@@ -6378,7 +6378,7 @@
+@@ -6454,7 +6454,7 @@
dprint(7, (debugfile, "- search_book -\n"));
@@ -1388,7 +1390,7 @@
help = NO_HELP;
nsearch_string[0] = '\0';
-@@ -6390,12 +6390,12 @@
+@@ -6466,12 +6466,12 @@
ekey[1].ch = ctrl('Y');
ekey[1].rval = 10;
ekey[1].name = "^Y";
@@ -1403,7 +1405,7 @@
ekey[3].ch = -1;
-@@ -6412,11 +6412,11 @@
+@@ -6488,11 +6488,11 @@
warp_to_beginning(); /* go to top of addrbooks */
if((nl=first_selectable_line(0L)) != NO_LINE){
*new_line = nl;
@@ -1417,7 +1419,7 @@
return -1;
}
}
-@@ -6425,11 +6425,11 @@
+@@ -6501,11 +6501,11 @@
warp_to_end(); /* go to bottom */
if((nl=first_selectable_line(0L)) != NO_LINE){
*new_line = nl;
diff --git a/chinese/pine4/files/patch-aw b/chinese/pine4/files/patch-aw
index f2f1854..8aae8b2 100644
--- a/chinese/pine4/files/patch-aw
+++ b/chinese/pine4/files/patch-aw
@@ -1,16 +1,16 @@
---- pine/adrbkcmd.c.orig Sat Jan 30 03:57:55 1999
-+++ pine/adrbkcmd.c Mon Feb 22 22:36:14 1999
+--- pine/adrbkcmd.c.orig Thu Sep 30 07:21:15 1999
++++ pine/adrbkcmd.c Thu Oct 14 11:42:22 1999
@@ -112,23 +112,23 @@
static struct key abook_view_keys[] =
{HELP_MENU,
OTHER_MENU,
- {"<","Abook",{MC_EXIT,2,{'<',','}},KS_NONE},
- {"U","Update",{MC_EDIT,1,{'u'}},KS_NONE},
+- {"C","ComposeTo",{MC_COMPOSE,1,{'c'}},KS_COMPOSER},
+ {"<","地址簿",{MC_EXIT,2,{'<',','}},KS_NONE},
+ {"U","更新",{MC_EDIT,1,{'u'}},KS_NONE},
- NULL_MENU,
-- {"C","ComposeTo",{MC_COMPOSE,1,{'c'}},KS_COMPOSER},
+ {"C","編修",{MC_COMPOSE,1,{'c'}},KS_COMPOSER},
+ RCOMPOSE_MENU,
PREVPAGE_MENU,
NEXTPAGE_MENU,
PRYNTTXT_MENU,
@@ -22,16 +22,16 @@
HELP_MENU,
OTHER_MENU,
- {"V","ViewLink",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"V","檢視連結",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
++ {"V","檢視鏈結",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
NULL_MENU,
- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一連結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","下一連結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
++ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
++ {"^F","下一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -144,7 +144,7 @@
+@@ -141,7 +141,7 @@
static struct key abook_text_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -40,7 +40,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -153,7 +153,7 @@
+@@ -150,7 +150,7 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
FWDEMAIL_MENU,
@@ -49,15 +49,21 @@
INST_KEY_MENU(abook_text_km, abook_text_keys);
#define VIEW_ABOOK_NONE 0
-@@ -305,15 +305,15 @@
+@@ -303,7 +303,7 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(out_store);
sargs.text.src = CharStar;
- sargs.text.desc = "expanded entry";
+ sargs.text.desc = "已展開的項目";
sargs.text.handles = handles;
+
+ if(offset){ /* resize? preserve paging! */
+@@ -312,13 +312,13 @@
+ offset = 0L;
+ }
+
- sargs.bar.title = "ADDRESS BOOK (View)";
-+ sargs.bar.title = "地址簿 (檢視)";
++ sargs.bar.title = "地址簿(檢視)";
sargs.bar.style = TextPercent;
sargs.proc.tool = process_abook_view_cmd;
sargs.proc.data.i = VIEW_ABOOK_NONE;
@@ -68,7 +74,7 @@
sargs.keys.menu = &abook_view_keymenu;
setbitmap(sargs.keys.bitmap);
-@@ -421,7 +421,7 @@
+@@ -428,7 +428,7 @@
if(adrbk_check_all_validity_now()){
if(resync_screen(pab, AddrBookScreen, 0)){
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -77,7 +83,7 @@
ps_global->mangled_screen = 1;
break;
}
-@@ -449,7 +449,7 @@
+@@ -456,7 +456,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,7 +92,7 @@
/*
* The ABOOK_EDITED case doesn't mean that we necessarily
* changed something, just that we might have but we know
-@@ -494,7 +494,7 @@
+@@ -506,7 +506,7 @@
h_ab_text_or_vcard, RB_NORM);
switch(i){
case 'x':
@@ -95,7 +101,7 @@
rv = 0;
break;
-@@ -729,8 +729,8 @@
+@@ -741,8 +741,8 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(store);
sargs.text.src = CharStar;
@@ -106,7 +112,7 @@
sargs.bar.style = TextPercent;
sargs.keys.menu = &abook_text_km;
setbitmap(sargs.keys.bitmap);
-@@ -800,8 +800,8 @@
+@@ -812,8 +812,8 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(store);
sargs.text.src = src;
@@ -117,7 +123,7 @@
sargs.bar.style = TextPercent;
sargs.keys.menu = &abook_text_km;
setbitmap(sargs.keys.bitmap);
-@@ -824,19 +824,19 @@
+@@ -836,19 +836,19 @@
*/
static struct headerentry headents_for_edit[]={
{"Nickname : ", "Nickname", h_composer_abook_nick, 12, 0, NULL,
@@ -142,7 +148,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, NULL,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE}
-@@ -951,7 +951,7 @@
+@@ -963,7 +963,7 @@
pbuf.canceltest = warped ? pico_cancel_for_adrbk_edit
: pico_cancel_for_adrbk_take;
pbuf.expander = expand_addrs_for_pico;
@@ -151,7 +157,7 @@
pbuf.resize = resize_for_pico;
pbuf.winch_cleanup = winch_cleanup;
pbuf.suspend = do_suspend;
-@@ -967,7 +967,7 @@
+@@ -979,7 +979,7 @@
pbuf.browse_help = h_composer_browse;
pbuf.attach_help = h_composer_ctrl_j;
pbuf.composer_help = h_composer;
@@ -160,7 +166,7 @@
readonly ? 'V' : islower((unsigned char)(*cmd))
? toupper((unsigned char)*cmd)
: *cmd,
-@@ -1559,12 +1559,12 @@
+@@ -1574,12 +1574,12 @@
ps_global->redrawer = redraw_pico;
fix_windsize(ps_global);
@@ -175,7 +181,7 @@
break;
}
-@@ -1588,8 +1588,8 @@
+@@ -1603,8 +1603,8 @@
char *rstr = NULL;
void (*redraw)() = ps_global->redrawer;
@@ -186,7 +192,7 @@
ps_global->redrawer = redraw_pico;
fix_windsize(ps_global);
-@@ -1612,7 +1612,7 @@
+@@ -1627,7 +1627,7 @@
pico_cancel_for_adrbk_take(redraw_pico)
void (*redraw_pico)();
{
@@ -195,7 +201,7 @@
}
-@@ -1620,7 +1620,7 @@
+@@ -1635,7 +1635,7 @@
pico_cancel_for_adrbk_edit(redraw_pico)
void (*redraw_pico)();
{
@@ -204,7 +210,7 @@
}
-@@ -1737,16 +1737,16 @@
+@@ -1752,16 +1752,16 @@
if(ps_global->readonly_pinerc){
q_status_message1(SM_ORDER, 0, 3,
@@ -225,7 +231,7 @@
return -1;
}
-@@ -1796,7 +1796,7 @@
+@@ -1811,7 +1811,7 @@
pbuf.browse_help = h_composer_browse;
pbuf.attach_help = h_composer_ctrl_j;
pbuf.composer_help = h_composer;
@@ -234,7 +240,7 @@
pbuf.pine_anchor = set_titlebar(titlebar,
ps_global->mail_stream,
ps_global->context_current,
-@@ -1916,8 +1916,8 @@
+@@ -1932,8 +1932,8 @@
if(editor_result & COMP_CANCEL){
ret = -1;
q_status_message1(SM_ORDER, 0, 3,
@@ -245,7 +251,7 @@
}
else if(editor_result & COMP_EXIT){
if(!strcmp(server, def_serv ? def_serv : "") &&
-@@ -1925,8 +1925,8 @@
+@@ -1941,8 +1941,8 @@
!strcmp(nickname, def_nick ? def_nick : "")){
ret = -1;
q_status_message1(SM_ORDER, 0, 3,
@@ -256,7 +262,7 @@
}
else{
-@@ -1993,8 +1993,8 @@
+@@ -2009,8 +2009,8 @@
if(*tmp == '\0'){
q_status_message1(SM_ORDER, 0, 3,
@@ -267,7 +273,7 @@
ret = -1;
goto get_out;
}
-@@ -2019,8 +2019,8 @@
+@@ -2035,8 +2035,8 @@
if(set_variable_list(global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK,
new_list, TRUE)){
q_status_message1(SM_ORDER, 0, 3,
@@ -278,7 +284,7 @@
set_current_val(&vars[global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK],
TRUE, FALSE);
-@@ -2191,7 +2191,7 @@
+@@ -2209,7 +2209,7 @@
if(ps_global->readonly_pinerc){
if(err)
@@ -287,7 +293,7 @@
return -1;
}
-@@ -2208,10 +2208,10 @@
+@@ -2226,10 +2226,10 @@
if(err){
if(pab->type & GLOBAL)
*err =
@@ -300,7 +306,7 @@
}
return -1;
-@@ -2264,8 +2264,8 @@
+@@ -2282,8 +2282,8 @@
if(cnt > 1){
static ESCKEY_S opts[] = {
@@ -311,7 +317,7 @@
{-1, 0, NULL, NULL}};
sprintf(tmp,
-@@ -2283,7 +2283,7 @@
+@@ -2301,7 +2301,7 @@
case 'x':
if(err)
@@ -320,7 +326,7 @@
return -1;
}
-@@ -2294,7 +2294,7 @@
+@@ -2312,7 +2312,7 @@
case 'n':
case 'x':
if(err)
@@ -329,7 +335,7 @@
return -1;
-@@ -2339,7 +2339,7 @@
+@@ -2357,7 +2357,7 @@
case 'x': /* Cancel */
default:
if(err)
@@ -338,7 +344,7 @@
return -1;
}
-@@ -2359,7 +2359,7 @@
+@@ -2377,7 +2377,7 @@
case 'x':
default:
if(err)
@@ -347,7 +353,7 @@
return -1;
-@@ -2420,7 +2420,7 @@
+@@ -2438,7 +2438,7 @@
case 'n':
default:
if(err)
@@ -356,7 +362,7 @@
return -1;
}
-@@ -2559,7 +2559,7 @@
+@@ -2577,7 +2577,7 @@
/* this also frees old variable contents for us */
if(set_variable_list(varnum, new_list, TRUE)){
if(err)
@@ -365,7 +371,7 @@
set_current_val(&vars[varnum], TRUE, FALSE);
free_list_array(&new_list);
-@@ -2626,7 +2626,7 @@
+@@ -2644,7 +2644,7 @@
if(ps_global->readonly_pinerc){
if(msg)
@@ -374,7 +380,7 @@
return -1;
}
-@@ -2636,12 +2636,12 @@
+@@ -2654,12 +2654,12 @@
opts[i].ch = 'u';
opts[i].rval = 'u';
opts[i].name = "U";
@@ -389,7 +395,7 @@
opts[i].ch = -1;
deefault = 'u';
-@@ -2649,7 +2649,7 @@
+@@ -2667,7 +2667,7 @@
if(pab->type & GLOBAL){
if(vars[V_GLOB_ADDRBOOK].is_fixed){
if(msg)
@@ -398,7 +404,7 @@
return -1;
}
-@@ -2669,7 +2669,7 @@
+@@ -2687,7 +2687,7 @@
else{
if(vars[V_ADDRESSBOOK].is_fixed){
if(msg)
@@ -407,7 +413,7 @@
return -1;
}
-@@ -2708,7 +2708,7 @@
+@@ -2726,7 +2726,7 @@
if(rv == 'x'){
if(msg)
@@ -416,7 +422,7 @@
return -1;
}
-@@ -2751,7 +2751,7 @@
+@@ -2769,7 +2769,7 @@
enum {NotSet, Pers, Glob, Empty} type1, type2;
int i, j, retval = -1;
struct variable *vars = ps_global->vars;
@@ -425,7 +431,7 @@
dprint(5, (debugfile, "- do_the_shuffle(%d, %d) -\n", anum1, anum2));
-@@ -2765,7 +2765,7 @@
+@@ -2783,7 +2783,7 @@
if(type1 == Empty){
if(msg)
*msg =
@@ -434,7 +440,7 @@
return(retval);
}
-@@ -2782,14 +2782,14 @@
+@@ -2800,14 +2800,14 @@
if((type1 == Pers || type2 == Pers) && vars[V_ADDRESSBOOK].is_fixed){
if(msg)
@@ -451,7 +457,7 @@
return(retval);
}
-@@ -3261,7 +3261,7 @@
+@@ -3312,7 +3312,7 @@
AdrBk_Entry *abe;
VCARD_INFO_S *vinfo;
static ESCKEY_S ab_export_opts[] = {
@@ -460,7 +466,7 @@
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL}};
static ESCKEY_S vcard_or_addresses[] = {
-@@ -3284,7 +3284,7 @@
+@@ -3335,7 +3335,7 @@
switch(i){
case 'x':
@@ -469,7 +475,7 @@
return(ret);
case 'a':
-@@ -3313,7 +3313,7 @@
+@@ -3364,7 +3364,7 @@
ab_export_opts[++r].ch = ctrl('I');
ab_export_opts[r].rval = 11;
ab_export_opts[r].name = "TAB";
@@ -478,7 +484,7 @@
}
ab_export_opts[++r].ch = -1;
-@@ -3326,7 +3326,7 @@
+@@ -3377,7 +3377,7 @@
if(r < 0){
switch(r){
case -1:
@@ -487,7 +493,7 @@
break;
case -2:
-@@ -3711,7 +3711,7 @@
+@@ -3787,7 +3787,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);
@@ -496,16 +502,16 @@
goto bomb;
case 'y':
-@@ -3795,7 +3795,7 @@
+@@ -3871,7 +3871,7 @@
gf_clear_so_writec((STORE_S *) pb->contents.text.data);
-- pine_send(outgoing, &body, "FORWARDING ADDRESS BOOK ENTRY", NULL, NULL,
-+ pine_send(outgoing, &body, "轉寄地址簿項目", NULL, NULL,
+- pine_send(outgoing, &body, "FORWARDING ADDRESS BOOK ENTRY", role, NULL,
++ pine_send(outgoing, &body, "轉寄地址簿項目", role, NULL,
NULL, NULL, NULL, NULL, 0);
ps->mangled_screen = 1;
-@@ -4262,8 +4262,8 @@
+@@ -4339,8 +4339,8 @@
char tmp[200];
ACTION_LIST_S *action_list = NULL, *al;
static ESCKEY_S save_or_export[] = {
@@ -516,7 +522,7 @@
{-1, 0, NULL, NULL}};
sprintf(tmp, "Save%s to address book or Export to filesystem ? ",
-@@ -4274,7 +4274,7 @@
+@@ -4351,7 +4351,7 @@
h_ab_save_exp, RB_NORM);
switch(i){
case 'x':
@@ -525,7 +531,7 @@
return(0);
case 'e':
-@@ -4457,7 +4457,7 @@
+@@ -4534,7 +4534,7 @@
if(action_list)
fs_give((void **)&action_list);
@@ -534,7 +540,7 @@
return(ret);
}
-@@ -4638,7 +4638,7 @@
+@@ -4715,7 +4715,7 @@
q_status_message(SM_ORDER | SM_DING, 3, 4,
"Save only partially completed");
else
@@ -543,7 +549,7 @@
}
else if (how_many_to_copy + how_many_no_action -
(skip_dups ? how_many_dups : 0) > 0){
-@@ -4715,15 +4715,15 @@
+@@ -4792,15 +4792,15 @@
curopen = cur_is_open();
if(!agg && curopen){
static ESCKEY_S prt[] = {
@@ -562,7 +568,7 @@
ps_global->mangled_footer = 1;
return 0;
-@@ -4794,7 +4794,7 @@
+@@ -4871,7 +4871,7 @@
switch(want_to("Expand nicknames", 'y', 'x', h_ab_forward,
WT_NORM)){
case 'x':
@@ -571,7 +577,7 @@
ps_global->mangled_footer = 1;
return 0;
-@@ -5068,7 +5068,7 @@
+@@ -5145,7 +5145,7 @@
if(F_ON(F_CMBND_ABOOK_DISP,ps_global))
lineno = 0L - XTRA_TITLE_LINES_IN_OLD_ABOOK_DISP;
else{
@@ -580,7 +586,7 @@
as.adrbks[as.cur].nickname);
lineno = 0L;
}
-@@ -5134,7 +5134,7 @@
+@@ -5211,7 +5211,7 @@
dprint(2, (debugfile, "- ab_agg_delete -\n"));
if(agg){
@@ -589,7 +595,7 @@
ch = want_to(prompt, 'n', 'n', NO_HELP, WT_NORM);
if(ch == 'y'){
adrbk_cntr_t newelnum, flushelnum = NO_NEXT;
-@@ -5301,7 +5301,7 @@
+@@ -5378,7 +5378,7 @@
}
}
else
@@ -598,7 +604,7 @@
}
return(ret);
-@@ -5349,7 +5349,7 @@
+@@ -5426,7 +5426,7 @@
? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf,
abe->fullname, NULL)
: abe->nickname ? abe->nickname : "";
@@ -607,7 +613,7 @@
break;
case ListHead:
-@@ -5357,13 +5357,13 @@
+@@ -5434,13 +5434,13 @@
? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf,
abe->fullname, NULL)
: abe->nickname ? abe->nickname : "";
@@ -623,7 +629,7 @@
break;
}
-@@ -5462,7 +5462,7 @@
+@@ -5539,7 +5539,7 @@
return 0;
}
else{
@@ -632,7 +638,7 @@
return 0;
}
}
-@@ -5598,7 +5598,7 @@
+@@ -5675,7 +5675,7 @@
if(r == 1 || r != 10 && fbuf[0] == '\0'){
ps->mangled_footer = 1;
if(error)
@@ -641,7 +647,7 @@
return(ret);
}
-@@ -5638,7 +5638,7 @@
+@@ -5716,7 +5716,7 @@
pbuf.browse_help = h_composer_browse;
pbuf.attach_help = h_composer_ctrl_j;
pbuf.composer_help = h_composer;
@@ -650,27 +656,21 @@
ps_global->mail_stream,
ps_global->context_current,
ps_global->cur_folder,
-@@ -5895,14 +5895,14 @@
+@@ -5990,10 +5990,10 @@
- static struct key ldap_view_keys[] =
- {HELP_MENU,
+ HELP_MENU,
+ OTHER_MENU,
- {"V","ViewLink",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-- {"<","Results Index",{MC_EXIT,2,{'<',','}},KS_NONE},
+ {"V","檢視鏈結",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"<","結果索引",{MC_EXIT,2,{'<',','}},KS_NONE},
- PRYNTTXT_MENU,
+ NULL_MENU,
- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
+ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
+ {"^F","次一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
-- {"C", "ComposeTo", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER},
-+ {"C", "編修", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER},
- FWDEMAIL_MENU,
- SAVE_MENU,
- WHEREIS_MENU};
-@@ -5935,13 +5935,13 @@
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -6027,13 +6027,13 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(srcstore);
sargs.text.src = srctype;
@@ -687,7 +687,7 @@
sargs.keys.menu = &ldap_view_keymenu;
setbitmap(sargs.keys.bitmap);
-@@ -6412,7 +6412,7 @@
+@@ -6511,7 +6511,7 @@
struct headerentry *he;
void (*redraw_pico)();
{
diff --git a/chinese/pine4/files/patch-ax b/chinese/pine4/files/patch-ax
index 367d902..ebcc481 100644
--- a/chinese/pine4/files/patch-ax
+++ b/chinese/pine4/files/patch-ax
@@ -1,5 +1,5 @@
---- pine/folder.c.orig Fri Feb 5 05:47:33 1999
-+++ pine/folder.c Wed Feb 24 02:50:43 1999
+--- pine/folder.c.orig Thu Oct 14 17:19:43 1999
++++ pine/folder.c Thu Oct 14 17:19:45 1999
@@ -58,10 +58,10 @@
#include "headers.h"
@@ -34,7 +34,7 @@
#define mail_list(S, R, N) mail_list_internal(S, R, N)
-@@ -313,21 +313,21 @@
+@@ -319,15 +319,15 @@
/*
* Various screen keymenu/command binding s.
*/
@@ -54,6 +54,9 @@
-#define CIND_MENU {"I", "CurIndex", {MC_INDEX,1,{'i'}}, KS_FLDRINDEX}
+#define CIND_MENU {"I", "索引", {MC_INDEX,1,{'i'}}, KS_FLDRINDEX}
+ static struct {
+ int num_done;
+@@ -337,8 +337,8 @@
static struct key context_mgr_keys[] =
{HELP_MENU,
OTHER_MENU,
@@ -64,7 +67,7 @@
{MC_CHOICE,5,{'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
PREVC_MENU,
NEXTC_MENU,
-@@ -359,15 +359,15 @@
+@@ -370,15 +370,15 @@
static struct key context_cfg_keys[] =
{HELP_MENU,
OTHER_MENU,
@@ -84,7 +87,7 @@
WHEREIS_MENU,
HELP_MENU,
-@@ -386,9 +386,9 @@
+@@ -397,9 +397,9 @@
static struct key context_select_keys[] =
{HELP_MENU,
@@ -96,7 +99,7 @@
{MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
PREVC_MENU,
NEXTC_MENU,
-@@ -402,9 +402,9 @@
+@@ -413,9 +413,9 @@
static struct key context_fcc_keys[] =
{HELP_MENU,
@@ -108,7 +111,7 @@
{MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
PREVC_MENU,
NEXTC_MENU,
-@@ -426,23 +426,23 @@
+@@ -437,23 +437,23 @@
NEXTF_MENU,
PREVPAGE_MENU,
NEXTPAGE_MENU,
@@ -131,15 +134,15 @@
- {"%", "Print", {MC_PRINTFLDR,1,{'%'}}, KS_PRINT},
- {"Z", "ZoomMode", {MC_ZOOM,1,{'z'}}, KS_NONE},
- {";","Select",{MC_SELECT,1,{';'}},KS_SELECT},
-- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECT}};
+- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECT},
+ {"%", "列印", {MC_PRINTFLDR,1,{'%'}}, KS_PRINT},
+ {"Z", "縮放模式", {MC_ZOOM,1,{'z'}}, KS_NONE},
+ {";","選擇",{MC_SELECT,1,{';'}},KS_SELECT},
-+ {":","選擇目前的",{MC_SELCUR,1,{':'}},KS_SELECT}};
- INST_KEY_MENU(folder_km, folder_keys);
- #define KM_COL_KEY 2
- #define KM_SEL_KEY 3
-@@ -455,7 +455,7 @@
++ {":","選擇目前的",{MC_SELCUR,1,{':'}},KS_SELECT},
+
+ HELP_MENU,
+ OTHER_MENU,
+@@ -479,7 +479,7 @@
static struct key folder_sel_keys[] =
{HELP_MENU,
@@ -148,7 +151,7 @@
NULL_MENU,
{NULL, NULL, {MC_CHOICE,3,{0,ctrl('M'),ctrl('J')}},
KS_NONE},
-@@ -474,14 +474,14 @@
+@@ -498,14 +498,14 @@
static struct key folder_sub_keys[] =
{HELP_MENU,
@@ -167,7 +170,7 @@
NULL_MENU,
NULL_MENU,
WHEREIS_MENU};
-@@ -493,8 +493,8 @@
+@@ -518,8 +518,8 @@
static struct key folder_post_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -178,7 +181,7 @@
PREVF_MENU,
NEXTF_MENU,
PREVPAGE_MENU,
-@@ -537,7 +537,7 @@
+@@ -562,10 +562,10 @@
fs.agg_ops = F_ON(F_ENABLE_AGG_OPS, ps_global) != 0;
fs.relative_path = 1;
fs.f.valid = fl_val_gen;
@@ -186,8 +189,12 @@
+ fs.f.title.bar = "信件匣列表";
fs.f.title.style = FolderName;
fs.f.help.text = h_folder_maint;
- fs.f.help.title = "HELP FOR FOLDERS";
-@@ -621,12 +621,12 @@
+- fs.f.help.title = "HELP FOR FOLDERS";
++ fs.f.help.title = "信件匣列表的輔助說明";
+ fs.km = &folder_km;
+
+ if(context_isambig(ps->cur_folder)){
+@@ -646,12 +646,12 @@
mailcap_free(); /* free resources we won't be using for a while */
memset(&css, 0, sizeof(CONT_SCR_S));
@@ -202,7 +209,7 @@
css.keymenu = &c_cfg_km;
css.edit = 1;
-@@ -669,10 +669,10 @@
+@@ -694,10 +694,10 @@
fs.context = *cntxtp;
fs.combined_view = !sublist && F_ON(F_CMBND_FOLDER_DISP, ps_global) != 0;
fs.f.valid = fl_val_gen;
@@ -215,7 +222,7 @@
fs.km = &folder_sel_km;
/* If we were provided a string,
-@@ -681,7 +681,7 @@
+@@ -706,7 +706,7 @@
if(sublist && *folder && context_isambig(folder)){
if((*cntxtp)->use & CNTXT_INCMNG){
q_status_message(SM_ORDER, 0, 3,
@@ -224,7 +231,7 @@
}
else{
folder_sublist_context(folder, *cntxtp, &fake_context,
-@@ -732,10 +732,10 @@
+@@ -757,10 +757,10 @@
fs.context = *cntxtp;
fs.combined_view = F_ON(F_CMBND_FOLDER_DISP, ps_global) != 0;
fs.f.valid = fl_val_gen;
@@ -237,7 +244,7 @@
fs.km = &folder_sel_km;
/* If we were provided a string,
-@@ -744,7 +744,7 @@
+@@ -769,7 +769,7 @@
if(sublist && *folder && context_isambig(folder)){
if((*cntxtp)->use & CNTXT_INCMNG){
q_status_message(SM_ORDER, 0, 3,
@@ -246,7 +253,7 @@
}
else{
folder_sublist_context(folder, *cntxtp, &fake_context,
-@@ -921,7 +921,7 @@
+@@ -947,7 +947,7 @@
/* leave (*new_dir)->ref == NULL */
}
@@ -255,7 +262,7 @@
(*new_dir)->desc = cpystr(tmp_20k_buf);
}
-@@ -1025,12 +1025,12 @@
+@@ -1147,12 +1147,12 @@
CONT_SCR_S css;
memset(&css, 0, sizeof(CONT_SCR_S));
@@ -270,7 +277,7 @@
css.keymenu = km;
css.edit = edit_config;
-@@ -1102,7 +1102,7 @@
+@@ -1224,7 +1224,7 @@
pbuf.browse_help = h_composer_browse;
pbuf.attach_help = h_composer_ctrl_j;
pbuf.composer_help = h_composer;
@@ -279,7 +286,7 @@
pbuf.pine_anchor = set_titlebar(tmp, ps_global->mail_stream,
ps_global->context_current,
ps_global->cur_folder,ps_global->msgmap,
-@@ -1347,10 +1347,10 @@
+@@ -1473,10 +1473,10 @@
else
exists = (i & FEX_ISDIR);
@@ -293,7 +300,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 */
-@@ -1382,7 +1382,7 @@
+@@ -1508,7 +1508,7 @@
char *rstr = NULL;
void (*redraw)() = ps_global->redrawer;
#define CCA_PROMPT \
@@ -302,7 +309,7 @@
ps_global->redrawer = redraw_pico;
fix_windsize(ps_global);
-@@ -1505,7 +1505,7 @@
+@@ -1623,7 +1623,7 @@
FSTATE_S *fs;
{
if(f->subscribed){
@@ -311,7 +318,7 @@
FLDR_NAME(f));
return(0);
}
-@@ -1549,7 +1549,7 @@
+@@ -1667,7 +1667,7 @@
}
else{
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -320,7 +327,7 @@
return(NULL);
}
-@@ -1563,7 +1563,7 @@
+@@ -1688,7 +1688,7 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(screen_text);
sargs.text.src = CharStar;
@@ -329,7 +336,7 @@
if(sargs.text.handles = folder_list_handle(fs, handles))
sargs.start.on = Handle;
-@@ -1875,7 +1875,7 @@
+@@ -1991,7 +1991,7 @@
else if(fp->fs->combined_view
&& (F_ON(F_CMBND_SUBDIR_DISP, ps_global)
|| !c_list->dir->prev)){
@@ -338,7 +345,7 @@
gf_puts(folder_list_center_space(emptiness, cols), pc);
len = folder_list_write(pc, c_list, -1, emptiness,
-@@ -1885,7 +1885,7 @@
+@@ -2001,7 +2001,7 @@
else if(fp->fs->combined_view
&& (F_ON(F_CMBND_SUBDIR_DISP, ps_global)
|| !c_list->dir->prev)){
@@ -347,7 +354,7 @@
gf_puts(folder_list_center_space(unexpanded, cols), pc);
len = folder_list_write(pc, c_list, -1, unexpanded,
-@@ -2092,11 +2092,11 @@
+@@ -2220,11 +2220,11 @@
q_status_message(SM_ORDER, 0, 1, LISTMODE_GRIPE);
}
else
@@ -361,7 +368,7 @@
break;
-@@ -2122,7 +2122,7 @@
+@@ -2250,7 +2250,7 @@
sparms->text.handles->h.f.index);
else
q_status_message(SM_ORDER, 0, 4,
@@ -370,7 +377,7 @@
break;
-@@ -2206,7 +2206,7 @@
+@@ -2341,7 +2341,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 0, 4,
@@ -379,16 +386,16 @@
break;
-@@ -2216,7 +2216,7 @@
+@@ -2351,7 +2351,7 @@
if(!(sparms->text.handles
&& folder_total(FOLDERS(sparms->text.handles->h.f.context)))){
q_status_message(SM_ORDER | SM_DING, 0, 4,
- "Empty folder collection. No folder to delete!");
+ "空的資料匣總集。沒有可供刪除的資料匣!");
}
- else if(delete_folder(sparms->text.handles->h.f.context,
- sparms->text.handles->h.f.index)){
-@@ -2336,7 +2336,7 @@
+ else{
+ char next_folder[MAILTMPLEN+1];
+@@ -2455,7 +2455,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 0, 4,
@@ -397,7 +404,7 @@
break;
-@@ -2352,11 +2352,11 @@
+@@ -2471,11 +2471,11 @@
if(sparms->text.handles->h.f.context->use & CNTXT_ZOOM){
sparms->text.handles->h.f.context->use &= ~CNTXT_ZOOM;
q_status_message(SM_ORDER, 0, 3,
@@ -411,7 +418,7 @@
int2string(n));
sparms->text.handles->h.f.context->use |= CNTXT_ZOOM;
}
-@@ -2376,10 +2376,10 @@
+@@ -2495,10 +2495,10 @@
}
else
q_status_message(SM_ORDER, 0, 3,
@@ -424,7 +431,7 @@
break;
-@@ -2469,7 +2469,7 @@
+@@ -2611,7 +2611,7 @@
empty++;
if(empty)
@@ -433,7 +440,7 @@
return(rv);
}
-@@ -2510,14 +2510,14 @@
+@@ -2652,14 +2652,14 @@
? sparms->text.handles->h.f.context->dir->prev
: FPROC(sparms)->fs->context->dir->prev){
sparms->keys.menu->keys[KM_COL_KEY].bind.ch[0] = 'e';
@@ -450,7 +457,7 @@
sparms->keys.menu->keys[KM_COL_KEY].bind.cmd = MC_EXIT;
}
else{
-@@ -2529,7 +2529,7 @@
+@@ -2671,7 +2671,7 @@
sparms->keys.menu->keys[KM_MAIN_KEY].bind.cmd = MC_NONE;
sparms->keys.menu->keys[KM_MAIN_KEY].bind.nch = 0;
@@ -459,7 +466,7 @@
sparms->keys.menu->keys[KM_COL_KEY].bind.cmd = MC_MAIN;
sparms->keys.menu->keys[KM_COL_KEY].bind.ch[0] = 'm';
}
-@@ -2545,7 +2545,7 @@
+@@ -2687,7 +2687,7 @@
FOLDERS(sparms->text.handles->h.f.context)))){
if(fp->isdir){
if(fp->isfolder){
@@ -468,7 +475,7 @@
menu_clear_binding(sparms->keys.menu, 'v');
menu_clear_binding(sparms->keys.menu, ctrl('M'));
menu_clear_binding(sparms->keys.menu, ctrl('J'));
-@@ -2555,7 +2555,7 @@
+@@ -2697,7 +2697,7 @@
setbitn(KM_ALTVIEW_KEY, sparms->keys.bitmap);
}
else{
@@ -477,7 +484,7 @@
menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2563,7 +2563,7 @@
+@@ -2705,7 +2705,7 @@
}
}
else{
@@ -486,7 +493,7 @@
menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2573,7 +2573,7 @@
+@@ -2715,7 +2715,7 @@
else if(FPROC(sparms)->fs->combined_view
&& sparms->text.handles && sparms->text.handles->h.f.context
&& !sparms->text.handles->h.f.context->dir->prev){
@@ -495,25 +502,25 @@
menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2616,7 +2623,7 @@
+@@ -2758,7 +2758,7 @@
? sparms->text.handles->h.f.context->dir->prev
: FPROC(sparms)->fs->context->dir->prev){
sparms->keys.menu->keys[FC_COL_KEY].name = "<";
- sparms->keys.menu->keys[FC_COL_KEY].label = "ParentDir";
+ sparms->keys.menu->keys[FC_COL_KEY].label = "上層目錄";
sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_PARENT;
- sparms->keys.menu->keys[FC_COL_KEY].bind.nch = 2;
sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = '<';
-@@ -2627,7 +2634,7 @@
+ sparms->keys.menu->keys[FC_COL_KEY].bind.ch[1] = ',';
+@@ -2774,7 +2774,7 @@
|| FPROC(sparms)->fs->context->prev)
&& !FPROC(sparms)->fs->combined_view){
sparms->keys.menu->keys[FC_COL_KEY].name = "<";
- sparms->keys.menu->keys[FC_COL_KEY].label = "ClctnList";
+ sparms->keys.menu->keys[FC_COL_KEY].label = "總集列表";
sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_COLLECTIONS;
- sparms->keys.menu->keys[FC_COL_KEY].bind.nch = 2;
sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = '<';
-@@ -2639,7 +2646,7 @@
+ sparms->keys.menu->keys[FC_COL_KEY].bind.ch[1] = ',';
+@@ -2791,7 +2791,7 @@
* turn off "ExitSelect" in first slot
*/
sparms->keys.menu->keys[FC_COL_KEY].name = "E";
@@ -522,7 +529,7 @@
sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_EXIT;
sparms->keys.menu->keys[FC_COL_KEY].bind.nch = 1;
sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = 'e';
-@@ -2651,7 +2658,7 @@
+@@ -2803,7 +2803,7 @@
FOLDERS(sparms->text.handles->h.f.context)))
&& fp->isdir){
sparms->keys.menu->keys[FC_SEL_KEY].name = ">";
@@ -531,7 +538,7 @@
menu_clear_binding(sparms->keys.menu, 's');
menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
menu_add_binding(sparms->keys.menu, '>', MC_CHOICE);
-@@ -2659,7 +2666,7 @@
+@@ -2813,7 +2813,7 @@
}
else{
sparms->keys.menu->keys[FC_SEL_KEY].name = "S";
@@ -540,7 +547,7 @@
menu_clear_binding(sparms->keys.menu, 'v');
menu_clear_binding(sparms->keys.menu, '>');
menu_clear_binding(sparms->keys.menu, '.');
-@@ -2695,14 +2702,14 @@
+@@ -2851,14 +2851,14 @@
if(FPROC(sparms)->fs->list_cntxt){
clrbitn(SB_LIST_KEY, sparms->keys.bitmap);
sparms->keys.menu->keys[SB_SEL_KEY].name = "X";
@@ -557,7 +564,7 @@
sparms->keys.menu->keys[SB_SEL_KEY].bind.cmd = MC_CHOICE;
sparms->keys.menu->keys[SB_SEL_KEY].bind.ch[0] = 's';
}
-@@ -2778,7 +2785,7 @@
+@@ -2934,7 +2934,7 @@
default :
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -566,7 +573,7 @@
return(0);
}
}
-@@ -2792,7 +2799,7 @@
+@@ -2948,7 +2948,7 @@
*/
switch(q){
case 'x': /* cancel */
@@ -575,7 +582,7 @@
return(0);
case 'c' : /* toggle current's selected state */
-@@ -2804,10 +2811,10 @@
+@@ -2959,10 +2959,10 @@
for(total = i = 0; i < n; i++)
folder_entry(i, FOLDERS(context))->selected = old_tot == 0;
@@ -589,7 +596,7 @@
return(1);
case 't' : /* Text */
-@@ -2824,7 +2831,7 @@
+@@ -2979,7 +2979,7 @@
default :
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -598,7 +605,7 @@
return(0);
}
-@@ -2852,34 +2859,30 @@
+@@ -3007,34 +3007,30 @@
if(!(diff = (total = selected_folders(context)) - old_tot)){
if(narrow)
@@ -645,7 +652,7 @@
return(1);
}
-@@ -2995,9 +2998,9 @@
+@@ -3221,9 +3217,9 @@
fp->prev = context->dir;
fp->status |= CNTXT_SUBDIR;
context->dir = fp;
@@ -657,7 +664,7 @@
rv++;
}
else
-@@ -3016,7 +3019,7 @@
+@@ -3242,7 +3238,7 @@
char *p;
/* Provide context in new collection header */
@@ -666,7 +673,7 @@
((p = strstr(cntxt->context, "%s")) && !*(p+2)
&& !strncmp(fdp->ref, cntxt->context, p - cntxt->context))
? fdp->ref + (p - cntxt->context) : fdp->ref);
-@@ -3062,12 +3065,12 @@
+@@ -3289,12 +3285,12 @@
context->dir = fp;
if(fp->status & CNTXT_SUBDIR)
@@ -681,7 +688,7 @@
rv++;
}
-@@ -3258,12 +3261,12 @@
+@@ -3483,12 +3479,12 @@
if(context->use & CNTXT_INCMNG){
char inbox_host[MAXPATH], *beg, *end = NULL;
ESCKEY_S *special_key;
@@ -696,7 +703,7 @@
return(FALSE);
}
-@@ -3285,7 +3288,7 @@
+@@ -3510,7 +3506,7 @@
else
special_key = NULL;
@@ -705,7 +712,7 @@
help = NO_HELP;
while(1){
int flags = OE_APPEND_CURRENT;
-@@ -3303,7 +3306,7 @@
+@@ -3528,7 +3524,7 @@
}
else if(rc == 1){
q_status_message(SM_ORDER,0,2,
@@ -714,7 +721,7 @@
return(FALSE);
}
else if(rc == 0)
-@@ -3313,7 +3316,7 @@
+@@ -3538,7 +3534,7 @@
if(offset = strlen(add_folder)){ /* must be host for incoming */
int i;
@@ -723,7 +730,7 @@
for(i = offset;i >= 0; i--)
add_folder[i+1] = add_folder[i];
-@@ -3322,7 +3325,7 @@
+@@ -3547,7 +3543,7 @@
add_folder[++offset] = '\0'; /* +2, total */
}
else
@@ -732,7 +739,7 @@
help = NO_HELP;
while(1){
-@@ -3330,14 +3333,14 @@
+@@ -3555,14 +3551,14 @@
p = NULL;
if(isdir){
@@ -751,7 +758,7 @@
}
flags = OE_APPEND_CURRENT;
-@@ -3351,10 +3354,10 @@
+@@ -3576,10 +3572,10 @@
if(!ps_global->show_dot_names && add_folder[offset] == '.'){
if(cnt++ <= 0)
q_status_message(SM_ORDER,3,3,
@@ -764,7 +771,7 @@
feature_list_name(F_ENABLE_DOT_FOLDERS));
display_message(NO_OP_COMMAND);
-@@ -3373,7 +3376,7 @@
+@@ -3598,7 +3594,7 @@
}
else if(*p == context->dir->delim){
q_status_message(SM_ORDER|SM_DING, 3, 3,
@@ -773,7 +780,7 @@
display_message('X');
continue;
}
-@@ -3395,7 +3398,7 @@
+@@ -3620,7 +3616,7 @@
: NO_HELP;
}
else if(rc == 1 || add_folder[0] == '\0') {
@@ -782,7 +789,7 @@
return(FALSE);
}
}
-@@ -3414,7 +3417,7 @@
+@@ -3639,7 +3635,7 @@
help = NO_HELP;
if(context->use & CNTXT_INCMNG){
@@ -791,7 +798,7 @@
while(1){
int flags = OE_APPEND_CURRENT;
-@@ -3435,7 +3438,7 @@
+@@ -3660,7 +3656,7 @@
}
else if(rc == 1 || (rc != 3 && !*nickname)){
q_status_message(SM_ORDER,0,2,
@@ -800,7 +807,7 @@
return(FALSE);
}
}
-@@ -3450,7 +3453,7 @@
+@@ -3675,7 +3671,7 @@
f = folder_entry(offset, FOLDERS(context));
if(!strucmp(FLDR_NAME(f), nickname[0] ? nickname : add_folder)){
q_status_message1(SM_ORDER | SM_DING, 0, 3,
@@ -809,7 +816,7 @@
nickname[0] ? nickname : add_folder);
return(FALSE);
}
-@@ -3503,18 +3506,18 @@
+@@ -3728,18 +3724,18 @@
if(nickname[0])
strcpy(add_folder, nickname); /* known by new name */
@@ -832,7 +839,7 @@
add_folder);
return(return_val != NULL);
-@@ -3553,13 +3556,13 @@
+@@ -3778,13 +3774,13 @@
subscribe_keys[i = 0].ch = ctrl('T');
subscribe_keys[i].rval = 12;
subscribe_keys[i].name = "^T";
@@ -848,7 +855,7 @@
}
subscribe_keys[i].ch = -1;
-@@ -3620,7 +3623,7 @@
+@@ -3845,7 +3841,7 @@
}
else{
q_status_message(SM_ORDER, 0, 2,
@@ -857,7 +864,7 @@
continue;
}
-@@ -3673,10 +3676,10 @@
+@@ -3898,10 +3894,10 @@
else{
if(rc == 12)
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -870,7 +877,7 @@
folder);
free_folder_list(&subscribe_cntxt);
-@@ -3721,7 +3724,7 @@
+@@ -3946,7 +3942,7 @@
if(rc < 0){
folder[0] = '\0'; /* make sure not to return partials */
if(rc == -1)
@@ -879,7 +886,7 @@
}
else{
if(folders){ /*------ Actually do the subscription -----*/
-@@ -3743,7 +3746,7 @@
+@@ -3968,7 +3964,7 @@
*/
q_status_message1(errors ?SM_INFO : SM_ORDER,
errors ? 0 : 3, 3,
@@ -888,7 +895,7 @@
(char *) flp->name);
errors++;
}
-@@ -3767,13 +3770,13 @@
+@@ -3992,13 +3988,13 @@
if(n == 0)
q_status_message(SM_ORDER | SM_DING, 3, 5,
@@ -905,7 +912,7 @@
errors ? comatose((long)errors) : "");
free_strlist(&folders);
-@@ -3782,7 +3785,7 @@
+@@ -4007,7 +4003,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,
@@ -914,7 +921,7 @@
}
else if(ALL_FOUND(cntxt)){
/*---- Update the screen display data structures -----*/
-@@ -3796,7 +3799,7 @@
+@@ -4021,7 +4017,7 @@
}
if(folder[0])
@@ -923,7 +930,7 @@
}
free_fdir(&subscribe_cntxt.dir, 1);
-@@ -3837,19 +3840,19 @@
+@@ -4062,19 +4058,19 @@
if(NEWS_TEST(context)){
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -946,7 +953,7 @@
new_f->parent
? new_f->nickname
: ps_global->inbox_name);
-@@ -3865,11 +3868,11 @@
+@@ -4090,11 +4086,11 @@
ren_cur = strcmp(folder, ps_global->cur_folder) == 0;
@@ -961,7 +968,7 @@
help = NO_HELP;
strcpy(new_name, folder);
while(1) {
-@@ -3890,10 +3893,10 @@
+@@ -4115,10 +4111,10 @@
if(!ps_global->show_dot_names && *new_name == '.'){
if(cnt++ <= 0)
q_status_message(SM_ORDER,3,3,
@@ -974,7 +981,7 @@
feature_list_name(F_ENABLE_DOT_FOLDERS));
display_message(NO_OP_COMMAND);
-@@ -3902,13 +3905,13 @@
+@@ -4127,13 +4123,13 @@
if(folder_index(new_name, context, FI_ANY) >= 0){
q_status_message1(SM_ORDER, 3, 3,
@@ -990,7 +997,7 @@
ps_global->inbox_name);
display_message(NO_OP_COMMAND);
continue;
-@@ -3931,7 +3934,7 @@
+@@ -4156,7 +4152,7 @@
if(rc == 1
|| !(*new_name || (context->use & CNTXT_INCMNG))
|| !strcmp(new_name, folder)){
@@ -999,7 +1006,7 @@
return(0);
}
-@@ -4012,7 +4015,7 @@
+@@ -4237,7 +4233,7 @@
/* renaming sent-mail or saved-messages */
if(context_create(context, NULL, folder)){
q_status_message3(SM_ORDER,0,3,
@@ -1008,7 +1015,7 @@
folder, new_name,
pretty_fn(
(strcmp(ps_global->VAR_DEFAULT_SAVE_FOLDER,
-@@ -4023,7 +4026,7 @@
+@@ -4248,7 +4244,7 @@
}
else{
q_status_message1(SM_ORDER | SM_DING, 3, 4,
@@ -1017,7 +1024,7 @@
dprint(2, (debugfile, "Error creating \"%s\" in %s context\n",
folder, context->context));
-@@ -4031,7 +4034,7 @@
+@@ -4256,7 +4252,7 @@
}
else
q_status_message2(SM_ORDER, 0, 3,
@@ -1026,7 +1033,7 @@
pretty_fn(folder), pretty_fn(new_name));
free_folder_list(context);
-@@ -4068,7 +4071,7 @@
+@@ -4294,7 +4290,7 @@
int ret, close_opened = 0, blast_folder = 1;
if(NEWS_TEST(context)){
@@ -1035,7 +1042,7 @@
folder = folder_entry(index, FOLDERS(context))->name;
/* 4 is strlen("%.*s") */
-@@ -4090,7 +4093,7 @@
+@@ -4316,7 +4312,7 @@
(void) context_apply(tmp_20k_buf, context, folder);
if(!mail_unsubscribe(NULL, tmp_20k_buf)){
q_status_message1(SM_ORDER | SM_DING, 3, 3,
@@ -1044,7 +1051,7 @@
return(0);
}
-@@ -4107,12 +4110,12 @@
+@@ -4333,12 +4329,12 @@
if(ps_global->readonly_pinerc && (context->use & CNTXT_INCMNG)){
q_status_message(SM_ORDER,3,5,
@@ -1059,7 +1066,7 @@
return(0);
}
else if(context == ps_global->context_current
-@@ -4127,7 +4130,7 @@
+@@ -4353,7 +4349,7 @@
if(ret){
q_status_message1(SM_ORDER | SM_DING, 3, 4,
@@ -1068,7 +1075,7 @@
folder);
return(0);
}
-@@ -4138,19 +4141,19 @@
+@@ -4364,19 +4360,19 @@
*/
if(folder_index(folder, context, FI_FOLDER) >= 0
&& (ret = want_to(DIR_FOLD_PMT,'n','x',NO_HELP,WT_NORM)) != 'y'){
@@ -1093,7 +1100,7 @@
switch(radio_buttons(DELF_PROMPT, -FOOTER_ROWS(ps_global),
delf_opts,'n','x',NO_HELP,RB_NORM)){
-@@ -4159,7 +4162,7 @@
+@@ -4385,7 +4381,7 @@
break;
case 'x' :
@@ -1102,7 +1109,7 @@
return(0);
default :
-@@ -4167,13 +4170,13 @@
+@@ -4393,13 +4389,13 @@
}
}
else{
@@ -1121,7 +1128,7 @@
return(0);
}
}
-@@ -4216,13 +4219,13 @@
+@@ -4444,13 +4440,13 @@
/*
* BUG: what if sent-mail or saved-messages????
*/
@@ -1138,7 +1145,7 @@
if(context->use & CNTXT_INCMNG){
-@@ -4299,7 +4302,7 @@
+@@ -4539,7 +4535,7 @@
int flags;
pat[0] = '\0';
@@ -1147,7 +1154,7 @@
while(1){
flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP;
-@@ -4317,7 +4320,7 @@
+@@ -4557,7 +4553,7 @@
return(1);
case 1 :
@@ -1156,7 +1163,7 @@
default :
return(0);
-@@ -4394,7 +4397,7 @@
+@@ -4629,7 +4625,7 @@
return(1);
}
@@ -1165,7 +1172,7 @@
return(0);
}
-@@ -4427,7 +4430,7 @@
+@@ -4662,7 +4658,7 @@
if(!strucmp(folder = f->name, ps_global->inbox_name))
return(FEX_ISFILE);
@@ -1174,7 +1181,7 @@
we_cancel = busy_alarm(1, tmp, NULL, 0);
mm_list_info = &ldata; /* tie down global reference */
-@@ -4571,7 +4574,7 @@
+@@ -4800,7 +4796,7 @@
return(1);
}
@@ -1183,7 +1190,7 @@
return(0);
}
-@@ -4593,7 +4596,7 @@
+@@ -4822,7 +4818,7 @@
while(1){
flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP;
sprintf(number, "%ld", *count);
@@ -1192,7 +1199,7 @@
r = optionally_enter(number, -FOOTER_ROWS(ps_global), 0, 31,
prompt, sel_num_opt, NO_HELP, &flags);
switch (r){
-@@ -4602,7 +4605,7 @@
+@@ -4831,7 +4827,7 @@
break;
else if((*count = atol(number)) < 0L)
q_status_message(SM_ORDER, 3, 3,
@@ -1201,7 +1208,7 @@
else
return(1); /* success */
-@@ -4763,7 +4766,7 @@
+@@ -4992,7 +4988,7 @@
for(; i >= 0; i--)
folder_entry(i, FOLDERS(context))->scanned = 0;
@@ -1210,7 +1217,7 @@
rv = 0;
break;
}
-@@ -5712,7 +5715,7 @@
+@@ -5937,7 +5933,7 @@
if(p = context_digest(c_string, dcontext, host, rcontext, view)){
q_status_message2(SM_ORDER | SM_DING, 3, 4,
@@ -1219,7 +1226,7 @@
fs_give((void **) &c_string);
if(nickname)
fs_give((void **)&nickname);
-@@ -5753,14 +5756,14 @@
+@@ -5978,14 +5974,14 @@
/* fix up label */
if(NEWS_TEST(c)){
@@ -1238,7 +1245,7 @@
(*host) ? host : "", p ? p - rcontext : 0,
rcontext, (p && (p - rcontext) > 0) ? "" : "home directory");
}
-@@ -6986,7 +6989,7 @@
+@@ -7225,7 +7221,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-ay b/chinese/pine4/files/patch-ay
index 9471f16..5ce90a7 100644
--- a/chinese/pine4/files/patch-ay
+++ b/chinese/pine4/files/patch-ay
@@ -1,13 +1,13 @@
---- pine/help.c.orig Thu Jan 7 03:50:55 1999
-+++ pine/help.c Tue Feb 23 15:27:01 1999
+--- pine/help.c.orig Wed Sep 15 04:31:21 1999
++++ pine/help.c Thu Oct 14 11:43:45 1999
@@ -53,12 +53,12 @@
{NULL,NULL,{MC_EXIT,1,{'e'}}, KS_EXITMODE},
{NULL,NULL,{MC_EXIT,1,{'e'}}, KS_EXITMODE},
{NULL,NULL,{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一連結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","次一連結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
++ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
++ {"^F","次一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
PREVPAGE_MENU,
NEXTPAGE_MENU,
PRYNTMSG_MENU,
@@ -25,16 +25,16 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -262,7 +262,7 @@
+@@ -263,7 +263,7 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(store);
sargs.text.src = CharStar;
- sargs.text.desc = "help text";
+ sargs.text.desc = "輔助說明文字";
- sargs.text.handles = handles;
- if(!(sargs.bar.title = title)){
- if(!struncmp(shown_text[0], "<html>", 6)){
-@@ -290,7 +290,7 @@
+ if(sargs.text.handles = handles)
+ while(sargs.text.handles->type == URL
+ && !sargs.text.handles->h.url.path
+@@ -296,7 +296,7 @@
}
if(!sargs.bar.title)
@@ -43,7 +43,7 @@
}
sargs.bar.style = TextPercent;
-@@ -307,18 +307,18 @@
+@@ -313,18 +313,18 @@
setbitmap(sargs.keys.bitmap);
if(flags & HLPD_FROMHELP){
km.keys[HLP_EXIT_KEY].name = "P";
@@ -65,7 +65,7 @@
km.keys[HLP_EXIT_KEY].bind.cmd = MC_FINISH;
km.keys[HLP_EXIT_KEY].bind.ch[0] = 'p';
-@@ -327,12 +327,12 @@
+@@ -333,12 +333,12 @@
}
else{
km.keys[HLP_EXIT_KEY].name = "E";
@@ -80,16 +80,16 @@
km.keys[HLP_SUBEXIT_KEY].bind.cmd = MC_HELP;
km.keys[HLP_SUBEXIT_KEY].bind.ch[0] = '?';
}
-@@ -492,7 +492,7 @@
+@@ -507,7 +507,7 @@
}
sparms->keys.menu->keys[HLP_VIEW_HANDLE].name = "V";
- sparms->keys.menu->keys[HLP_VIEW_HANDLE].label = "[View Link]";
-+ sparms->keys.menu->keys[HLP_VIEW_HANDLE].label = "[檢視連結]";
++ sparms->keys.menu->keys[HLP_VIEW_HANDLE].label = "[檢視鏈結]";
}
}
-@@ -543,7 +543,7 @@
+@@ -558,7 +558,7 @@
print_text(NEWLINE);
if(error = gf_pipe(helper_getc, print_char))
@@ -98,7 +98,7 @@
print_char(ctrl('L')); /* new page. */
}
-@@ -573,7 +573,7 @@
+@@ -588,7 +588,7 @@
#endif
if(ps_global->intr_pending){
q_status_message(SM_ORDER, 3, 3,
@@ -107,7 +107,7 @@
break;
}
-@@ -962,7 +962,7 @@
+@@ -977,7 +977,7 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = tmp_text;
sargs.text.src = CharStar;
@@ -116,7 +116,7 @@
sargs.bar.title = title;
sargs.start.on = LastPage;
-@@ -1321,7 +1321,7 @@
+@@ -1336,7 +1336,7 @@
#endif
}
else if(ch == 'x'){
@@ -125,7 +125,7 @@
return(-1);
}
}
-@@ -1448,13 +1448,13 @@
+@@ -1463,13 +1463,13 @@
if(in_handle){
hp_menu[++i].type = tQueue;
hp_menu[i].label.style = lNormal;
@@ -141,7 +141,7 @@
hp_menu[i].data.val = 'E';
hp_menu[++i].type = tTail;
-@@ -1479,18 +1479,18 @@
+@@ -1494,18 +1494,18 @@
if(in_handle){
hp_menu[++i].type = tQueue;
hp_menu[i].label.style = lNormal;
diff --git a/chinese/pine4/files/patch-az b/chinese/pine4/files/patch-az
index 175b6bb..1782f39 100644
--- a/chinese/pine4/files/patch-az
+++ b/chinese/pine4/files/patch-az
@@ -1,6 +1,6 @@
---- 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 @@
+--- pine/init.c.orig Sat Oct 2 07:54:14 1999
++++ pine/init.c Thu Oct 14 13:35:02 1999
+@@ -339,7 +339,7 @@
/*----------------------------------------------------------------------
These are the variables that control a number of pine functions. They
@@ -9,9 +9,9 @@
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);
+@@ -660,6 +660,9 @@
+ GLO_NORM_FORE_COLOR = cpystr(colorx(DEFAULT_NORM_FORE));
+ GLO_NORM_BACK_COLOR = cpystr(colorx(DEFAULT_NORM_BACK));
#endif
+
+ F_TURN_ON(F_TCAP_WINS,ps);
diff --git a/chinese/pine4/files/patch-ba b/chinese/pine4/files/patch-ba
index 85e3586..d69702e 100644
--- a/chinese/pine4/files/patch-ba
+++ b/chinese/pine4/files/patch-ba
@@ -1,6 +1,6 @@
---- pine/mailcmd.c.orig Thu Feb 4 10:16:45 1999
-+++ pine/mailcmd.c Wed Feb 24 21:29:19 1999
-@@ -109,39 +109,39 @@
+--- pine/mailcmd.c.orig Tue Oct 12 06:13:50 1999
++++ pine/mailcmd.c Thu Oct 14 13:29:28 1999
+@@ -115,39 +115,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},
-@@ -151,24 +151,24 @@
+@@ -157,24 +157,24 @@
static char *sel_flag =
@@ -96,34 +96,42 @@
{ctrl('W'), 14, "^W", "Toggle When"},
{KEY_UP, 12, "", ""},
{KEY_DOWN, 13, "", ""},
-@@ -178,18 +178,18 @@
+@@ -183,23 +183,23 @@
+
static char *sel_text =
- #ifdef RECIPIENT
- "Select based on To, From, Cc, Recip, Subject fields or All message text ? ";
+ "選擇以 收件人,寄件人,副本,領受者,主題 等欄位為主,或所有的訊息文字?";
- #else /* RECIPIENT */
-- "Select based on To, From, Cc, Subject fields or All message text ? ";
-+ "選擇以 收件人,寄件人,副本,主題 等欄位為主,或所有的訊息文字?";
- #endif /* RECIPIENT */
+ static char *sel_not_text =
+- "Select based on NOT To, From, Cc, Recip, Subject fields or All message text ? ";
++ "選擇「不」以 收件人,寄件人,副本,領受者,主題 等欄位為主,或所有的訊息文字?";
static ESCKEY_S sel_text_opt[] = {
- {'f', 'f', "F", "From"},
- {'s', 's', "S", "Subject"},
- {'t', 't', "T", "To"},
- {'a', 'a', "A", "All Text"},
- {'c', 'c', "C", "Cc"},
+- {'!', '!', "!", "Not"},
+- {'r', 'r', "R", "Recipient"},
+- {'p', 'p', "P", "Participant"},
+ {'f', 'f', "F", "寄件人"},
+ {'s', 's', "S", "主題"},
+ {'t', 't', "T", "收件人"},
+ {'a', 'a', "A", "所有的訊息文字"},
+ {'c', 'c', "C", "副本"},
- #ifdef RECIPIENT
-- {'r', 'r', "R", "Recipient"},
++ {'!', '!', "!", "非"},
+ {'r', 'r', "R", "領受者"},
- #endif /* RECIPIENT */
++ {'p', 'p', "P", "關係者"},
{-1, 0, NULL, NULL}
};
-@@ -243,7 +243,7 @@
+
+ static char *select_num =
+- "Enter comma-delimited list of numbers (dash between ranges): ";
++ "輸入以逗點分隔的數字串列(範圍以破折號區分):";
+
+
+ /*----------------------------------------------------------------------
+@@ -248,7 +248,7 @@
case MC_HELP :
if(state->nr_mode) {
q_status_message(SM_ORDER, 0, 3,
@@ -132,7 +140,7 @@
break;
}
-@@ -272,7 +272,7 @@
+@@ -277,7 +277,7 @@
/*------- View message text --------*/
case MC_VIEW_TEXT :
@@ -141,7 +149,7 @@
state->next_screen = mail_view_screen;
#if defined(DOS) && !defined(WIN32)
flush_index_cache(); /* save room on PC */
-@@ -296,10 +296,10 @@
+@@ -301,10 +301,10 @@
mn_dec_cur(stream, msgmap);
if(i == mn_get_cur(msgmap))
q_status_message(SM_ORDER, 0, 2,
@@ -154,7 +162,7 @@
}
break;
-@@ -311,7 +311,7 @@
+@@ -316,7 +316,7 @@
&& (i = mn_get_cur(msgmap)) < mn_get_total(msgmap)){
mn_inc_cur(stream, msgmap);
if(i == mn_get_cur(msgmap))
@@ -163,7 +171,7 @@
}
else{
prompt[0] = '\0';
-@@ -328,7 +328,7 @@
+@@ -333,7 +333,7 @@
strcat(prompt, ". No more folders to TAB to.");
}
@@ -172,7 +180,7 @@
prompt[0] ? prompt : NULL);
if(!IS_NEWS(stream))
-@@ -475,9 +475,9 @@
+@@ -511,9 +511,9 @@
}
}
else
@@ -184,7 +192,7 @@
break;
}
-@@ -494,9 +494,9 @@
+@@ -530,9 +530,9 @@
*/
if(F_OFF(F_AUTO_OPEN_NEXT_UNREAD, state)){
static ESCKEY_S next_opt[] = {
@@ -197,7 +205,7 @@
{-1, 0, NULL, NULL}
};
-@@ -522,7 +522,7 @@
+@@ -558,7 +558,7 @@
else
any_messages(NULL,
(mn_get_total(msgmap) > 0L)
@@ -206,7 +214,7 @@
: NULL,
NULL);
}
-@@ -540,7 +540,7 @@
+@@ -576,7 +576,7 @@
* global "zoom mode" flag to suppress messags from the index
* should suffice.
*/
@@ -215,8 +223,8 @@
if(unzoom_index(state, msgmap)){
dprint(4, (debugfile, "\n\n ---- Exiting ZOOM mode ----\n"));
q_status_message(SM_ORDER,0,2, "Index Zoom Mode is now off");
-@@ -552,7 +552,7 @@
- comatose(i), plural(i));
+@@ -593,7 +593,7 @@
+ "All messages selected, so not entering Index Zoom Mode");
}
else
- any_messages(NULL, "selected", "to Zoom on");
@@ -224,7 +232,7 @@
}
break;
-@@ -560,7 +560,7 @@
+@@ -601,7 +601,7 @@
/*---------- print message on paper ----------*/
case MC_PRINTMSG :
@@ -233,7 +241,7 @@
cmd_print(state, msgmap, 0, in_index);
break;
-@@ -568,7 +568,7 @@
+@@ -609,7 +609,7 @@
/*---------- Take Address ----------*/
case MC_TAKE :
@@ -242,16 +250,16 @@
cmd_take_addr(state, msgmap, 0);
break;
-@@ -576,7 +576,7 @@
+@@ -617,7 +617,7 @@
/*---------- Save Message ----------*/
case MC_SAVE :
- if(any_messages(msgmap, NULL, "to Save"))
+ if(any_messages(msgmap, NULL, "可供存檔"))
- cmd_save(state, msgmap, 0);
+ cmd_save(state, stream, msgmap, 0);
break;
-@@ -584,7 +584,7 @@
+@@ -625,7 +625,7 @@
/*---------- Export message ----------*/
case MC_EXPORT :
@@ -260,7 +268,7 @@
cmd_export(state, msgmap, question_line, 0);
state->mangled_footer = 1;
}
-@@ -597,9 +597,9 @@
+@@ -638,9 +638,9 @@
dprint(2, (debugfile, "\n - expunge -\n"));
if(IS_NEWS(stream) && stream->rdonly){
if((del_count = count_flagged(stream, F_DEL)) > 0L){
@@ -273,7 +281,7 @@
if(F_ON(F_FULL_AUTO_EXPUNGE, state)
|| (F_ON(F_AUTO_EXPUNGE, state)
&& (state->context_current
-@@ -621,21 +621,20 @@
+@@ -662,21 +662,20 @@
state->mangled_body = 1;
state->mangled_header = 1;
@@ -300,7 +308,7 @@
break;
}
-@@ -654,7 +653,7 @@
+@@ -695,7 +694,7 @@
ret = 'y';
if(ret == 'x')
@@ -309,7 +317,7 @@
if(ret != 'y')
break;
-@@ -706,11 +705,11 @@
+@@ -763,11 +762,11 @@
if(state->expunge_count <= 0)
if(del_count)
q_status_message1(SM_ORDER, 0, 3,
@@ -323,7 +331,18 @@
break;
-@@ -744,16 +743,15 @@
+@@ -799,8 +798,8 @@
+
+ if(del_count > 0L){
+ state->mangled_footer = 1;
+- sprintf(prompt, "UNexclude %ld message%s in %s", del_count,
+- plural(del_count), pretty_fn(state->cur_folder));
++ sprintf(prompt, "%ld 封信件在信件匣 %s 中被復原排除", del_count,
++ pretty_fn(state->cur_folder));
+ if(F_ON(F_FULL_AUTO_EXPUNGE, state)
+ || (F_ON(F_AUTO_EXPUNGE, state)
+ && (state->context_current
+@@ -818,29 +817,28 @@
*/
refresh_sort(msgmap, FALSE);
state->mangled_header = 1;
@@ -334,18 +353,24 @@
+ q_status_message1(SM_ORDER, 0, 4,
+ "%s 封信件被復原排除",
+ long2string(del_count));
+
+ if(!visible) /* hilite last message */
+ mn_set_cur(msgmap, mn_get_total(msgmap));
}
else
- any_messages(NULL, NULL, "UNexcluded");
-+ any_messages(NULL, NULL, "復原排除");
++ any_messages(NULL, NULL, "已復原排除");
}
else
- any_messages(NULL, "excluded", "to UNexclude");
-+ any_messages(NULL, "被排除", "可供復原排除");
++ any_messages(NULL, "已被排除", "可供復原排除");
}
+ else
+- any_messages(NULL, "excluded", "to UNexclude");
++ any_messages(NULL, "已被排除", "可供復原排除");
break;
-@@ -761,7 +759,7 @@
+
/*------- Make Selection -----------*/
case MC_SELECT :
@@ -354,7 +379,7 @@
aggregate_select(state, msgmap, question_line, in_index);
if(in_index && any_lflagged(msgmap, MN_SLCT) > 0L
&& !any_lflagged(msgmap, MN_HIDE)
-@@ -793,7 +791,7 @@
+@@ -872,7 +870,7 @@
unzoom_index(state, msgmap);
}
else
@@ -363,7 +388,7 @@
}
break;
-@@ -871,21 +869,21 @@
+@@ -950,21 +948,21 @@
{
if(cmd == ctrl('Q') || cmd == ctrl('S'))
q_status_message1(SM_ASYNC, 0, 2,
@@ -392,7 +417,7 @@
}
-@@ -1158,11 +1156,9 @@
+@@ -1237,11 +1235,9 @@
char *type, *cmd;
{
if(mn_get_total(map) <= 0L){
@@ -406,7 +431,7 @@
return(FALSE);
}
-@@ -1186,8 +1182,8 @@
+@@ -1265,8 +1261,8 @@
{
if(READONLY_FOLDER || state->dead_stream){
q_status_message2(SM_ORDER | (state->dead_stream ? SM_DING : 0), 0, 3,
@@ -417,7 +442,7 @@
return(FALSE);
}
-@@ -1207,7 +1203,7 @@
+@@ -1286,7 +1282,7 @@
cmd_cancelled(cmd)
char *cmd;
{
@@ -426,7 +451,7 @@
}
-@@ -1233,7 +1229,7 @@
+@@ -1312,7 +1308,7 @@
dprint(4, (debugfile, "\n - delete message -\n"));
if(!(any_messages(msgmap, NULL, "to Delete")
@@ -435,7 +460,7 @@
return;
if(state->io_error_on_stream) {
-@@ -1243,16 +1239,15 @@
+@@ -1322,16 +1318,15 @@
if(agg){
sequence = selected_sequence(state->mail_stream, msgmap, &del_count);
@@ -455,7 +480,18 @@
lastmsg ? "" : long2string(msgno));
}
-@@ -1312,7 +1307,7 @@
+@@ -1361,8 +1356,8 @@
+ strcpy(nextfolder, state->cur_folder);
+ strcat(prompt, next_folder(NULL, nextfolder, nextfolder,
+ state->context_current, NULL)
+- ? ". Press TAB for next folder."
+- : ". No more folders to TAB to.");
++ ? "。 以 TAB 鍵切換至下一信件匣。"
++ : "。 已無更多信件匣可供切換了。");
+ }
+ }
+
+@@ -1393,7 +1388,7 @@
dprint(4, (debugfile, "\n - undelete -\n"));
if(!(any_messages(msgmap, NULL, "to Undelete")
@@ -464,12 +500,14 @@
return;
if(agg){
-@@ -1332,12 +1327,12 @@
- if(del_count == 1L){
+@@ -1418,13 +1413,13 @@
update_titlebar_status();
q_status_message(SM_ORDER, 0, 3,
-- "Deletion mark removed, message won't be deleted");
-+ "以移除刪除標記,信件將不會遭刪除");
+ wasdeleted
+- ? "Deletion mark removed, message won't be deleted"
+- : "Message not marked for deletion; no action taken");
++ ? "已移除刪除標記,信件將不會遭刪除"
++ : "信件尚未被標示為刪除:沒有採取任何行動");
}
else
- q_status_message2(SM_ORDER, 0, 3,
@@ -481,7 +519,7 @@
if(state->io_error_on_stream) {
state->io_error_on_stream = 0;
-@@ -1401,7 +1396,7 @@
+@@ -1488,7 +1483,7 @@
};
if(!(any_messages(msgmap, NULL, "to Flag")
@@ -490,8 +528,8 @@
return;
if(state->io_error_on_stream) {
-@@ -1756,7 +1751,7 @@
- if(msgno_any_exceptions(state->mail_stream, msgmap)
+@@ -1844,7 +1839,7 @@
+ if(msgno_any_exceptions(stream, msgmap, MSG_EX_DELETE)
&& want_to("Saved copy will NOT include entire message! Continue",
'y', 'n', NO_HELP, WT_FLUSH_IN | WT_SEQ_SENSITIVE) != 'y'){
- cmd_cancelled("Save message");
@@ -499,7 +537,7 @@
return;
}
-@@ -1879,32 +1874,32 @@
+@@ -1967,32 +1962,32 @@
ekey[rc].ch = ctrl('T');
ekey[rc].rval = 2;
ekey[rc].name = "^T";
@@ -537,7 +575,7 @@
}
if(saveable_count > 1){
-@@ -2042,7 +2037,7 @@
+@@ -2129,7 +2124,7 @@
/* else fall thru like they cancelled */
case 1 :
@@ -546,7 +584,7 @@
done--;
break;
-@@ -3172,16 +3167,16 @@
+@@ -3260,16 +3255,16 @@
}
sprintf(tmp_20k_buf,
@@ -566,7 +604,7 @@
return(-1);
}
-@@ -3305,14 +3300,14 @@
+@@ -3395,14 +3390,14 @@
export_opts[i = 0].ch = ctrl('T');
export_opts[i].rval = 10;
export_opts[i].name = "^T";
@@ -583,7 +621,7 @@
}
#endif /* !(DOS || MAC) */
-@@ -3320,7 +3315,7 @@
+@@ -3410,7 +3405,7 @@
export_opts[i].ch = ctrl('I');
export_opts[i].rval = 11;
export_opts[i].name = "TAB";
@@ -592,7 +630,7 @@
}
#if 0
-@@ -3329,7 +3324,7 @@
+@@ -3419,7 +3414,7 @@
export_opts[i].ch = ctrl('X');
export_opts[i].rval = 14;
export_opts[i].name = "^X";
@@ -601,7 +639,7 @@
}
#endif
-@@ -3343,7 +3338,7 @@
+@@ -3433,7 +3428,7 @@
if(r < 0){
switch(r){
case -1:
@@ -610,7 +648,7 @@
break;
case -2:
-@@ -3365,7 +3360,7 @@
+@@ -3455,7 +3450,7 @@
if(ps_global->restricted){
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -619,7 +657,7 @@
goto fini;
}
-@@ -3384,7 +3379,7 @@
+@@ -3474,7 +3469,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,
@@ -628,7 +666,7 @@
break;
}
-@@ -3397,18 +3392,18 @@
+@@ -3487,18 +3482,18 @@
(void) close_system_pipe(&syspipe);
else
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -650,7 +688,7 @@
goto fini;
}
-@@ -3522,7 +3517,7 @@
+@@ -3612,7 +3607,7 @@
STORE_S *store = NULL;
struct variable *vars = ps->vars;
static ESCKEY_S simple_export_opts[] = {
@@ -659,7 +697,7 @@
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL}};
-@@ -3530,7 +3525,7 @@
+@@ -3620,7 +3615,7 @@
simple_export_opts[r].ch = ctrl('I');
simple_export_opts[r].rval = 11;
simple_export_opts[r].name = "TAB";
@@ -668,7 +706,7 @@
}
if(!srctext){
-@@ -3603,7 +3598,7 @@
+@@ -3693,7 +3688,7 @@
break;
case -1:
@@ -677,7 +715,7 @@
break;
case -2:
-@@ -4192,32 +4187,32 @@
+@@ -4365,32 +4360,32 @@
ekey[rc].ch = (allow_list) ? ctrl('T') : 0 ;
ekey[rc].rval = (allow_list) ? 2 : 0;
ekey[rc].name = (allow_list) ? "^T" : "";
@@ -715,7 +753,7 @@
}
if(ps_global->context_list->next){
-@@ -4335,15 +4330,15 @@
+@@ -4508,15 +4503,15 @@
newfolder);
else if(tc->use & CNTXT_INCMNG)
q_status_message1(SM_ORDER, 0, 3,
@@ -735,7 +773,7 @@
newfolder);
return(NULL);
-@@ -4356,7 +4351,7 @@
+@@ -4529,7 +4524,7 @@
/* fall thru like they cancelled */
case 1 : /* o_e says user cancel */
@@ -744,7 +782,7 @@
return(NULL);
case 2 : /* o_e says user wants list */
-@@ -4592,7 +4587,7 @@
+@@ -4762,7 +4757,7 @@
else if ((new_context->use & CNTXT_INCMNG)
&& (folder_index(newfolder, new_context, FI_FOLDER) < 0)){
q_status_message1(SM_ORDER, 3, 4,
@@ -753,7 +791,7 @@
return(0);
}
}
-@@ -4632,11 +4627,10 @@
+@@ -4802,11 +4797,10 @@
clear_index_cache();
/* MUST sort before restoring msgno! */
refresh_sort(ps_global->msgmap, FALSE);
@@ -765,10 +803,10 @@
- long2string(mn_get_total(ps_global->msgmap)),
- plural(mn_get_total(ps_global->msgmap)));
+ long2string(mn_get_total(ps_global->msgmap)));
- return(1);
- }
-
-@@ -4673,7 +4667,7 @@
+ #ifdef _WINDOWS
+ mswin_settitle(ps_global->inbox_name);
+ #endif
+@@ -4846,7 +4840,7 @@
}
}
@@ -777,7 +815,7 @@
pretty_fn(newfolder), 70), "\"");
we_cancel = busy_alarm(1, status_msg, NULL, 1);
-@@ -4756,7 +4750,7 @@
+@@ -4930,7 +4924,7 @@
&& !mn_get_revsort(ps_global->msgmap)))
refresh_sort(ps_global->msgmap, FALSE);
@@ -786,7 +824,7 @@
old_folder);
}
}
-@@ -4837,14 +4831,13 @@
+@@ -5018,13 +5012,13 @@
/* UWIN doesn't want to see this message */
if(!ps_global->nr_mode)
@@ -797,15 +835,13 @@
+ ? "新聞組群" : "信件匣",
pretty_fn(newfolder),
comatose(mn_get_total(ps_global->msgmap)),
-- plural(mn_get_total(ps_global->msgmap)),
-- READONLY_FOLDER ?" READONLY" : "",
-- NULL, NULL);
-+ READONLY_FOLDER ?" 唯讀" : "",
-+ NULL, NULL, NULL);
-
- sort_folder(ps_global->msgmap, ps_global->def_sort,
- ps_global->def_sort_rev, TRUE);
-@@ -5010,9 +5003,9 @@
+ plural(mn_get_total(ps_global->msgmap)),
+- READONLY_FOLDER ? " READONLY" : "",
++ READONLY_FOLDER ? " 唯讀" : "",
+ NULL, NULL);
+
+ #ifdef _WINDOWS
+@@ -5191,9 +5185,9 @@
char ing[4];
if(final_msg)
@@ -817,7 +853,7 @@
buff1[0] = '\0';
buff2[0] = '\0';
-@@ -5021,7 +5014,7 @@
+@@ -5202,7 +5196,7 @@
stream->mailbox));
if(!stream->rdonly){
@@ -825,8 +861,8 @@
+ q_status_message1(SM_INFO, 0, 1, "正在關閉 \"%s\"...", folder);
flush_status_messages(1);
- /* Save read messages? */
-@@ -5061,10 +5054,8 @@
+ /*
+@@ -5255,10 +5249,8 @@
}
else{
sprintf(prompt_b,
@@ -839,7 +875,7 @@
ret = want_to(prompt_b, 'y', 0, NO_HELP, WT_NORM);
}
-@@ -5075,13 +5066,10 @@
+@@ -5269,13 +5261,10 @@
if(ret == 'y'){
sprintf(buff2,
@@ -854,8 +890,8 @@
long2string(delete_count));
if(final_msg)
*final_msg = cpystr(buff2);
-@@ -5107,17 +5095,15 @@
- if(ret != 'y'){
+@@ -5348,17 +5337,15 @@
+
if(stream->nmsgs){
sprintf(buff2,
- "Clos%s folder \"%s\". %s%s%s message%s.",
@@ -876,7 +912,7 @@
ing, pretty_fn(folder));
}
-@@ -5136,7 +5122,7 @@
+@@ -5377,7 +5364,7 @@
q_status_message(SM_ORDER,
F_ON(F_AUTO_READ_MSGS,ps_global) ? 0 : 3, 5, moved_msg);
@@ -884,8 +920,8 @@
+ sprintf(buff2, "%s關閉新聞組群 \"%s\"",
ing, pretty_fn(folder));
- if(F_ON(F_NEWS_CROSS_DELETE, ps_global))
-@@ -5144,7 +5130,7 @@
+ if(F_ON(F_NEWS_CATCHUP, ps_global)){
+@@ -5414,7 +5401,7 @@
}
else
sprintf(buff2,
@@ -894,7 +930,7 @@
ing, pretty_fn(folder));
if(final_msg)
-@@ -5444,18 +5430,18 @@
+@@ -6033,18 +6020,18 @@
if(in_index && F_ON(F_PRINT_INDEX, state)){
char m[10];
static ESCKEY_S prt_opts[] = {
@@ -918,7 +954,7 @@
if(agg)
restore_selected(msgmap);
-@@ -5472,11 +5458,11 @@
+@@ -6061,11 +6048,11 @@
}
if(do_index)
@@ -933,7 +969,7 @@
if(open_printer(prompt) < 0){
if(agg)
-@@ -5740,7 +5726,7 @@
+@@ -6329,7 +6316,7 @@
/* else fall thru as if cancelled */
case 1 :
@@ -942,7 +978,7 @@
done++;
break;
-@@ -5823,7 +5809,7 @@
+@@ -6642,7 +6629,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);
@@ -951,7 +987,7 @@
sel_opts += 2; /* disable extra options */
switch(q = radio_buttons(sel_pmt1, q_line, sel_opts1, 'c', 'x', help,
RB_NORM)){
-@@ -5867,7 +5853,7 @@
+@@ -6686,7 +6673,7 @@
*/
switch(q){
case 'x': /* cancel */
@@ -960,7 +996,7 @@
return;
case 'c' : /* select/unselect current */
-@@ -6075,14 +6061,14 @@
+@@ -6895,14 +6882,14 @@
sel_opts3[i].ch = '*';
sel_opts3[i].rval = '*';
sel_opts3[i].name = "*";
@@ -977,7 +1013,7 @@
}
/*
-@@ -6094,7 +6080,7 @@
+@@ -6914,7 +6901,7 @@
sel_opts3[i].ch = 'b';
sel_opts3[i].rval = 'b';
sel_opts3[i].name = "B";
@@ -986,7 +1022,7 @@
}
if(F_ON(F_ENABLE_PRYNT, state)){
-@@ -6165,7 +6151,7 @@
+@@ -6985,7 +6972,7 @@
break;
case 'x' : /* cancel */
@@ -995,7 +1031,7 @@
rv = 0;
break;
-@@ -6282,7 +6268,7 @@
+@@ -7102,7 +7089,7 @@
*t = '\0';
if(r == 1 || numbers[0] == '\0'){
@@ -1004,7 +1040,7 @@
return(1);
}
else
-@@ -6408,7 +6394,7 @@
+@@ -7228,7 +7215,7 @@
prompt, sel_date_opt, help, &flags);
switch (r){
case 1 :
@@ -1013,7 +1049,7 @@
return(1);
case 3 :
-@@ -6518,15 +6504,15 @@
+@@ -7350,15 +7337,15 @@
ekey[0].ch = ctrl('T');
ekey[0].name = "^T";
ekey[0].rval = 10;
@@ -1032,7 +1068,7 @@
break;
case 's' :
-@@ -6534,7 +6520,7 @@
+@@ -7366,7 +7353,7 @@
ekey[0].ch = ctrl('X');
ekey[0].name = "^X";
ekey[0].rval = 13;
@@ -1041,7 +1077,7 @@
break;
case 'a' :
-@@ -6633,7 +6619,7 @@
+@@ -7477,7 +7464,7 @@
}
if(type == 'x' || r == 'x'){
@@ -1050,7 +1086,7 @@
return(1);
}
-@@ -6814,7 +6800,7 @@
+@@ -7735,7 +7722,7 @@
NO_HELP, RB_NORM);
if(s == 'x'){
@@ -1059,16 +1095,16 @@
return(1);
}
else if(s == '!')
-@@ -6911,7 +6897,7 @@
+@@ -7832,7 +7819,7 @@
/*----- String together the prompt ------*/
tmp[1] = '\0';
- strcpy(prompt, "Choose type of sort, or Reverse current sort : ");
+ strcpy(prompt, "選取排序方式,或反轉目前的排序:");
- for(i = 0; state->sort_types[i] != EndofList && i < 8; i++) {
+ for(i = 0; state->sort_types[i] != EndofList; i++) {
sorts[i].rval = i;
p = sorts[i].label = sort_name(state->sort_types[i]);
-@@ -6928,7 +6914,7 @@
+@@ -7849,7 +7836,7 @@
sorts[i].ch = 'r';
sorts[i].rval = 'r';
sorts[i].name = cpystr("R");
@@ -1077,7 +1113,7 @@
sorts[++i].ch = -1;
help = h_select_sort;
-@@ -6941,7 +6927,7 @@
+@@ -7862,7 +7849,7 @@
}
else{
retval = 0;
diff --git a/chinese/pine4/files/patch-bb b/chinese/pine4/files/patch-bb
index 09353ef..0a46e0d 100644
--- a/chinese/pine4/files/patch-bb
+++ b/chinese/pine4/files/patch-bb
@@ -1,5 +1,5 @@
---- pine/mailindx.c.orig Thu Sep 3 00:22:21 1998
-+++ pine/mailindx.c Tue Sep 22 19:18:33 1998
+--- pine/mailindx.c.orig Fri Oct 1 03:44:27 1999
++++ pine/mailindx.c Thu Oct 14 12:26:44 1999
@@ -55,10 +55,10 @@
/*
* Some common Command Bindings
@@ -44,7 +44,7 @@
+ {":","選擇",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
+ {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_ZOOM},
LISTFLD_MENU,
- NULL_MENU,
+ RCOMPOSE_MENU,
NULL_MENU,
@@ -175,9 +175,9 @@
@@ -58,7 +58,7 @@
PREVMSG_MENU,
NEXTMSG_MENU,
PREVPAGE_MENU,
-@@ -356,14 +356,14 @@
+@@ -388,14 +388,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) {
-@@ -455,7 +455,7 @@
+@@ -487,7 +487,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;
-@@ -657,7 +657,7 @@
+@@ -695,7 +695,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);
}
-@@ -778,7 +778,7 @@
+@@ -822,7 +822,7 @@
k = i;
if(++j >= id.lines_per_page){
if((id.msg_at_top = i) == 1L)
@@ -105,7 +105,7 @@
break;
}
-@@ -787,7 +787,7 @@
+@@ -831,7 +831,7 @@
if(i <= 1L){
if(mn_get_cur(msgmap) == 1L)
q_status_message(SM_ORDER, 0, 1,
@@ -114,7 +114,7 @@
break;
}
-@@ -807,7 +807,7 @@
+@@ -851,7 +851,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;
-@@ -816,7 +816,7 @@
+@@ -860,7 +860,7 @@
if(i >= mn_get_total(msgmap)){
if(mn_get_cur(msgmap) == k)
@@ -132,7 +132,7 @@
break;
}
-@@ -1029,9 +1029,9 @@
+@@ -1079,9 +1079,9 @@
}
q_status_message2(SM_ORDER, 0, 1,
@@ -144,7 +144,7 @@
}
break;
-@@ -1053,9 +1053,9 @@
+@@ -1103,9 +1103,9 @@
}
q_status_message2(SM_ORDER, 0, 1,
@@ -156,7 +156,7 @@
}
break;
-@@ -1861,7 +1861,7 @@
+@@ -2176,7 +2176,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;
}
-@@ -1903,7 +1903,7 @@
+@@ -2218,7 +2218,7 @@
if(!column){
dprint(1, (debugfile, "Completely unrecognizable index-format\n"));
q_status_message(SM_ORDER | SM_DING, 0, 3,
@@ -174,7 +174,7 @@
return(0);
}
-@@ -2526,7 +2526,7 @@
+@@ -3130,7 +3130,7 @@
sprintf(str, "%ld", idata->msgno);
else if(idata->bogus < 2 && cdesc->ctype == iSubject)
sprintf(str, "%-*.*s", width, width,
@@ -183,7 +183,7 @@
}
else
switch(cdesc->ctype){
-@@ -3425,8 +3425,8 @@
+@@ -4824,8 +4824,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"));
-@@ -3435,7 +3435,7 @@
+@@ -4834,7 +4834,7 @@
return;
}
else if(mn_total_cur(msgmap) > 1L){
@@ -203,7 +203,7 @@
comatose(mn_total_cur(msgmap)));
return;
}
-@@ -3446,13 +3446,13 @@
+@@ -4845,13 +4845,13 @@
new_string[0] = '\0';
while(1) {
@@ -219,7 +219,7 @@
}
else{
header_search_key[0].ch = header_search_key[0].rval = 0;
-@@ -3471,7 +3471,7 @@
+@@ -4870,7 +4870,7 @@
continue;
}
else if(rc == 10){
@@ -228,7 +228,7 @@
if(any_lflagged(msgmap, MN_HIDE)){
do{
selected = sorted_msg;
-@@ -3487,7 +3487,7 @@
+@@ -4886,7 +4886,7 @@
return;
}
else if(rc == 11){
@@ -237,7 +237,7 @@
if(any_lflagged(msgmap, MN_HIDE)){
do{
selected = sorted_msg;
-@@ -3512,7 +3512,7 @@
+@@ -4911,7 +4911,7 @@
}
if(rc == 1 || (new_string[0] == '\0' && search_string[0] == '\0')) {
@@ -246,7 +246,7 @@
return;
}
-@@ -3551,21 +3551,21 @@
+@@ -4950,21 +4950,21 @@
}
if(ps_global->intr_pending){
@@ -273,7 +273,7 @@
#ifndef DOS
intr_handling_off();
-@@ -3702,7 +3702,7 @@
+@@ -5224,7 +5224,7 @@
&& LEVELSORT(ps_global->mail_stream)))
sort_func = percent_sorted;
@@ -282,18 +282,19 @@
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);
-@@ -3752,8 +3752,8 @@
+@@ -5310,9 +5310,9 @@
new_sort = mn_get_sort(msgmap);
new_rev = mn_get_revsort(msgmap);
q_status_message2(SM_ORDER, 3, 3,
- "Sort %s! Restored %s sort.",
-- g_sort_prog->abort ? "Canceled" : "Failed",
+ "排序%s!回復至 %s 排序。",
-+ g_sort_prog->abort ? "已取消" : "失敗",
+ ps_global->intr_pending
+- ? "Canceled" : "Failed",
++ ? "已取消" : "失敗",
sort_name(new_sort));
}
- else if(mn_get_total(msgmap) < g_sort_prog->nmsgs)
-@@ -4515,7 +4515,7 @@
+
+@@ -6127,7 +6127,7 @@
icache.name = temp_nam(NULL, "pi");
if((icache.cache = (void *)fopen(icache.name,"w+b")) == NULL){
@@ -302,7 +303,7 @@
fatal(tmp_20k_buf);
}
-@@ -4897,10 +4897,10 @@
+@@ -6523,10 +6523,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 855878f..d5d513e 100644
--- a/chinese/pine4/files/patch-bc
+++ b/chinese/pine4/files/patch-bc
@@ -1,5 +1,5 @@
---- pine/mailpart.c.orig Fri Feb 5 07:14:39 1999
-+++ pine/mailpart.c Tue Feb 23 15:32:33 1999
+--- pine/mailpart.c.orig Wed Oct 13 01:07:42 1999
++++ pine/mailpart.c Thu Oct 14 12:25:59 1999
@@ -142,18 +142,18 @@
{HELP_MENU,
OTHER_MENU,
@@ -58,7 +58,7 @@
NULL_MENU,
REPLY_MENU,
FORWARD_MENU};
-@@ -337,12 +337,12 @@
+@@ -338,12 +338,12 @@
if(mn_total_cur(ps->msgmap) > 1L){
q_status_message(SM_ORDER | SM_DING, 0, 3,
@@ -73,7 +73,7 @@
long2string(mn_get_cur(ps->msgmap)));
/*
-@@ -485,7 +485,7 @@
+@@ -486,7 +486,7 @@
break;
if(ps->mangled_header){
@@ -82,7 +82,7 @@
ps->context_current, ps->cur_folder, ps->msgmap, 1,
MessageNumber, 0, 0);
ps->mangled_header = 0;
-@@ -523,7 +523,7 @@
+@@ -524,7 +524,7 @@
last_type = current->attp->body->type;
last_subtype = current->attp->body->subtype;
@@ -91,7 +91,7 @@
km->keys[ATT_PARENT_KEY].label = backtag;
if(F_OFF(F_ENABLE_PIPE, ps))
-@@ -549,7 +549,7 @@
+@@ -550,7 +550,7 @@
clrbitn(ATT_PRINT_KEY, bitmap);
km->keys[ATT_EXPORT_KEY].name = "E";
@@ -100,7 +100,7 @@
}
if(km_popped){
-@@ -615,7 +615,7 @@
+@@ -616,7 +616,7 @@
break;
}
@@ -109,7 +109,7 @@
ps->mangled_screen = 1;
break;
-@@ -644,7 +644,7 @@
+@@ -645,7 +645,7 @@
if(ctmp = next_attline(current))
current = ctmp;
else
@@ -118,7 +118,7 @@
break;
-@@ -652,7 +652,7 @@
+@@ -653,7 +653,7 @@
if(ctmp = prev_attline(current))
current = ctmp;
else
@@ -127,7 +127,7 @@
break;
-@@ -666,7 +666,7 @@
+@@ -667,7 +667,7 @@
}
else
q_status_message(SM_ORDER, 0, 1,
@@ -136,7 +136,7 @@
break;
-@@ -687,7 +687,7 @@
+@@ -688,7 +688,7 @@
}
else
q_status_message(SM_ORDER, 0, 1,
@@ -145,7 +145,7 @@
break;
-@@ -1149,7 +1149,7 @@
+@@ -1150,7 +1150,7 @@
{
bitmap_t bitmap;
@@ -154,7 +154,7 @@
ps_global->context_current, ps_global->cur_folder,
ps_global->msgmap, 1, FolderName,0,0);
-@@ -1317,7 +1317,7 @@
+@@ -1318,7 +1318,7 @@
gf_io_t pc;
STORE_S *store;
static ESCKEY_S att_save_opts[] = {
@@ -163,7 +163,7 @@
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL}};
-@@ -1346,7 +1346,7 @@
+@@ -1347,7 +1347,7 @@
att_save_opts[++r].ch = ctrl('V');
att_save_opts[r].rval = 12;
att_save_opts[r].name = "^V";
@@ -172,7 +172,7 @@
}
#endif /* !(DOS || MAC) */
-@@ -1354,7 +1354,7 @@
+@@ -1355,7 +1355,7 @@
att_save_opts[++r].ch = ctrl('I');
att_save_opts[r].rval = 11;
att_save_opts[r].name = "TAB";
@@ -181,7 +181,7 @@
}
att_save_opts[++r].ch = -1;
-@@ -1388,7 +1388,7 @@
+@@ -1389,7 +1389,7 @@
if(ps_global->restricted){
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -190,7 +190,7 @@
return;
}
-@@ -1396,7 +1396,7 @@
+@@ -1397,7 +1397,7 @@
tfp = temp_nam(NULL, "pd");
dprint(1, (debugfile, "Download attachment called!\n"));
if(store = so_get(FileStar, tfp, WRITE_ACCESS|OWNER_ONLY)){
@@ -199,7 +199,7 @@
we_cancel = init_att_progress(prompt_buf,
ps_global->mail_stream,
a->body);
-@@ -1405,7 +1405,7 @@
+@@ -1406,7 +1406,7 @@
if(err = detach(ps_global->mail_stream, msgno,
a->number, &len, pc, NULL))
q_status_message2(SM_ORDER | SM_DING, 3, 5,
@@ -208,7 +208,7 @@
err, tfp);
/* cancel regardless, so it doesn't get in way of xfer */
-@@ -1422,18 +1422,18 @@
+@@ -1423,18 +1423,18 @@
(void)close_system_pipe(&syspipe);
else
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -230,7 +230,7 @@
a->number);
return;
-@@ -1445,12 +1445,12 @@
+@@ -1446,12 +1446,12 @@
if((store = so_get(FileStar, full_filename, WRITE_ACCESS)) == NULL){
q_status_message2(SM_ORDER | SM_DING, 3, 5,
@@ -245,7 +245,7 @@
we_cancel = init_att_progress(prompt_buf, ps_global->mail_stream, a->body);
gf_set_so_writec(&pc, store);
-@@ -1469,7 +1469,7 @@
+@@ -1470,7 +1470,7 @@
truncate(full_filename, (over == -1) ? orig_size : 0);
q_status_message2(SM_ORDER | SM_DING, 3, 5,
@@ -254,7 +254,7 @@
err, full_filename);
}
else{
-@@ -1547,7 +1547,7 @@
+@@ -1548,7 +1548,7 @@
MESSAGECACHE *mc;
STORE_S *so;
@@ -263,7 +263,7 @@
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)
-@@ -1569,11 +1569,11 @@
+@@ -1570,11 +1570,11 @@
a->body->size.bytes, flags, date, so);
if(rv == 1)
q_status_message2(SM_ORDER, 0, 4,
@@ -277,7 +277,7 @@
/* else whatever broke in save_fetch_append shoulda bitched */
so_give(&so);
-@@ -1615,7 +1615,7 @@
+@@ -1616,7 +1616,7 @@
if(MIME_MSG(part->body.type, part->body.subtype))
cnt++;
@@ -286,7 +286,7 @@
if(save_prompt(ps_global, &cntxt, newfolder, nmsgs, NULL, 0, NULL)){
save_folder = (strucmp(newfolder, ps_global->inbox_name) == 0)
-@@ -1649,11 +1649,11 @@
+@@ -1650,11 +1650,11 @@
if(rv == 1)
q_status_message2(SM_ORDER, 0, 4,
@@ -300,7 +300,7 @@
/* else whatever broke in save_fetch_append shoulda bitched */
if(our_stream)
-@@ -1707,7 +1707,7 @@
+@@ -1708,7 +1708,7 @@
ATTACH_S *ap = a;
STORE_S *store;
static ESCKEY_S opts[] = {
@@ -309,7 +309,7 @@
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL}};
-@@ -1715,7 +1715,7 @@
+@@ -1716,7 +1716,7 @@
opts[i].ch = ctrl('I');
opts[i].rval = 11;
opts[i].name = "TAB";
@@ -318,7 +318,7 @@
}
filename[0] = full_filename[0] = '\0';
-@@ -1728,12 +1728,12 @@
+@@ -1729,12 +1729,12 @@
if(rv < 0){
switch(rv){
case -1:
@@ -333,7 +333,7 @@
ps_global->VAR_OPER_DIR);
break;
}
-@@ -1747,17 +1747,17 @@
+@@ -1748,17 +1748,17 @@
q_status_message(SM_ORDER | SM_DING, 3, 4, err);
else
q_status_message3(SM_ORDER, 0, 4,
@@ -355,7 +355,7 @@
full_filename, error_description(errno));
}
-@@ -1780,7 +1780,7 @@
+@@ -1781,7 +1781,7 @@
ATTACH_S *ap;
STORE_S *store;
static ESCKEY_S opts[] = {
@@ -364,7 +364,7 @@
{-1, 0, NULL, NULL},
{-1, 0, NULL, NULL}};
-@@ -1788,7 +1788,7 @@
+@@ -1789,7 +1789,7 @@
opts[i].ch = ctrl('I');
opts[i].rval = 11;
opts[i].name = "TAB";
@@ -373,7 +373,7 @@
}
filename[0] = full_filename[0] = '\0';
-@@ -1801,12 +1801,12 @@
+@@ -1802,12 +1802,12 @@
if(rv < 0){
switch(rv){
case -1:
@@ -388,7 +388,7 @@
ps_global->VAR_OPER_DIR);
break;
}
-@@ -1828,7 +1828,7 @@
+@@ -1829,7 +1829,7 @@
sprintf(tmp_20k_buf, " [Unknown Message subtype: %s ]\n",
ap->body->subtype);
if(!so_puts(store, tmp_20k_buf))
@@ -397,7 +397,7 @@
}
else{
count++;
-@@ -1837,29 +1837,29 @@
+@@ -1838,29 +1838,29 @@
}
}
else if(!so_puts(store, "Unknown type in Digest"))
@@ -434,7 +434,7 @@
full_filename, error_description(errno));
}
-@@ -1928,7 +1928,7 @@
+@@ -1929,7 +1929,7 @@
q_status_message2(SM_ORDER | SM_DING, 3, 3,
@@ -443,7 +443,7 @@
long2string(msgno), a->number);
return(0);
}
-@@ -2009,14 +2009,14 @@
+@@ -2010,14 +2010,14 @@
/*----- Can't display this type ------*/
if(a->body->encoding < ENCOTHER)
q_status_message4(SM_ORDER | SM_DING, 3, 5,
@@ -461,7 +461,7 @@
body_encodings[(a->body->encoding <= ENCMAX)
? a->body->encoding : ENCOTHER]);
-@@ -2238,7 +2238,7 @@
+@@ -2239,7 +2239,7 @@
clear_index_cache_ent(msgno);
if(store = format_text_att(msgno, a, &handles)){
@@ -470,7 +470,7 @@
free_handles(&handles);
so_give(&store); /* free resources associated with store */
}
-@@ -2406,22 +2406,22 @@
+@@ -2407,22 +2407,22 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(store);
sargs.text.src = src;
@@ -497,7 +497,7 @@
}
if(!handles){
-@@ -2853,9 +2853,9 @@
+@@ -2854,9 +2854,9 @@
sargs.text.text = so_text(store);
sargs.text.src = CharStar;
sargs.text.desc = "attachment info";
@@ -509,7 +509,16 @@
scrolltool(&sargs);
-@@ -2970,7 +2970,7 @@
+@@ -2900,7 +2900,7 @@
+ role = combine_inherited_role(role);
+ else{
+ role = NULL;
+- cmd_cancelled("Forward");
++ cmd_cancelled("轉寄");
+ mail_free_envelope(&outgoing);
+ return;
+ }
+@@ -2971,7 +2971,7 @@
else /* partially formatted outgoing message */
pine_send(outgoing, &body,
ps_global->nr_mode
@@ -518,7 +527,7 @@
role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
ps_global->mangled_screen = 1;
-@@ -2988,12 +2988,12 @@
+@@ -2989,12 +2989,12 @@
so_give((STORE_S **) &msgtext);
free_redraft_pos(&redraft_pos);
q_status_message(SM_ORDER | SM_DING, 4, 5,
@@ -532,7 +541,7 @@
+ "無法配置信件文字");
mail_free_envelope(&outgoing);
- free_role(&role);
+ free_action(&role);
@@ -3032,7 +3032,7 @@
ret = 'n';
@@ -541,17 +550,17 @@
+ ret = want_to("將信件以附件形式轉寄", 'n', 0,
NO_HELP, WT_SEQ_SENSITIVE);
/* Setup possible role */
- if(!ps_global->anonymous && (pattern_h = open_nonempty_patterns())){
-@@ -3043,7 +3043,7 @@
+ if(!ps_global->anonymous && nonempty_patterns()){
+@@ -3042,7 +3042,7 @@
+ role = combine_inherited_role(role);
else{ /* cancel reply */
role = NULL;
- close_patterns(&pattern_h);
- cmd_cancelled("Forward");
+ cmd_cancelled("轉寄");
mail_free_envelope(&outgoing);
so_give((STORE_S **) &msgtext);
return;
-@@ -3121,7 +3121,7 @@
+@@ -3118,7 +3118,7 @@
pine_simple_send(outgoing, &body, NULL, NULL, NULL, 1);
else /* partially formatted outgoing message */
pine_send(outgoing, &body,
@@ -560,7 +569,7 @@
role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
ps_global->mangled_screen = 1;
-@@ -3138,16 +3138,16 @@
+@@ -3135,16 +3135,16 @@
else{
so_give((STORE_S **) &msgtext);
q_status_message(SM_ORDER | SM_DING, 4, 5,
@@ -580,7 +589,16 @@
long2string(msgno));
mail_free_envelope(&outgoing);
-@@ -3256,7 +3256,7 @@
+@@ -3206,7 +3206,7 @@
+ role = combine_inherited_role(role);
+ else{ /* cancel reply */
+ role = NULL;
+- cmd_cancelled("Reply");
++ cmd_cancelled("回覆");
+ goto seeyalater;
+ }
+ }
+@@ -3248,7 +3248,7 @@
: ps_global->VAR_SIGNATURE_FILE,
&redraft_pos)){
/* partially formatted outgoing message */
@@ -589,7 +607,7 @@
role, fcc.tptr, NULL, redraft_pos, NULL, NULL, 0);
pine_free_body(&body);
-@@ -3264,13 +3264,13 @@
+@@ -3256,13 +3256,13 @@
}
else
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -605,7 +623,7 @@
}
seeyalater:
-@@ -3340,7 +3340,7 @@
+@@ -3332,7 +3332,7 @@
sprintf(prompt, "Pipe %sattachment %s to %s: ", raw ? "RAW " : "",
a->number, capture ? "" : "(Free Output) ");
@@ -614,7 +632,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,
-@@ -3358,7 +3358,7 @@
+@@ -3350,7 +3350,7 @@
}
else if(rc == 0){
if(pipe_command[0] == '\0'){
@@ -623,7 +641,7 @@
break;
}
-@@ -3436,7 +3436,7 @@
+@@ -3428,7 +3428,7 @@
break;
}
else if(rc == 1){
diff --git a/chinese/pine4/files/patch-bd b/chinese/pine4/files/patch-bd
index 4a01615..02422af 100644
--- a/chinese/pine4/files/patch-bd
+++ b/chinese/pine4/files/patch-bd
@@ -1,6 +1,6 @@
---- pine/mailview.c.orig Tue Feb 2 01:26:04 1999
-+++ pine/mailview.c Tue Feb 23 15:45:46 1999
-@@ -157,8 +157,8 @@
+--- pine/mailview.c.orig Tue Oct 12 09:19:53 1999
++++ pine/mailview.c Thu Oct 14 12:25:15 1999
+@@ -159,8 +159,8 @@
static struct key view_keys[] =
{HELP_MENU,
OTHER_MENU,
@@ -11,7 +11,7 @@
PREVMSG_MENU,
NEXTMSG_MENU,
PREVPAGE_MENU,
-@@ -183,11 +183,11 @@
+@@ -185,11 +185,11 @@
HELP_MENU,
OTHER_MENU,
@@ -27,7 +27,7 @@
JUMP_MENU,
TAB_MENU,
HDRMODE_MENU,
-@@ -204,7 +204,7 @@
+@@ -219,7 +219,7 @@
#define FLAG_KEY 34
#define VIEW_PIPE_KEY 35
@@ -36,7 +36,7 @@
{HELP_MENU,
WHEREIS_MENU,
QUIT_MENU,
-@@ -228,7 +228,7 @@
+@@ -243,7 +243,7 @@
NEXTMSG_MENU,
PREVPAGE_MENU,
NEXTPAGE_MENU,
@@ -45,7 +45,7 @@
JUMP_MENU,
PRYNTTXT_MENU,
SAVE_MENU,
-@@ -250,7 +250,7 @@
+@@ -265,7 +265,7 @@
static struct key simple_text_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -54,7 +54,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -259,7 +259,7 @@
+@@ -274,7 +274,7 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
FWDEMAIL_MENU,
@@ -63,7 +63,7 @@
INST_KEY_MENU(simple_text_keymenu, simple_text_keys);
-@@ -403,7 +403,7 @@
+@@ -430,7 +430,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;
}
-@@ -417,7 +417,7 @@
+@@ -444,7 +444,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)));
-@@ -472,7 +472,7 @@
+@@ -502,7 +502,7 @@
memset(&scrollargs, 0, sizeof(SCROLL_S));
scrollargs.text.text = so_text(store);
scrollargs.text.src = src;
@@ -90,10 +90,10 @@
/*
* make first selectable handle the default
-@@ -492,11 +492,11 @@
- else
- scrollargs.body_valid = 1;
-
+@@ -528,11 +528,11 @@
+ offset = 0L;
+ }
+
- scrollargs.bar.title = "MESSAGE TEXT";
+ scrollargs.bar.title = "信件文字";
scrollargs.end_scroll = view_end_scroll;
@@ -104,7 +104,7 @@
scrollargs.keys.menu = &view_keymenu;
scrollargs.keys.what = save_what;
setbitmap(scrollargs.keys.bitmap);
-@@ -1237,7 +1237,7 @@
+@@ -1319,7 +1319,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);
-@@ -1276,7 +1276,7 @@
+@@ -1358,7 +1358,7 @@
if(append_file_name)
fs_give((void **)&append_file_name);
@@ -122,7 +122,7 @@
error_description(errno));
return(0);
}
-@@ -1570,7 +1570,7 @@
+@@ -1665,7 +1665,7 @@
write_error:
if(!(flgs & FM_DISPLAY))
@@ -131,7 +131,7 @@
decode_err ? decode_err : error_description(errno));
return(0);
-@@ -1908,12 +1908,12 @@
+@@ -2137,12 +2137,12 @@
char prompt[256], tmp[MAILTMPLEN];
int rc, flags, local_h;
static ESCKEY_S launch_opts[] = {
@@ -148,7 +148,7 @@
{-1, 0, NULL, NULL}};
if(handle->type == URL){
-@@ -1939,11 +1939,11 @@
+@@ -2168,11 +2168,11 @@
if(!local_h){
if(ps_global->vars[V_BROWSER].is_fixed){
q_status_message(SM_ORDER, 3, 4,
@@ -162,7 +162,7 @@
'y', 0, NO_HELP, WT_SEQ_SENSITIVE) == 'y'){
/* Prompt for the displayer? */
tmp[0] = '\0';
-@@ -1987,7 +1987,7 @@
+@@ -2216,7 +2216,7 @@
}
else{
q_status_message1(SM_ORDER | SM_DING, 2, 2,
@@ -171,18 +171,31 @@
error_description(errno));
continue;
}
-@@ -2017,8 +2017,8 @@
- return(1);
-
- while(1){
-- sprintf(prompt, "View selected %s %s%.37s%s? ",
-- (handle->type == URL) ? "URL" : "Attachment",
-+ sprintf(prompt, "檢視選擇的 %s %s%.37s%s? ",
-+ (handle->type == URL) ? "URL" : "附件",
- (handle->type == URL) ? "\"" : "",
- (handle->type == URL) ? handle->h.url.path : "",
- (handle->type == URL)
-@@ -2723,11 +2723,11 @@
+@@ -2260,8 +2260,8 @@
+ max(0,sc - 25), handle->h.url.path+7,
+ (strlen(handle->h.url.path+7) > max(0,sc-25)) ? "..." : "");
+ else
+- sprintf(prompt, "View selected %s %s%.*s%s ? ",
+- (handle->type == URL) ? "URL" : "Attachment",
++ sprintf(prompt, "檢視選擇的 %s %s%.*s%s ? ",
++ (handle->type == URL) ? "URL" : "附件",
+ (handle->type == URL) ? "\"" : "",
+ max(0,sc-27),
+ (handle->type == URL) ? handle->h.url.path : "",
+@@ -2320,10 +2320,10 @@
+ OE_KEEP_TRAILING_SPACE |
+ OE_DISALLOW_HELP;
+
+- sprintf(prompt, "Viewer command: ");
++ sprintf(prompt, "檢視器命令:");
+
+ rc = optionally_enter(tmp, -FOOTER_ROWS(ps_global), 0,
+- MAILTMPLEN - 1, "Viewer Command: ",
++ MAILTMPLEN - 1, "檢視器命令:",
+ NULL, NO_HELP, &flags);
+ if(rc == 0){
+ if(flags & OE_USER_MODIFIED){
+@@ -3639,11 +3639,11 @@
mode = PIPE_RESET | PIPE_USER ;
if(syspipe = open_system_pipe(cmd, NULL, NULL, mode, 0)){
close_system_pipe(&syspipe);
@@ -196,7 +209,7 @@
}
else if(f = url_local_handler(handle->h.url.path)){
if((*f)(handle->h.url.path) > 1)
-@@ -2735,7 +2735,7 @@
+@@ -3651,7 +3651,7 @@
}
else
q_status_message1(SM_ORDER, 2, 2,
@@ -205,7 +218,7 @@
handle->h.url.path);
return(rv);
-@@ -2747,7 +2747,7 @@
+@@ -3663,7 +3663,7 @@
int return_value;
{
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -214,16 +227,16 @@
return(return_value);
}
-@@ -3046,7 +3046,7 @@
+@@ -4008,7 +4008,7 @@
}
else
q_status_message(SM_ORDER | SM_DING, 3, 4,
- "Can't create space for composer");
+ "無法替編輯器建立空間");
+ outta_here:
if(outgoing)
- mail_free_envelope(&outgoing);
-@@ -3113,7 +3113,7 @@
+@@ -4079,7 +4079,7 @@
else if(errstr)
q_status_message(SM_ORDER|SM_DING, 3, 3, errstr);
else
@@ -232,7 +245,7 @@
break;
-@@ -3136,7 +3136,7 @@
+@@ -4102,7 +4102,7 @@
if(uid_val != ps_global->mail_stream->uid_validity){
/* Complain! */
q_status_message(SM_ORDER|SM_DING, 3, 3,
@@ -241,7 +254,7 @@
}
if(uid){
-@@ -3152,7 +3152,7 @@
+@@ -4118,7 +4118,7 @@
if(i > mn_get_total(ps_global->msgmap))
q_status_message(SM_ORDER, 2, 3,
@@ -250,7 +263,7 @@
}
else if(search){
/*
-@@ -3173,9 +3173,9 @@
+@@ -4139,9 +4139,9 @@
if(i = any_lflagged(ps_global->msgmap, MN_SLCT)){
extern long zoom_index();
@@ -263,20 +276,16 @@
/* Zoom the index! */
zoom_index(ps_global, ps_global->msgmap);
}
-@@ -3314,9 +3314,9 @@
+@@ -4289,7 +4289,7 @@
- if(auth && *auth != '*')
- q_status_message1(SM_ORDER, 3, 3,
-- "Unsupported authentication method. %s.",
-- user ? "Using standard login"
-- : "Logging in as \"Anonymous\"");
-+ "未支援的認證模式。%s。",
-+ user ? "使用標準登入"
-+ : "以 \"Anonymous\" 登入");
+ if(auth && *auth != '*')
+ q_status_message(SM_ORDER, 3, 3,
+- "Unsupported authentication method. Using standard login.");
++ "未支援的認證方式。使用標準登入。");
- /*
- * At this point our structure should contain the
-@@ -3401,7 +3401,7 @@
+ /*
+ * At this point our structure should contain the
+@@ -4373,7 +4373,7 @@
if(i > mn_get_total(ps_global->msgmap))
q_status_message(SM_ORDER, 2, 3,
@@ -285,7 +294,7 @@
}
break;
-@@ -3515,7 +3515,7 @@
+@@ -4490,7 +4490,7 @@
}
else
q_status_message1(SM_ORDER | SM_DING, 0, 3,
@@ -294,7 +303,7 @@
return(1);
}
-@@ -3542,7 +3542,7 @@
+@@ -4517,7 +4517,7 @@
dprint(2, (debugfile, "-- bogus url \"%s\": %s\n",
url ? url : "<NULL URL>", reason));
if(url)
@@ -303,7 +312,7 @@
(void *) (strchr(url, ':') - url), url, reason);
return(0);
-@@ -3684,7 +3684,7 @@
+@@ -4678,7 +4678,7 @@
write_error:
if(style == QStatus)
@@ -312,7 +321,7 @@
error_description(errno));
return(1);
-@@ -3935,7 +3935,7 @@
+@@ -4931,7 +4931,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,
@@ -321,16 +330,16 @@
rv = FHT_WRTERR;
}
else
-@@ -3945,7 +3945,7 @@
+@@ -4941,7 +4941,7 @@
}
else{
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "No space for filtered text: %s", errstr);
-+ "沒有足夠的空間過濾文字:%s", errstr);
+ q_status_message(SM_ORDER | SM_DING, 3, 3,
+- "No space for filtered text.");
++ "沒有足夠的空間過濾文字。");
rv = FHT_WRTERR;
}
}
-@@ -3971,7 +3971,7 @@
+@@ -4983,7 +4983,7 @@
if(errstr = gf_pipe(tmp_gc, final_pc)){
rv = FHT_WRTERR;
q_status_message1(SM_ORDER | SM_DING, 3, 3,
@@ -339,8 +348,8 @@
}
}
-@@ -4115,7 +4115,7 @@
- format_newsgroup_string("Newsgroups: ", e->newsgroups, prefix, pc);
+@@ -5121,7 +5121,7 @@
+ format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc);
if(e->ngbogus)
q_status_message(SM_ORDER, 0, 3,
- "Unverified Newsgroup header -- Message MAY or MAY NOT have been posted");
@@ -348,7 +357,7 @@
}
if((which & FE_FOLLOWUPTO) && e->followup_to)
-@@ -4756,7 +4756,7 @@
+@@ -5880,7 +5880,7 @@
}
if(!sparms->bar.title)
@@ -357,7 +366,7 @@
if(sparms->bar.style == TitleBarNone)
sparms->bar.style = MsgTextPercent;
-@@ -4914,7 +4914,7 @@
+@@ -6053,7 +6053,7 @@
}
if(first_view && num_display_lines >= scroll_text_lines())
@@ -366,7 +375,7 @@
force = 0; /* may not need to next time around */
-@@ -5047,7 +5047,7 @@
+@@ -6191,7 +6191,7 @@
whereis_pos.row = 0;
if(sparms->help.text == NO_HELP || ps_global->nr_mode){
q_status_message(SM_ORDER, 0, 5,
@@ -375,7 +384,7 @@
break;
}
-@@ -5086,12 +5086,12 @@
+@@ -6230,7 +6230,7 @@
cur_top_line -= scroll_lines;
if(cur_top_line <= 0){
cur_top_line = 0;
@@ -384,13 +393,16 @@
STYLE_NAME(sparms));
}
}
- else{
-- q_status_message1(SM_ORDER, 0, 1, "Already at start of %s",
-+ q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始",
- STYLE_NAME(sparms));
+@@ -6246,7 +6246,7 @@
+ }
- /* hilite last available handle */
-@@ -5117,12 +5117,12 @@
+ if(!next_handle)
+- q_status_message1(SM_ORDER, 0, 1, "Already at start of %s",
++ q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始",
+ STYLE_NAME(sparms));
+
+ }
+@@ -6264,12 +6264,12 @@
cur_top_line += scroll_lines;
if(cur_top_line + num_display_lines >= scroll_text_lines())
@@ -405,7 +417,7 @@
STYLE_NAME(sparms));
/* hilite last available handle */
if(sparms->text.handles){
-@@ -5184,11 +5184,11 @@
+@@ -6339,11 +6339,11 @@
whereis_pos.row = 0;
cur_top_line++;
if(cur_top_line + num_display_lines >= scroll_text_lines())
@@ -419,7 +431,7 @@
STYLE_NAME(sparms));
}
-@@ -5243,11 +5243,11 @@
+@@ -6406,11 +6406,11 @@
if(cur_top_line){
cur_top_line--;
if(cur_top_line == 0)
@@ -433,7 +445,7 @@
STYLE_NAME(sparms));
}
-@@ -5281,7 +5281,7 @@
+@@ -6444,7 +6444,7 @@
}
q_status_message1(SM_ORDER, 0, 1,
@@ -442,7 +454,7 @@
STYLE_NAME(sparms));
}
-@@ -5315,7 +5315,7 @@
+@@ -6478,7 +6478,7 @@
}
q_status_message1(SM_ORDER, 0, 1,
@@ -451,16 +463,7 @@
STYLE_NAME(sparms));
}
-@@ -5335,7 +5335,7 @@
- break;
-
- case -1 :
-- cmd_cancelled("View");
-+ cmd_cancelled("檢視");
- break;
-
- default :
-@@ -5434,8 +5434,8 @@
+@@ -6611,8 +6611,8 @@
q_status_message(SM_ORDER, 0, 3, tmp_20k_buf);
else
q_status_message2(SM_ORDER, 0, 3,
@@ -471,7 +474,7 @@
int2string(whereis_pos.row));
if(key){
-@@ -5452,9 +5452,9 @@
+@@ -6629,9 +6629,9 @@
}
}
else if(found_on == -1)
@@ -483,16 +486,7 @@
}
break;
-@@ -5548,7 +5548,7 @@
- break;
-
- case -1 :
-- cmd_cancelled("View");
-+ cmd_cancelled("檢視");
- break;
-
- default :
-@@ -5836,13 +5836,13 @@
+@@ -7002,13 +7002,13 @@
int rc, flags;
static char search_string[MAX_SEARCH+1] = { '\0' };
static ESCKEY_S word_search_key[] = { { 0, 0, "", "" },
@@ -509,7 +503,7 @@
help = NO_HELP;
nsearch_string[0] = '\0';
-@@ -5857,13 +5857,13 @@
+@@ -7023,13 +7023,13 @@
continue;
}
else if(rc == 10){
@@ -525,7 +519,7 @@
cursor_pos->row = max(scroll_text_lines() - 1, 0);
cursor_pos->col = 0;
return(cursor_pos->row);
-@@ -6808,12 +6808,12 @@
+@@ -8165,12 +8165,12 @@
if(*msg_p[0])
for(i = 0; i < msg_q; i++)
q_status_message2(SM_ORDER, 3, 4,
@@ -540,7 +534,7 @@
fclose(f);
f = NULL;
-@@ -6826,7 +6826,7 @@
+@@ -8183,7 +8183,7 @@
q_status_message2(SM_ORDER, 0, 4, "%s%s", title,
alt_msg
? alt_msg
@@ -549,7 +543,7 @@
fclose(f);
f = NULL;
}
-@@ -6841,7 +6841,7 @@
+@@ -8198,7 +8198,7 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = f;
sargs.text.src = FileStar;
@@ -558,3 +552,12 @@
sargs.bar.title = title;
sargs.bar.style = TextPercent;
sargs.help.text = h_simple_text_view;
+@@ -8399,7 +8399,7 @@
+ break;
+
+ case -1 :
+- cmd_cancelled("View");
++ cmd_cancelled("檢視");
+ break;
+
+ default :
diff --git a/chinese/pine4/files/patch-be b/chinese/pine4/files/patch-be
index 0beea92..1735884 100644
--- a/chinese/pine4/files/patch-be
+++ b/chinese/pine4/files/patch-be
@@ -1,6 +1,6 @@
---- 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 @@
+--- pine/newmail.c.orig Sat Oct 9 00:46:59 1999
++++ pine/newmail.c Thu Oct 14 12:19:31 1999
+@@ -314,24 +314,15 @@
ENVELOPE *e;
char subject[200], from[2*MAX_SCREEN_COLS],
intro[MAX_SCREEN_COLS+1];
@@ -17,37 +17,19 @@
- "with regard to",
- "subject:"
+ static char *carray[] = { "關於",
-+ "有關"
++ "有關",
++ "標題為:"
};
e = mail_fetchstructure(stream, max_num, NULL);
- if(!folder) {
- if(number > 1)
-- sprintf(intro, "%ld new messages!", number);
-+ sprintf(intro, "%ld 封新信件!", number);
- else
-- sprintf(intro, "New mail%s!",
-- (e && address_is_us(e->to, ps_global)) ? " to you" : "");
-+ sprintf(intro, "%s新信!",
-+ (e && address_is_us(e->to, ps_global)) ? "您有" : "");
- }
- else {
- if(number > 1)
-- sprintf(intro,"%ld messages saved to folder \"%s\"", number, folder);
-+ sprintf(intro,"%ld 封信件被存至資料匣 \"%s\"", number, folder);
- else
-- sprintf(intro, "Mail saved to folder \"%s\"", folder);
-+ sprintf(intro, "信件被存至資料匣 \"%s\"", folder);
- }
-
if(e && e->from){
- sprintf(from, " %srom ", (number > 1L) ? "Most recent f" : "F");
-+ sprintf(from, "%s自", (number > 1L) ? "最近來" : "來");
++ sprintf(from, " %srom ", (number > 1L) ? "最近來" : "來");
if(e->from->personal)
istrncpy(from + ((number > 1L) ? 18 : 6),
(char *) rfc1522_decode((unsigned char *) tmp_20k_buf,
-@@ -349,13 +339,13 @@
+@@ -348,13 +339,13 @@
if(number <= 1L) {
if(e && e->subject){
@@ -63,3 +45,40 @@
if(!from[0])
subject[1] = toupper((unsigned char)subject[1]);
+@@ -364,29 +355,29 @@
+
+ if(!folder) {
+ if(number > 1)
+- sprintf(intro, "%ld new messages!", number);
++ sprintf(intro, "%ld 封新信件!", number);
+ else
+- sprintf(intro, "New mail%s!",
+- (e && address_is_us(e->to, ps_global)) ? " to you" : "");
++ sprintf(intro, "%s新信!",
++ (e && address_is_us(e->to, ps_global)) ? "您有" : "");
+ }
+ else {
+ long fl, tot, newfl;
+
+ if(number > 1)
+- sprintf(intro, "%ld messages saved to folder \"%s\"", number,
++ sprintf(intro, "%ld 封信件被存至資料匣 \"%s\"", number,
+ folder);
+ else
+- sprintf(intro, "Mail saved to folder \"%s\"", folder);
++ sprintf(intro, "信件被存至資料匣 \"%s\"", folder);
+
+ if((fl=strlen(folder)) > 10 &&
+ (tot=strlen(intro) + strlen(from) + strlen(subject)) >
+ ps_global->ttyo->screen_cols - 2){
+ newfl = max(10, fl-(tot-(ps_global->ttyo->screen_cols - 2)));
+ if(number > 1)
+- sprintf(intro, "%ld messages saved to folder \"...%s\"", number,
++ sprintf(intro, "%ld 封信件被存至資料匣 \"...%s\"", number,
+ folder+(fl-(newfl-3)));
+ else
+- sprintf(intro, "Mail saved to folder \"...%s\"",
++ sprintf(intro, "信件被存至資料匣 \"...%s\"",
+ folder+(fl-(newfl-3)));
+ }
+ }
diff --git a/chinese/pine4/files/patch-bf b/chinese/pine4/files/patch-bf
index 685b377..f13bd74 100644
--- a/chinese/pine4/files/patch-bf
+++ b/chinese/pine4/files/patch-bf
@@ -1,6 +1,6 @@
---- pine/other.c.orig Tue Feb 2 07:32:44 1999
-+++ pine/other.c Wed Feb 24 02:19:21 1999
-@@ -51,18 +51,18 @@
+--- pine/other.c.orig Thu Oct 14 13:46:05 1999
++++ pine/other.c Thu Oct 14 17:02:49 1999
+@@ -53,18 +53,18 @@
#define BODY_LINES(X) ((X)->ttyo->screen_rows -HEADER_ROWS(X)-FOOTER_ROWS(X))
@@ -12,7 +12,7 @@
-#define EXIT_PMT "Commit changes (\"Yes\" replaces settings, \"No\" abandons changes)"
-static char *empty_val = "Empty Value";
-static char *empty_val2 = "<Empty Value>";
-+#define EXIT_PMT "送出改變 (\"是\" 取代設定,\"否\" 放棄改變)"
++#define EXIT_PMT "送出改變(\"是\" 取代設定,\"否\" 放棄改變)"
+static char *empty_val = "空的設定值";
+static char *empty_val2 = "<空的設定值>";
#define EMPTY_VAL_LEN 11
@@ -22,12 +22,12 @@
-static char *fixed_val = "Value is Fixed";
+static char *fixed_val = "設定值已固定";
--#define ADD_FIRST_ROLE "Use Add to add a role"
-+#define ADD_FIRST_ROLE "以 \"新增角色\" 來增加一名角色"
+-#define ARB_HELP "HELP FOR ARBITRARY HEADER PATTERNS"
++#define ARB_HELP "任意標頭式樣的輔助說明"
- typedef struct conf_line {
- char *varname, /* alloc'd var name string */
-@@ -271,16 +271,14 @@
+ typedef struct edit_arb {
+ struct variable *v;
+@@ -344,16 +344,14 @@
#ifndef NO_KEYBOARD_LOCK
ClearScreen();
@@ -47,7 +47,7 @@
fflush(stdout);
#endif
}
-@@ -292,12 +290,12 @@
+@@ -365,12 +363,12 @@
#ifndef NO_KEYBOARD_LOCK
ClearScreen();
@@ -63,7 +63,7 @@
fflush(stdout);
#endif
}
-@@ -339,9 +337,9 @@
+@@ -412,9 +410,9 @@
char prompt[50];
sprintf(prompt,
@@ -76,7 +76,7 @@
flags = OE_PASSWD;
rc = optionally_enter(pw, -FOOTER_ROWS(ps), 0, 30,
-@@ -350,7 +348,7 @@
+@@ -423,7 +421,7 @@
if(rc == 3)
help = help == NO_HELP ? h_kb_lock : NO_HELP;
else if(rc == 1 || pw[0] == '\0'){
@@ -85,7 +85,7 @@
return(-1);
}
else if(rc != 4)
-@@ -361,14 +359,14 @@
+@@ -434,14 +432,14 @@
strcpy(inpasswd, pw);
else if(strcmp(inpasswd, pw)){
q_status_message(SM_ORDER, 0, 2,
@@ -103,7 +103,7 @@
return(-1);
}
-@@ -382,7 +380,7 @@
+@@ -455,7 +453,7 @@
while(strcmp(inpasswd, passwd)){
if(passwd[0])
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -112,7 +112,7 @@
help = NO_HELP;
while(1){
-@@ -390,7 +388,7 @@
+@@ -463,7 +461,7 @@
flags = OE_PASSWD | OE_DISALLOW_CANCEL;
rc = optionally_enter(passwd, -FOOTER_ROWS(ps), 0, 30,
@@ -121,7 +121,7 @@
help, &flags);
if(rc == 3) {
help = help == NO_HELP ? h_oe_keylock : NO_HELP;
-@@ -405,7 +403,7 @@
+@@ -478,7 +476,7 @@
if(old_suspend)
F_TURN_ON(F_CAN_SUSPEND, ps_global);
@@ -130,7 +130,7 @@
return(0);
}
-@@ -443,7 +441,7 @@
+@@ -516,7 +514,7 @@
struct variable *vars = ps_global->vars;
if(!signature_path(sigfile, sig_path, MAXPATH))
@@ -139,7 +139,7 @@
memset(&pbuf, 0, sizeof(PICO));
-@@ -519,7 +517,7 @@
+@@ -593,7 +591,7 @@
* Now alloc and init the text to pass pico
*/
if(!(msgso = so_get(PicoText, NULL, EDIT_ACCESS))){
@@ -148,7 +148,7 @@
dprint(1, (debugfile, "Can't alloc space for signature_edit"));
return(ret);
}
-@@ -530,7 +528,7 @@
+@@ -604,7 +602,7 @@
&& !(tmpso = so_get(FileStar, sig_path, READ_ACCESS))){
char *problem = error_description(errno);
@@ -157,7 +157,7 @@
sig_path, problem ? problem : "<NULL>");
ret = cpystr(errbuf);
-@@ -543,7 +541,7 @@
+@@ -617,7 +615,7 @@
gf_set_so_writec(&pc, msgso);
gf_filter_init(); /* no filters needed */
if(errstr = gf_pipe(gc, pc)){
@@ -166,7 +166,7 @@
ret = cpystr(errbuf);
}
-@@ -582,7 +580,7 @@
+@@ -656,7 +654,7 @@
gf_set_so_writec(&pc, tmpso); /* write sig file */
gf_filter_init(); /* no filters needed */
if(errstr = gf_pipe(gc, pc)){
@@ -175,7 +175,7 @@
errstr);
ret = cpystr(errbuf);
}
-@@ -592,7 +590,7 @@
+@@ -666,7 +664,7 @@
so_give(&tmpso);
}
else{
@@ -184,7 +184,7 @@
ret = cpystr(errbuf);
dprint(1, (debugfile, "signature_edit: can't write %s",
sig_path));
-@@ -618,8 +616,8 @@
+@@ -695,8 +693,8 @@
char *rstr = NULL;
void (*redraw)() = ps_global->redrawer;
static ESCKEY_S opts[] = {
@@ -195,7 +195,7 @@
{-1, 0, NULL, NULL}
};
-@@ -627,18 +625,18 @@
+@@ -704,18 +702,18 @@
fix_windsize(ps_global);
while(1){
@@ -217,7 +217,7 @@
break;
}
}
-@@ -653,24 +651,24 @@
+@@ -730,28 +728,28 @@
* * * * * * Start of Config Screen Support Code * * * * *
*/
@@ -231,6 +231,12 @@
#define TOGGLE_MENU \
- {"X", "[Set/Unset]", {MC_TOGGLE,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
+ {"X", "[設定/解除設定]", {MC_TOGGLE,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
+ #define TOGGLEB_MENU \
+- {"X", "[Set/Unset]", {MC_TOGGLEB,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
++ {"X", "[設定/解除設定]", {MC_TOGGLEB,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
+ #define TOGGLEC_MENU \
+- {"X", "[Set/Unset]", {MC_TOGGLEC,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
++ {"X", "[設定/解除設定]", {MC_TOGGLEC,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE}
static struct key config_text_keys[] =
{HELP_MENU,
@@ -249,7 +255,23 @@
PRYNTTXT_MENU,
WHEREIS_MENU};
INST_KEY_MENU(config_text_keymenu, config_text_keys);
-@@ -679,13 +677,13 @@
+@@ -760,13 +758,13 @@
+ {HELP_MENU,
+ NULL_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+ NULL_MENU,
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU};
+ INST_KEY_MENU(color_pattern_keymenu, color_pattern_keys);
+@@ -775,13 +773,13 @@
{HELP_MENU,
OTHER_MENU,
EXIT_SETUP_MENU,
@@ -266,18 +288,18 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
-@@ -693,8 +691,8 @@
+@@ -789,8 +787,8 @@
OTHER_MENU,
NULL_MENU,
NULL_MENU,
- {"T", "ToFiles", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE},
- {"F", "editFile", {MC_EDITFILE, 1, {'f'}}, KS_NONE},
-+ {"T", "檔案選單", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"T", "檔案列表", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE},
+ {"F", "編輯檔案", {MC_EDITFILE, 1, {'f'}}, KS_NONE},
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -707,13 +705,13 @@
+@@ -803,13 +801,13 @@
{HELP_MENU,
OTHER_MENU,
EXIT_SETUP_MENU,
@@ -294,16 +316,100 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
-@@ -721,7 +719,7 @@
+@@ -817,7 +815,7 @@
+ OTHER_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"T", "ToFiles", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"T", "檔案列表", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -831,13 +829,13 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+- {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU,
+
+@@ -846,7 +844,7 @@
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
++ {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -859,13 +857,13 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[修改設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+- {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU,
+
+@@ -873,8 +871,8 @@
OTHER_MENU,
NULL_MENU,
NULL_MENU,
- {"T", "ToAddrBk", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE},
+- {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
+ {"T", "地址簿", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -735,13 +733,13 @@
+@@ -887,13 +885,13 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[修改設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+- {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU,
+
+@@ -902,10 +900,10 @@
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
++ {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+- {"R", "RemoveHdr", {MC_DELHDR, 1, {'r'}}, KS_NONE},
++ {"R", "移除標頭", {MC_DELHDR, 1, {'r'}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU};
+@@ -915,13 +913,13 @@
{HELP_MENU,
OTHER_MENU,
EXIT_SETUP_MENU,
@@ -320,21 +426,73 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
-@@ -749,7 +747,7 @@
+@@ -929,7 +927,7 @@
OTHER_MENU,
NULL_MENU,
NULL_MENU,
-- {"T", "ToFldrs", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE},
-+ {"T", "檔案列表", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE},
+- {"T", "ToAddrBk", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"T", "地址簿", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE},
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -763,13 +761,13 @@
+@@ -943,13 +941,13 @@
{HELP_MENU,
OTHER_MENU,
EXIT_SETUP_MENU,
- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
-+ {"C", "[修改設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+- {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU,
+
+@@ -957,7 +955,7 @@
+ OTHER_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"T", "ToFldrs", {MC_CHOICED, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"T", "檔案匣列表", {MC_CHOICED, 2, {'t', ctrl('T')}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -971,13 +969,13 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+ NEXTPAGE_MENU,
+- {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE},
+ PRYNTTXT_MENU,
+ WHEREIS_MENU,
+
+@@ -985,7 +983,7 @@
+ OTHER_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"T", "ToFldrs", {MC_CHOICEE, 2, {'t', ctrl('T')}}, KS_NONE},
++ {"T", "檔案匣列表", {MC_CHOICEE, 2, {'t', ctrl('T')}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -999,13 +997,13 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
PREV_MENU,
NEXT_MENU,
PREVPAGE_MENU,
@@ -346,7 +504,7 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
-@@ -777,7 +775,7 @@
+@@ -1013,7 +1011,7 @@
OTHER_MENU,
NULL_MENU,
NULL_MENU,
@@ -355,7 +513,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -806,7 +804,7 @@
+@@ -1072,7 +1070,7 @@
{HELP_MENU,
NULL_MENU,
EXIT_SETUP_MENU,
@@ -364,7 +522,7 @@
PREV_MENU,
NEXT_MENU,
PREVPAGE_MENU,
-@@ -821,7 +819,7 @@
+@@ -1087,7 +1085,7 @@
{HELP_MENU,
NULL_MENU,
EXIT_SETUP_MENU,
@@ -373,7 +531,89 @@
PREV_MENU,
NEXT_MENU,
PREVPAGE_MENU,
-@@ -1489,14 +1487,14 @@
+@@ -1102,8 +1100,8 @@
+ static struct key color_changing_keys[] =
+ {HELP_MENU,
+ NULL_MENU,
+- {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
+- {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
++ {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1118,8 +1116,8 @@
+ static struct key custom_color_changing_keys[] =
+ {HELP_MENU,
+ NULL_MENU,
+- {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
+- {"*", "[Select]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
++ {"*", "[選擇]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1134,8 +1132,8 @@
+ static struct key color_rgb_changing_keys[] =
+ {HELP_MENU,
+ NULL_MENU,
+- {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
+- {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
++ {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1151,8 +1149,8 @@
+ static struct key custom_rgb_changing_keys[] =
+ {HELP_MENU,
+ NULL_MENU,
+- {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
+- {"*", "[Select]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
++ {"*", "[選擇]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1168,7 +1166,7 @@
+ {HELP_MENU,
+ NULL_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1183,7 +1181,7 @@
+ {HELP_MENU,
+ OTHER_MENU,
+ EXIT_SETUP_MENU,
+- {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1197,8 +1195,8 @@
+ OTHER_MENU,
+ NULL_MENU,
+ NULL_MENU,
+- {"D", "DeleteHdr", {MC_DELETE,1,{'d'}}, KS_NONE},
+- {"$", "ShuffleHdr", {MC_SHUFFLE,1,{'$'}}, KS_NONE},
++ {"D", "刪除標頭", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"$", "重整標頭", {MC_SHUFFLE,1,{'$'}}, KS_NONE},
+ NULL_MENU,
+ NULL_MENU,
+ NULL_MENU,
+@@ -1211,7 +1209,7 @@
+ {HELP_MENU,
+ NULL_MENU,
+ EXIT_SETUP_MENU,
+- {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
++ {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE},
+ PREV_MENU,
+ NEXT_MENU,
+ PREVPAGE_MENU,
+@@ -1832,14 +1830,14 @@
{HELP_MENU,
PRYNTTXT_MENU,
EXIT_SETUP_MENU,
@@ -383,16 +623,14 @@
NEXT_MENU,
PREVPAGE_MENU,
NEXTPAGE_MENU,
-- {"A", "Add Printer", {MC_ADD,1,{'a'}}, KS_NONE},
-- {"D", "DeletePrint", {MC_DELETE,1,{'d'}}, KS_NONE},
+ {"A", "Add Printer", {MC_ADD,1,{'a'}}, KS_NONE},
+ {"D", "DeletePrint", {MC_DELETE,1,{'d'}}, KS_NONE},
- {"C", "Change", {MC_EDIT,1,{'c'}}, KS_NONE},
-+ {"A", "新增印表機", {MC_ADD,1,{'a'}}, KS_NONE},
-+ {"D", "刪除印表機", {MC_DELETE,1,{'d'}}, KS_NONE},
+ {"C", "修改", {MC_EDIT,1,{'c'}}, KS_NONE},
WHEREIS_MENU};
INST_KEY_MENU(printer_edit_keymenu, printer_edit_keys);
-@@ -1504,7 +1502,7 @@
+@@ -1847,7 +1845,7 @@
{HELP_MENU,
PRYNTTXT_MENU,
EXIT_SETUP_MENU,
@@ -401,7 +639,7 @@
PREV_MENU,
NEXT_MENU,
PREVPAGE_MENU,
-@@ -1537,7 +1535,7 @@
+@@ -1880,7 +1878,7 @@
char *saved_printer;
OPT_SCREEN_S screen;
@@ -410,25 +648,25 @@
return;
saved_printer = cpystr(ps->VAR_PRINTER);
-@@ -1553,7 +1551,7 @@
+@@ -1896,7 +1894,7 @@
#ifdef OS2
= cpystr("\"Select\" a port or |pipe-command as your default printer.");
#else
- = cpystr("You may \"Select\" a print command as your default printer.");
-+ = cpystr("可以 \"選擇\" 一個列印命令為預設印表機。");
++ = cpystr("可以 \"選擇\" 一列印命令做為預設印表機。");
#endif
new_confline(&ctmpa);
-@@ -1906,7 +1904,7 @@
+@@ -2249,7 +2247,7 @@
vsave = save_config_vars(ps);
switch(conf_scroll_screen(ps, &screen, start_line,
-- "SETUP PRINTER", "printer config ", 1)){
-+ "設定印表機", "printer config ", 1)){
+- "SETUP PRINTER", "printer config ", 1, 0)){
++ "設定印表機", "printer config ", 1, 0)){
case 0:
break;
-@@ -1947,8 +1945,8 @@
+@@ -2290,8 +2288,8 @@
fs_give((void **)def_printer_line);
*def_printer_line = fs_get(36 + strlen(p) + 1);
@@ -439,7 +677,7 @@
fs_give((void **)&nick);
fs_give((void **)&cmd);
-@@ -1958,7 +1956,7 @@
+@@ -2301,7 +2299,7 @@
static struct key flag_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -448,7 +686,7 @@
TOGGLE_MENU,
PREV_MENU,
NEXT_MENU,
-@@ -2112,9 +2110,9 @@
+@@ -2455,9 +2453,9 @@
static struct key addr_select_keys[] =
{HELP_MENU,
@@ -460,7 +698,7 @@
PREV_MENU,
NEXT_MENU,
PREVPAGE_MENU,
-@@ -2128,29 +2126,29 @@
+@@ -2471,29 +2469,29 @@
static struct key addr_select_with_goback_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -481,7 +719,7 @@
static struct key addr_select_with_view_keys[] =
{HELP_MENU,
- NULL_MENU,
+ RCOMPOSE_MENU,
- {"<", "AddressBkList", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE},
- {">", "[View]",
+ {"<", "地址簿列表", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE},
@@ -496,10 +734,10 @@
FWDEMAIL_MENU,
SAVE_MENU,
WHEREIS_MENU};
-@@ -2159,14 +2157,14 @@
+@@ -2502,14 +2500,14 @@
static struct key addr_select_for_url_keys[] =
{HELP_MENU,
- NULL_MENU,
+ RCOMPOSE_MENU,
- {"<", "Exit Viewer", {MC_ADDRBOOK,3,{'<',',','e'}}, KS_NONE},
- {">", "[View]",
+ {"<", "離開", {MC_ADDRBOOK,3,{'<',',','e'}}, KS_NONE},
@@ -514,7 +752,7 @@
FWDEMAIL_MENU,
SAVE_MENU,
WHEREIS_MENU};
-@@ -2175,7 +2173,7 @@
+@@ -2518,7 +2516,7 @@
static struct key addr_select_exit_keys[] =
{NULL_MENU,
NULL_MENU,
@@ -523,7 +761,7 @@
KS_EXITMODE},
NULL_MENU,
NULL_MENU,
-@@ -2191,7 +2189,7 @@
+@@ -2534,7 +2532,7 @@
static struct key addr_select_goback_keys[] =
{NULL_MENU,
NULL_MENU,
@@ -532,7 +770,16 @@
KS_EXITMODE},
NULL_MENU,
NULL_MENU,
-@@ -2546,7 +2544,7 @@
+@@ -2617,7 +2615,7 @@
+ char *dn, *a;
+ char **cn, **org, **unit, **title, **mail, **sn;
+ BerElement *ber;
+- static char no_email[] = "<No Email Address Available>";
++ static char no_email[] = "<無法取得電子郵件地址>";
+ int indent, have_mail;
+
+ dn = NULL;
+@@ -2898,7 +2896,7 @@
sprintf(ee+2, "%s, No Matches Returned",
ldap_err2string(wp_err->ldap_errno));
else
@@ -541,7 +788,7 @@
strcat(ee, " -- Choose Exit ]");
ctmpa->value = cpystr(ee);
-@@ -2644,7 +2642,7 @@
+@@ -2996,7 +2994,7 @@
case MC_CHOICE :
if(flags & CF_PRIVATE){
q_status_message(SM_ORDER | SM_DING, 0, 3,
@@ -550,7 +797,7 @@
}
else if(some_selectable){
(*cl)->d.a.ac->selected_ld = (*cl)->d.a.ld;
-@@ -2709,15 +2707,15 @@
+@@ -3064,15 +3062,15 @@
static struct key direct_config_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -573,16 +820,16 @@
WHEREIS_MENU};
INST_KEY_MENU(dir_conf_km, direct_config_keys);
-@@ -2789,7 +2787,7 @@
+@@ -3148,7 +3146,7 @@
&first_line);
(void)conf_scroll_screen(ps, &screen, first_line,
-- "SETUP DIRECTORY SERVERS", "servers ", 1);
-+ "設定地址伺服器", "servers ", 1);
+- "SETUP DIRECTORY SERVERS", "servers ", 1, 0);
++ "設定地址伺服器", "servers ", 1, 0);
ps->mangled_screen = 1;
}
-@@ -2809,20 +2807,20 @@
+@@ -3168,20 +3166,20 @@
case MC_DELETE :
if(first_one)
q_status_message(SM_ORDER|SM_DING, 0, 3,
@@ -606,7 +853,7 @@
if(first_one)
dir_config_add(ps, cl);
else
-@@ -2832,10 +2830,10 @@
+@@ -3191,10 +3189,10 @@
break;
case MC_SHUFFLE :
@@ -619,7 +866,7 @@
else
dir_config_shuffle(ps, cl);
}
-@@ -2965,7 +2963,7 @@
+@@ -3328,7 +3326,7 @@
write_pinerc(ps);
}
else
@@ -628,7 +875,7 @@
}
free_ldap_server_info(&info);
-@@ -2995,7 +2993,7 @@
+@@ -3358,7 +3356,7 @@
if(cnt < 2){
q_status_message(SM_ORDER, 0, 3,
@@ -637,7 +884,7 @@
return;
}
-@@ -3006,12 +3004,12 @@
+@@ -3369,12 +3367,12 @@
opts[i].ch = 'u';
opts[i].rval = 'u';
opts[i].name = "U";
@@ -652,7 +899,7 @@
opts[i].ch = -1;
deefault = 'u';
-@@ -3023,11 +3021,11 @@
+@@ -3386,11 +3384,11 @@
else if(current_num == cnt - 1) /* no down */
opts[1].ch = -2;
@@ -667,16 +914,16 @@
help = (opts[0].ch == -2) ? h_dir_shuf_down
: (opts[1].ch == -2) ? h_dir_shuf_up
: h_dir_shuf;
-@@ -3037,7 +3035,7 @@
+@@ -3400,7 +3398,7 @@
switch(rv){
case 'x':
-- q_status_message(SM_ORDER, 0, 3, "Shuffle cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消重整");
+- cmd_cancelled("Shuffle");
++ cmd_ cancelled("重整");
return;
case 'u':
-@@ -3075,7 +3073,7 @@
+@@ -3438,7 +3436,7 @@
free_list_array(&new_list);
if(j){
q_status_message(SM_ORDER, 0, 3,
@@ -685,7 +932,7 @@
set_current_val((*cl)->var, TRUE, FALSE);
return;
}
-@@ -3127,10 +3125,10 @@
+@@ -3490,10 +3488,10 @@
info = break_up_ldap_server(raw_server);
if(strcmp((*cl)->var->current_val.l[(*cl)->varmem], raw_server) == 0)
@@ -698,7 +945,7 @@
else{
char tmp[900];
char *subtitle;
-@@ -3967,7 +3965,7 @@
+@@ -4334,7 +4332,7 @@
}
else
q_status_message(SM_ORDER, 3, 3,
@@ -707,7 +954,7 @@
}
else{
int cnt, ans = 0;
-@@ -3990,11 +3988,11 @@
+@@ -4357,11 +4355,11 @@
*/
if(!(*cl)->var->user_val.l && cnt > 1){
static ESCKEY_S opts[] = {
@@ -722,7 +969,7 @@
-FOOTER_ROWS(ps), opts, 'i', 'x',
h_ab_del_dir_ignore, RB_NORM);
}
-@@ -4100,7 +4098,7 @@
+@@ -4467,7 +4465,7 @@
CONF_S *first_line = NULL;
q_status_message(SM_ORDER, 0, 3,
@@ -731,7 +978,7 @@
dir_init_display(ps, cl, servers,
&ps->vars[V_LDAP_SERVERS], &first_line);
*cl = first_line;
-@@ -4140,7 +4138,7 @@
+@@ -4507,7 +4505,7 @@
}
}
else
@@ -740,7 +987,7 @@
}
if(rv == 1){
-@@ -4164,7 +4162,7 @@
+@@ -4531,7 +4529,7 @@
int (*tool)();
{
new_confline(ctmp);
@@ -749,7 +996,7 @@
(*ctmp)->value = cpystr(ADD_FIRST_LDAP_SERVER);
(*ctmp)->var = var;
(*ctmp)->varmem = 0;
-@@ -4227,7 +4225,7 @@
+@@ -4594,7 +4592,7 @@
p->next = b;
}
@@ -758,7 +1005,7 @@
(*ctmp)->value = serv;
(*ctmp)->var = var;
(*ctmp)->varmem = member;
-@@ -4709,7 +4707,7 @@
+@@ -5111,7 +5109,7 @@
if(i)
config_scroll_up(i);
else
@@ -767,7 +1014,7 @@
}
break;
-@@ -4733,7 +4731,7 @@
+@@ -5153,7 +5151,7 @@
}
else
q_status_message(SM_ORDER, 0, 1,
@@ -776,7 +1023,7 @@
break;
-@@ -4776,7 +4774,7 @@
+@@ -5197,7 +5195,7 @@
if(ctmpa == screen->current){
q_status_message(SM_ORDER,0,1,
@@ -785,7 +1032,7 @@
goto no_down;
}
-@@ -4807,7 +4805,7 @@
+@@ -5229,7 +5227,7 @@
if(ctmpa){
if(ctmpa == screen->current)
q_status_message(SM_ORDER, 0, 1,
@@ -794,7 +1041,7 @@
screen->current = ctmpa;
}
-@@ -4965,13 +4963,13 @@
+@@ -5405,13 +5403,13 @@
HelpType help;
static ESCKEY_S ekey[] = {
{0, 0, "", ""},
@@ -811,7 +1058,7 @@
(last[0]) ? "[" : "",
(last[0]) ? last : "",
(last[0]) ? "]" : "");
-@@ -5093,7 +5091,7 @@
+@@ -5534,7 +5532,7 @@
result = "Searched to bottom";
}
else
@@ -820,7 +1067,7 @@
if((found & FOUND_IT) && ctmpa){
strcpy(last, buf);
-@@ -5112,7 +5110,7 @@
+@@ -5553,7 +5551,7 @@
screen->current = ctmpa;
}
@@ -829,7 +1076,7 @@
}
break;
-@@ -5128,8 +5126,8 @@
+@@ -5569,8 +5567,8 @@
&& (ps_global->restricted || ps_global->readonly_pinerc)){
q_status_message1(SM_ORDER, 0, 3,
"%s can't change options or settings",
@@ -840,7 +1087,7 @@
if(cmd == MC_EXIT){
retval = 0;
done++;
-@@ -5145,9 +5143,9 @@
+@@ -5586,9 +5584,9 @@
&screen->current, flags)){
case -1:
q_status_message2(SM_ORDER, 0, 2,
@@ -852,7 +1099,7 @@
break;
case 0:
-@@ -5495,11 +5493,11 @@
+@@ -5971,11 +5969,11 @@
ekey[1].ch = ctrl('P');
ekey[1].rval = ctrl('P');
ekey[1].name = "^P";
@@ -866,8 +1113,8 @@
ekey[3].ch = KEY_DOWN;
ekey[3].rval = ctrl('P');
ekey[3].name = "";
-@@ -5514,12 +5512,12 @@
- sval[0] = '\0';
+@@ -5989,12 +5987,12 @@
+
switch(cmd){
case MC_ADD: /* add to list */
- if(fixed_var((*cl)->var, "add to", NULL)){
@@ -877,11 +1124,11 @@
else if(!(*cl)->var->is_list && (*cl)->var->user_val.p){
q_status_message(SM_ORDER, 3, 3,
- "Only single value allowed. Use \"Change\".");
-+ "僅允許\單一設定值。請用 \"Change\".");
++ "僅允許\單一設定值。請用 \"修改\".");
}
else{
int maxwidth =min(80,ps->ttyo->screen_cols) - 15;
-@@ -5543,7 +5541,7 @@
+@@ -6018,7 +6016,7 @@
}
sprintf(prompt,
@@ -890,7 +1137,7 @@
}
else if((*cl)->var->is_list
&& !(*cl)->var->user_val.l
-@@ -5552,13 +5550,13 @@
+@@ -6027,13 +6025,13 @@
ekey[0].ch = 'r';
ekey[0].rval = 'r';
ekey[0].name = "R";
@@ -907,7 +1154,7 @@
switch(radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'a', 'x',
h_config_replace_add, RB_NORM)){
case 'a':
-@@ -5572,25 +5570,25 @@
+@@ -6047,25 +6045,25 @@
}
add_text:
@@ -927,8 +1174,8 @@
case 'x':
i = 1;
-- q_status_message(SM_ORDER,0,3,"Add cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消新增");
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
break;
}
}
@@ -940,7 +1187,7 @@
ps->mangled_footer = 1;
-@@ -5607,7 +5605,7 @@
+@@ -6082,7 +6080,7 @@
ekey[0].ch = ctrl('W');
ekey[0].rval = 5;
ekey[0].name = "^W";
@@ -949,7 +1196,7 @@
ekey[1].ch = -1;
}
else if(!(flags&CF_NUMBER))
-@@ -5660,7 +5658,7 @@
+@@ -6135,7 +6133,7 @@
}
else{
q_status_message1(SM_ORDER, 0, 3,
@@ -958,7 +1205,7 @@
rv = ps->mangled_body = 0;
}
-@@ -5668,7 +5666,7 @@
+@@ -6143,7 +6141,7 @@
}
else{
q_status_message1(SM_ORDER, 0, 3,
@@ -967,7 +1214,7 @@
}
}
else{
-@@ -5676,7 +5674,7 @@
+@@ -6151,7 +6149,7 @@
&& !(isdigit((unsigned char)sval[0])
|| sval[0] == '-' || sval[0] == '+')){
q_status_message(SM_ORDER,3,3,
@@ -976,16 +1223,16 @@
i = 3; /* to keep loop going */
continue;
}
-@@ -5689,7 +5687,7 @@
+@@ -6164,7 +6162,7 @@
}
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Add cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消新增");
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
}
else if(i == 3){
help = help == NO_HELP ? h_config_add : NO_HELP;
-@@ -5712,8 +5710,8 @@
+@@ -6187,8 +6185,8 @@
}
sprintf(prompt,
@@ -996,7 +1243,7 @@
continue;
}
else if(i == ctrl('P')){
-@@ -5733,7 +5731,7 @@
+@@ -6208,7 +6206,7 @@
*/
if(++repeat_key > 0){
q_status_message1(SM_ORDER,3,3,
@@ -1005,7 +1252,7 @@
repeat_key = -5;
}
}
-@@ -5757,7 +5755,7 @@
+@@ -6232,7 +6230,7 @@
if(numval == hirange){
if(++repeat_key > 0){
q_status_message1(SM_ORDER,3,3,
@@ -1014,25 +1261,25 @@
repeat_key = -5;
}
}
-@@ -5782,7 +5780,7 @@
+@@ -6257,7 +6255,7 @@
&& (*cl)->var->current_val.p){
char pmt[40];
- sprintf(pmt, "Override default with %s", empty_val2);
-+ sprintf(pmt, "以 %s 覆蓋預設值", empty_val2);
++ sprintf(pmt, "以 %s 覆蓋\預設值", empty_val2);
if(want_to(pmt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
sval[0] = '\0';
(*cl)->var->user_val.p = cpystr(sval);
-@@ -5795,7 +5793,7 @@
+@@ -6270,7 +6268,7 @@
&& (*cl)->var->current_val.l){
char pmt[40];
- sprintf(pmt, "Override default with %s", empty_val2);
-+ sprintf(pmt, "以 %s 覆蓋預設值", empty_val2);
++ sprintf(pmt, "以 %s 覆蓋\預設值", empty_val2);
if(want_to(pmt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
char **ltmp;
-@@ -5810,7 +5808,7 @@
+@@ -6285,7 +6283,7 @@
}
else if(((*cl)->var->is_list && !(*cl)->var->user_val.l)
|| (!(*cl)->var->is_list && !(*cl)->var->user_val.p)){
@@ -1041,7 +1288,7 @@
}
else{
if((*cl)->var->is_fixed)
-@@ -5826,7 +5824,8 @@
+@@ -6301,7 +6299,8 @@
: "<NULL VALUE>",
(*cl)->var->name);
else
@@ -1051,7 +1298,7 @@
(*cl)->var->is_list ? "item " : "",
(*cl)->var->is_list
? int2string((*cl)->varmem + 1)
-@@ -5834,8 +5833,7 @@
+@@ -6309,8 +6308,7 @@
? (!*(*cl)->var->user_val.p)
? empty_val2
: (*cl)->var->user_val.p
@@ -1061,7 +1308,7 @@
ps->mangled_footer = 1;
if(want_to(prompt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
-@@ -5850,7 +5848,7 @@
+@@ -6325,7 +6323,7 @@
}
}
else
@@ -1070,7 +1317,7 @@
}
break;
-@@ -5978,7 +5976,7 @@
+@@ -6458,7 +6456,7 @@
&& !(isdigit((unsigned char)sval[0])
|| sval[0] == '-' || sval[0] == '+')){
q_status_message(SM_ORDER,3,3,
@@ -1079,16 +1326,16 @@
continue;
}
-@@ -5992,7 +5990,7 @@
+@@ -6472,7 +6470,7 @@
}
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("改變");
}
else if(i == 3){
help = help == NO_HELP ? h_config_change : NO_HELP;
-@@ -6010,7 +6008,7 @@
+@@ -6490,7 +6488,7 @@
*/
if(++repeat_key > 0){
q_status_message1(SM_ORDER,3,3,
@@ -1097,7 +1344,7 @@
repeat_key = -5;
}
}
-@@ -6026,7 +6024,7 @@
+@@ -6506,7 +6504,7 @@
if(numval == hirange){
if(++repeat_key > 0){
q_status_message1(SM_ORDER,3,3,
@@ -1106,7 +1353,7 @@
repeat_key = -5;
}
}
-@@ -6113,15 +6111,15 @@
+@@ -6596,16 +6594,16 @@
if(flags & CF_CHANGES){
switch(want_to(EXIT_PMT, 'y', 'x', h_config_undo, WT_FLUSH_IN)){
case 'y':
@@ -1120,22 +1367,18 @@
return(10);
case 'x': /* ^C */
+ default :
- q_status_message(SM_ORDER,3,5,"Changes not yet saved");
+ q_status_message(SM_ORDER,3,5,"改變尚未被存檔");
return(0);
}
}
-@@ -6413,7 +6411,7 @@
- && want_to("Delete old unused personal option setting",
- 'y', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
- fs_give((void **)&(*cl)->var->user_val.p);
-- q_status_message(SM_ORDER, 0, 3, "Deleted");
-+ q_status_message(SM_ORDER, 0, 3, "已刪除");
- rv = 1;
- }
+@@ -6894,10 +6892,10 @@
-@@ -6552,7 +6550,7 @@
- && want_to("Delete old unused personal option setting",
+ if(fixed_var((*cl)->var, NULL, NULL)){
+ if((*cl)->var->user_val.p
+- && want_to("Delete old unused personal option setting",
++ && want_to("刪除舊有未使用的個人選項設定",
'y', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
fs_give((void **)&(*cl)->var->user_val.p);
- q_status_message(SM_ORDER, 0, 3, "Deleted");
@@ -1143,7 +1386,7 @@
rv = 1;
}
-@@ -6642,15 +6640,15 @@
+@@ -7175,15 +7173,15 @@
fs_give((void **)&q);
}
@@ -1162,7 +1405,7 @@
retval = 1;
}
-@@ -6661,11 +6659,11 @@
+@@ -7194,11 +7192,11 @@
set_variable(V_PERSONAL_PRINT_CATEGORY,
comatose(ps->printer_category), 0);
q_status_message1(SM_ORDER,0,3,
@@ -1176,7 +1419,7 @@
retval = 1;
}
-@@ -6680,11 +6678,11 @@
+@@ -7213,11 +7211,11 @@
set_variable(V_PERSONAL_PRINT_CATEGORY,
comatose(ps->printer_category), 0);
q_status_message1(SM_ORDER,0,3,
@@ -1190,7 +1433,7 @@
retval = 1;
}
-@@ -6734,23 +6732,23 @@
+@@ -7267,23 +7265,23 @@
switch(cmd){
case MC_ADD: /* add to list */
sval[0] = '\0';
@@ -1219,7 +1462,7 @@
switch(i = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'a',
'x', h_config_replace_add, RB_NORM)){
case 'a':
-@@ -6766,17 +6764,17 @@
+@@ -7299,17 +7297,17 @@
ltmp[k + 1] = ltmp[k] = NULL;
add_text:
@@ -1231,16 +1474,16 @@
replace_text:
strcpy(prompt,
- "Enter the name for replacement printer : ");
-+ "欲取代的印表機名稱:");
++ "欲取代的印表機名:");
break;
case 'x':
-- q_status_message(SM_ORDER,0,3,"Add cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消新增");
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
break;
}
-@@ -6784,7 +6782,7 @@
+@@ -7317,7 +7315,7 @@
break;
}
else
@@ -1249,7 +1492,7 @@
ps->mangled_footer = 1;
help = NO_HELP;
-@@ -6796,7 +6794,7 @@
+@@ -7329,7 +7327,7 @@
ekey[0].ch = ctrl('W');
ekey[0].rval = 5;
ekey[0].name = "^W";
@@ -1258,16 +1501,16 @@
ekey[1].ch = -1;
}
else
-@@ -6812,7 +6810,7 @@
+@@ -7345,7 +7343,7 @@
removing_leading_and_trailing_white_space(name);
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Add cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消新增");
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
}
else if(i == 3){
help = (help == NO_HELP) ? h_config_insert_after : NO_HELP;
-@@ -6830,7 +6828,7 @@
+@@ -7363,7 +7361,7 @@
#ifdef OS2
strcpy(prompt, "Enter port or |command : ");
#else
@@ -1276,7 +1519,7 @@
#endif
while(i != 0 && i != 1){
oeflags = OE_APPEND_CURRENT;
-@@ -6880,10 +6878,10 @@
+@@ -7413,10 +7411,10 @@
}
else
q_status_message1(SM_ORDER, 0, 3,
@@ -1284,12 +1527,12 @@
+ "無法將 %s 新增至列表中", empty_val);
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Add cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消新增");
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
}
else if(i == 3){
help = help == NO_HELP ? h_config_print_cmd : NO_HELP;
-@@ -6927,13 +6925,13 @@
+@@ -7460,13 +7458,13 @@
if((*cl)->var->is_fixed){
parse_printer((*cl)->var->user_val.l[(*cl)->varmem],
&nick, &p, NULL, NULL, NULL, NULL);
@@ -1305,7 +1548,7 @@
int2string((*cl)->varmem + 1));
ps->mangled_footer = 1;
-@@ -6943,7 +6941,7 @@
+@@ -7476,7 +7474,7 @@
config_del_list_item(cl, &newval);
}
else
@@ -1314,7 +1557,7 @@
}
break;
-@@ -6954,7 +6952,7 @@
+@@ -7487,7 +7485,7 @@
&& !strucmp(ps->VAR_PRINTER,(*cl)->var->current_val.l[(*cl)->varmem]))
changing_selected = 1;
@@ -1323,7 +1566,7 @@
break;
else if(!(*cl)->var->user_val.l && (*cl)->var->current_val.l)
goto replace_text;
-@@ -6966,22 +6964,22 @@
+@@ -7499,22 +7497,22 @@
ekey[0].ch = 'n';
ekey[0].rval = 'n';
ekey[0].name = "N";
@@ -1341,17 +1584,17 @@
+ ekey[2].label = "選項";
ekey[3].ch = -1;
- strcpy(prompt, "Change Name or Command or Options ? ");
-+ strcpy(prompt, "修改名稱、命令或選項?");
++ strcpy(prompt, "修改「名稱」、「命令」或「選項」?");
i = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'c', 'x',
h_config_print_name_cmd, RB_NORM);
if(i == 'x'){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("修改");
break;
}
else if(i == 'c'){
-@@ -6990,7 +6988,7 @@
+@@ -7523,7 +7521,7 @@
parse_printer((*cl)->var->user_val.l[(*cl)->varmem],
NULL, &p, NULL, NULL, NULL, &all_but_cmd);
@@ -1360,7 +1603,7 @@
strcpy(sval, p ? p : "");
fs_give((void **)&p);
-@@ -7028,12 +7026,12 @@
+@@ -7561,12 +7559,12 @@
* Don't allow input of multiple entries at once.
*/
q_status_message(SM_ORDER,3,5,
@@ -1370,12 +1613,12 @@
}
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("修改");
}
else if(i == 3){
help = help == NO_HELP ? h_config_change : NO_HELP;
-@@ -7052,7 +7050,7 @@
+@@ -7585,7 +7583,7 @@
parse_printer((*cl)->var->user_val.l[(*cl)->varmem],
&p, NULL, NULL, NULL, &all_but_nick, NULL);
@@ -1384,16 +1627,16 @@
strcpy(name, p ? p : "");
fs_give((void **)&p);
-@@ -7081,7 +7079,7 @@
+@@ -7614,7 +7612,7 @@
newval = &(*cl)->value;
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("修改");
}
else if(i == 3){
help = help == NO_HELP ? h_config_change : NO_HELP;
-@@ -7102,18 +7100,18 @@
+@@ -7635,18 +7633,18 @@
ekey[0].ch = 'i';
ekey[0].rval = 'i';
ekey[0].name = "I";
@@ -1403,20 +1646,20 @@
ekey[1].rval = 't';
ekey[1].name = "T";
- ekey[1].label = "Trailer";
-+ ekey[1].label = "結束";
++ ekey[1].label = "結尾";
ekey[2].ch = -1;
- strcpy(prompt, "Change Init string or Trailer string ? ");
-+ strcpy(prompt, "修改初始或結束字串?");
++ strcpy(prompt, "修改「初始」或「結尾」字串?");
j = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'i', 'x',
h_config_print_opt_choice, RB_NORM);
if(j == 'x'){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("修改");
break;
}
else{
-@@ -7122,8 +7120,8 @@
+@@ -7655,8 +7653,8 @@
parse_printer((*cl)->var->user_val.l[(*cl)->varmem],
&nick, &p, &init, &trailer, NULL, NULL);
@@ -1427,16 +1670,16 @@
strcpy(sval, (j == 'i') ? init : trailer);
tmp = string_to_cstring(sval);
-@@ -7177,7 +7175,7 @@
+@@ -7710,7 +7708,7 @@
newval = &(*cl)->value;
}
else if(i == 1){
-- q_status_message(SM_ORDER,0,3,"Change cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消修改");
+- cmd_cancelled("Change");
++ cmd_cancelled("修改");
}
else if(i == 3){
help=(help == NO_HELP)?h_config_print_init:NO_HELP;
-@@ -7255,18 +7253,18 @@
+@@ -7788,18 +7786,18 @@
case MC_DELETE :
if((*cl)->d.c.ct->use & CNTXT_INCMNG)
@@ -1459,7 +1702,7 @@
context_select_edit(ps, cl);
ps->mangled_screen = 1;
}
-@@ -7274,7 +7272,7 @@
+@@ -7807,7 +7805,7 @@
break;
case MC_ADD :
@@ -1468,7 +1711,7 @@
context_select_add(ps, cl);
ps->mangled_screen = 1;
}
-@@ -7283,9 +7281,9 @@
+@@ -7816,9 +7814,9 @@
case MC_SHUFFLE :
if((*cl)->d.c.ct->use & CNTXT_INCMNG)
@@ -1480,7 +1723,7 @@
context_select_shuffle(ps, cl);
break;
-@@ -7352,7 +7350,7 @@
+@@ -7890,7 +7888,7 @@
struct key_menu *km;
CONT_SCR_S *cs;
@@ -1489,7 +1732,7 @@
/* create a corresponding new CONF_S */
new_ctxt = new_context(raw_ctxt, NULL);
-@@ -7416,7 +7414,7 @@
+@@ -7954,7 +7952,7 @@
/* Tell the user it was a huge success... */
q_status_message(SM_ORDER, 0, 3,
@@ -1498,7 +1741,7 @@
}
}
-@@ -7435,11 +7433,11 @@
+@@ -7973,11 +7971,11 @@
if(!((*cl)->var->user_val.l && (*cl)->var->user_val.l[0])){
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -1512,7 +1755,7 @@
old_cl->value);
if(want_to(tmp, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){
/* Remove from var list */
-@@ -7551,12 +7549,12 @@
+@@ -8089,12 +8087,12 @@
ps->mangled_body = 1;
q_status_message(SM_ORDER, 0, 3,
(old_cl == *cl)
@@ -1528,7 +1771,7 @@
}
-@@ -7578,7 +7576,7 @@
+@@ -8116,7 +8114,7 @@
if(p = strstr(tpath, "%s"))
*p = '\0';
@@ -1537,7 +1780,7 @@
(*cl)->d.c.ct->server, tpath,
(*cl)->d.c.ct->dir->view.user)){
-@@ -7648,7 +7646,7 @@
+@@ -8186,7 +8184,7 @@
set_current_val((*cl)->var, TRUE, FALSE);
@@ -1546,7 +1789,7 @@
}
}
-@@ -7670,14 +7668,14 @@
+@@ -8208,14 +8206,14 @@
ekey[n].ch = 'u';
ekey[n].rval = 'u';
ekey[n].name = "U";
@@ -1563,7 +1806,7 @@
}
if(n){
-@@ -7690,7 +7688,7 @@
+@@ -8228,7 +8226,7 @@
if((cmd = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey,
(n == 1) ? 'd' : 0, 'x',
NO_HELP, RB_NORM)) == 'x'){
@@ -1572,7 +1815,7 @@
}
else if((cmd == 'u' && (ctmp = context_select_prev(*cl)))
|| (cmd == 'd' && (ctmp = context_select_next(*cl)))){
-@@ -7789,7 +7787,7 @@
+@@ -8327,7 +8325,7 @@
}
}
else
@@ -1581,7 +1824,7 @@
}
-@@ -8254,7 +8252,7 @@
+@@ -9046,7 +9044,7 @@
if(cl->var->current_val.l){
int i, l, l2;
@@ -1590,7 +1833,7 @@
for(i = 0; cl->var->current_val.l[i]; i++){
if(i)
*p++ = ',';
-@@ -8286,7 +8284,7 @@
+@@ -9078,7 +9076,7 @@
sprintf(tmp, cl->var->is_fixed
? "<%s%s%s%s>%*s" : "<%s%s%s%s>%*s",
cl->var->is_fixed ? fixed_val : no_val,
@@ -1599,7 +1842,7 @@
(cl->var->current_val.p) ? cl->var->current_val.p : "",
(cl->var->current_val.p) ? "\"" : "",
max(0, ps->ttyo->screen_cols - cl->valoffset - 13
-@@ -8428,7 +8426,7 @@
+@@ -9229,7 +9227,7 @@
p = (struncmp(*vp, "no-", 3)) ? *vp : *vp + 3;
if(!strucmp(p, f->name) || (og && !strucmp(p, "old-growth"))){
q_status_message(SM_ORDER, 3, 3,
@@ -1608,7 +1851,7 @@
return;
}
}
-@@ -8477,7 +8475,7 @@
+@@ -9278,7 +9276,7 @@
case F_ENABLE_INCOMING :
q_status_message(SM_ORDER | SM_DING, 3, 4,
@@ -1617,7 +1860,7 @@
break;
-@@ -8659,8 +8657,8 @@
+@@ -9464,8 +9462,8 @@
{
if(v && v->is_fixed){
q_status_message2(SM_ORDER, 3, 3,
@@ -1628,7 +1871,7 @@
return(1);
}
-@@ -8963,7 +8961,7 @@
+@@ -9887,7 +9885,7 @@
&& var->is_list
&& !var->user_val.l
&& var->current_val.l)))
@@ -1637,7 +1880,7 @@
if(var == &ps->vars[V_USER_DOMAIN]){
char *p, *q;
-@@ -8974,7 +8972,7 @@
+@@ -9898,7 +9896,7 @@
if(*(++p)){
if(!revert)
q_status_message2(SM_ORDER, 3, 5,
@@ -1646,7 +1889,7 @@
ps->VAR_USER_DOMAIN, p);
q = ps->VAR_USER_DOMAIN;
while((*q++ = *p++) != '\0')
-@@ -8983,7 +8981,7 @@
+@@ -9907,7 +9905,7 @@
else{
if(!revert)
q_status_message1(SM_ORDER, 3, 5,
@@ -1655,7 +1898,7 @@
ps->VAR_USER_DOMAIN);
fs_give((void **)&ps->USR_USER_DOMAIN);
set_current_val(&ps->vars[V_USER_DOMAIN], TRUE, TRUE);
-@@ -9043,7 +9041,7 @@
+@@ -9967,7 +9965,7 @@
else if(var == &ps->vars[V_INIT_CMD_LIST]){
if(!revert)
q_status_message(SM_ASYNC, 0, 3,
@@ -1664,7 +1907,7 @@
}
else if(var == &ps->vars[V_VIEW_HEADERS]){
ps->view_all_except = 0;
-@@ -9115,10 +9113,10 @@
+@@ -10039,10 +10037,10 @@
}
else if(timeo == 0L && !revert){
q_status_message(SM_ORDER, 4, 6,
@@ -1677,7 +1920,7 @@
}
}
#if defined(DOS) || defined(OS2)
-@@ -9431,10 +9429,10 @@
+@@ -10500,10 +10498,10 @@
static struct key role_select_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -1691,52 +1934,43 @@
PREVPAGE_MENU,
NEXTPAGE_MENU,
NULL_MENU,
-@@ -9475,7 +9473,7 @@
- new_confline(&ctmp);
- first_line = ctmp;
-
-- ctmp->value = cpystr("Default Role");
-+ ctmp->value = cpystr("預設角色");
- ctmp->d.r.selected = &sel_pat;
- ctmp->d.r.pat = &local_pat;
- ctmp->d.r.handle = pattern_h;
-@@ -9493,7 +9491,7 @@
- menu_add_binding(ctmp->keymenu, ctrl('M'), MC_CHOICE);
+@@ -10546,7 +10544,7 @@
+ menu_add_binding(&role_select_km, ctrl('M'), MC_CHOICE);
}
else{
-- menu_init_binding(ctmp->keymenu, 'S', MC_CHOICE, "S", "[Select]",
-+ menu_init_binding(ctmp->keymenu, 'S', MC_CHOICE, "S", "[選擇]",
+- menu_init_binding(&role_select_km, 'S', MC_CHOICE, "S", "[Select]",
++ menu_init_binding(&role_select_km, 'S', MC_CHOICE, "S", "[選擇]",
DEFAULT_KEY);
- menu_add_binding(ctmp->keymenu, ctrl('J'), MC_CHOICE);
- menu_add_binding(ctmp->keymenu, ctrl('M'), MC_CHOICE);
-@@ -9516,7 +9514,7 @@
+ menu_add_binding(&role_select_km, ctrl('J'), MC_CHOICE);
+ menu_add_binding(&role_select_km, ctrl('M'), MC_CHOICE);
+@@ -10580,7 +10578,7 @@
ctmp->valoffset = 4;
}
- (void)conf_scroll_screen(ps, &screen, first_line, "SELECT ROLE",
+ (void)conf_scroll_screen(ps, &screen, first_line, "選擇角色",
- "roles ", 0);
+ "roles ", 0, 0);
if(sel_pat){
-@@ -9617,23 +9615,23 @@
+@@ -10969,23 +10967,23 @@
static struct key role_config_keys[] =
{HELP_MENU,
OTHER_MENU,
- {"E", "Exit Setup", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
- {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
-- {"P", "PrevRole", {MC_PREVITEM, 1, {'p'}}, KS_NONE},
-- {"N", "NextRole", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE},
+- {"P", "PrevRule", {MC_PREVITEM, 1, {'p'}}, KS_NONE},
+- {"N", "NextRule", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE},
+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
+ {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
-+ {"P", "前一角色", {MC_PREVITEM, 1, {'p'}}, KS_NONE},
-+ {"N", "次一角色", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE},
++ {"P", "前一規則", {MC_PREVITEM, 1, {'p'}}, KS_NONE},
++ {"N", "次一規則", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE},
PREVPAGE_MENU,
NEXTPAGE_MENU,
-- {"A", "Add Role", {MC_ADD,1,{'a'}}, KS_NONE},
-- {"D", "Del Role", {MC_DELETE,1,{'d'}}, KS_NONE},
+- {"A", "Add", {MC_ADD,1,{'a'}}, KS_NONE},
+- {"D", "Delete", {MC_DELETE,1,{'d'}}, KS_NONE},
- {"$", "Shuffle", {MC_SHUFFLE,1,{'$'}}, KS_NONE},
-+ {"A", "新增角色", {MC_ADD,1,{'a'}}, KS_NONE},
-+ {"D", "刪除角色", {MC_DELETE,1,{'d'}}, KS_NONE},
++ {"A", "新增", {MC_ADD,1,{'a'}}, KS_NONE},
++ {"D", "刪除", {MC_DELETE,1,{'d'}}, KS_NONE},
+ {"$", "重新整理", {MC_SHUFFLE,1,{'$'}}, KS_NONE},
WHEREIS_MENU,
@@ -1751,69 +1985,238 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -9889,7 +9887,7 @@
+@@ -11262,7 +11260,7 @@
case MC_DELETE :
if(first_one)
q_status_message(SM_ORDER|SM_DING, 0, 3,
- "Nothing to Delete, use Add");
+ "沒有可供刪除的項目,請用新增");
else
- rv = role_config_del(ps, cl);
+ rv = role_config_del(ps, cl, role_global_flags);
-@@ -9910,14 +9908,14 @@
+@@ -11283,14 +11281,14 @@
case MC_SHUFFLE :
if(first_one)
q_status_message(SM_ORDER|SM_DING, 0, 3,
- "Nothing to Shuffle, use Add");
-+ "沒有可供刪除的項目,請用新增");
++ "沒有可供重整的項目,請用新增");
else
rv = role_config_shuffle(ps, cl);
break;
case MC_EXIT :
-- rv = screen_exit_cmd(flags, "Role Configuration");
-+ rv = screen_exit_cmd(flags, "角色設定");
+- role_type_print(exitpmt, "%sRule Setup", role_global_flags);
++ role_type_print(exitpmt, "%s規則設定", role_global_flags);
+ rv = screen_exit_cmd(flags, exitpmt);
break;
- case MC_ADDFILE :
-@@ -10158,7 +10156,7 @@
- delete_a_role(cl);
- }
- else
-- q_status_message(SM_ORDER, 0, 3, "Role not deleted");
-+ q_status_message(SM_ORDER, 0, 3, "角色未被刪除");
-
- return(rv);
- }
-@@ -10724,7 +10722,7 @@
- free_patline(&cur_patline);
- }
- else
-- q_status_message(SM_ORDER, 0, 3, "Role file not removed");
-+ q_status_message(SM_ORDER, 0, 3, "角色檔未被移除");
-
- return(rv);
- }
-@@ -11084,7 +11082,7 @@
-
+@@ -11789,7 +11787,7 @@
+ help, RB_NORM);
- struct variable *role_rule_ptr;
--#define ALT_ROLE "Alternate Role"
-+#define ALT_ROLE "替代角色"
-
- CONF_S *inick_confs[5];
- #define INICK_INICK_CONF 0
-@@ -11216,7 +11214,7 @@
- def->action->role->inherit_nick &&
- def->action->role->inherit_nick[0])
- ? cpystr(def->action->role->inherit_nick) : NULL;
-- inick_var.global_val.p = cpystr("Default Role");
-+ inick_var.global_val.p = cpystr("預設角色");
+ if(rv == 'x'){
+- cmd_cancelled("Shuffle");
++ cmd_cancelled("重整");
+ return(0);
+ }
- from_act_var.name = cpystr("Set From");
+@@ -11949,7 +11947,7 @@
+ continue;
+ }
+ else if(r == 1 || (r == 0 && filename[0] == '\0')){
+- cmd_cancelled("IncludeFile");
++ cmd_cancelled("含括檔案");
+ return(rv);
+ }
+ else if(r == 4){
+@@ -12684,22 +12682,22 @@
+ ? cpystr(def->patgrp->nick) : NULL;
+
+ nick_var.global_val.p = cpystr(edit_role
+- ? "Alternate Role"
++ ? "替代角色"
+ : (edit_incol
+- ? "Index Color Rule"
++ ? "索引色彩規則"
+ : (edit_score
+- ? "Score Rule"
+- : "Filter Rule")));
++ ? "得分規則"
++ : "過濾器規則")));
+ set_current_val(&nick_var, FALSE, FALSE);
+
+- to_pat_var.name = cpystr("To pattern");
++ to_pat_var.name = cpystr("目的式樣");
+ to_pat_var.is_used = 1;
+ to_pat_var.is_user = 1;
+ to_pat_var.user_val.p = (def && def->patgrp)
+ ? pattern_to_string(def->patgrp->to) : NULL;
+ set_current_val(&to_pat_var, FALSE, FALSE);
+
+- from_pat_var.name = cpystr("From pattern");
++ from_pat_var.name = cpystr("來源式樣");
+ from_pat_var.is_used = 1;
+ from_pat_var.is_user = 1;
+ from_pat_var.user_val.p = (def && def->patgrp)
+@@ -12707,7 +12705,7 @@
+ : NULL;
+ set_current_val(&from_pat_var, FALSE, FALSE);
+
+- sender_pat_var.name = cpystr("Sender pattern");
++ sender_pat_var.name = cpystr("寄件者式樣");
+ sender_pat_var.is_used = 1;
+ sender_pat_var.is_user = 1;
+ sender_pat_var.user_val.p = (def && def->patgrp)
+@@ -12715,28 +12713,28 @@
+ : NULL;
+ set_current_val(&sender_pat_var, FALSE, FALSE);
+
+- cc_pat_var.name = cpystr("Cc pattern");
++ cc_pat_var.name = cpystr("副本式樣");
+ cc_pat_var.is_used = 1;
+ cc_pat_var.is_user = 1;
+ cc_pat_var.user_val.p = (def && def->patgrp)
+ ? pattern_to_string(def->patgrp->cc) : NULL;
+ set_current_val(&cc_pat_var, FALSE, FALSE);
+
+- recip_pat_var.name = cpystr("Recip pattern");
++ recip_pat_var.name = cpystr("領受者式樣");
+ recip_pat_var.is_used = 1;
+ recip_pat_var.is_user = 1;
+ recip_pat_var.user_val.p = (def && def->patgrp)
+ ? pattern_to_string(def->patgrp->recip) : NULL;
+ set_current_val(&recip_pat_var, FALSE, FALSE);
+
+- partic_pat_var.name = cpystr("Partic pattern");
++ partic_pat_var.name = cpystr("關係者式樣");
+ partic_pat_var.is_used = 1;
+ partic_pat_var.is_user = 1;
+ partic_pat_var.user_val.p = (def && def->patgrp)
+ ? pattern_to_string(def->patgrp->partic) : NULL;
+ set_current_val(&partic_pat_var, FALSE, FALSE);
+
+- news_pat_var.name = cpystr("News pattern");
++ news_pat_var.name = cpystr("新聞式樣");
+ news_pat_var.is_used = 1;
+ news_pat_var.is_user = 1;
+ news_pat_var.user_val.p = (def && def->patgrp)
+@@ -12744,7 +12742,7 @@
+ : NULL;
+ set_current_val(&news_pat_var, FALSE, FALSE);
+
+- subj_pat_var.name = cpystr("Subject pattern");
++ subj_pat_var.name = cpystr("主題式樣");
+ subj_pat_var.is_used = 1;
+ subj_pat_var.is_user = 1;
+ subj_pat_var.user_val.p = (def && def->patgrp)
+@@ -12752,7 +12750,7 @@
+ : NULL;
+ set_current_val(&subj_pat_var, FALSE, FALSE);
+
+- alltext_pat_var.name = cpystr("AllText pattern");
++ alltext_pat_var.name = cpystr("所有文字式樣");
+ alltext_pat_var.is_used = 1;
+ alltext_pat_var.is_user = 1;
+ alltext_pat_var.user_val.p = (def && def->patgrp)
+@@ -12761,7 +12759,7 @@
+ set_current_val(&alltext_pat_var, FALSE, FALSE);
+
+ scorei_pat_global_ptr = &scorei_pat_var;
+- scorei_pat_var.name = cpystr("Score interval");
++ scorei_pat_var.name = cpystr("得分區間");
+ scorei_pat_var.is_used = 1;
+ scorei_pat_var.is_user = 1;
+ if(def && def->patgrp && def->patgrp->do_score)
+@@ -12778,7 +12776,7 @@
+
+ pindent += 3;
+
+- inick_var.name = cpystr("Initialize settings using role");
++ inick_var.name = cpystr("使用角色初始化設定");
+ inick_var.is_used = 1;
+ inick_var.is_user = 1;
+ inick_var.user_val.p = (def && def->action &&
+@@ -12787,13 +12785,13 @@
+ ? cpystr(def->action->inherit_nick) : NULL;
+
+ role_fldr_ptr = &fldr_type_var; /* so radiobuttons can tell */
+- fldr_type_var.name = cpystr("Current Folder Type");
++ fldr_type_var.name = cpystr("目前檔案匣形態");
+ fldr_type_var.is_used = 1;
+ fldr_type_var.is_user = 1;
+ fldr_type_var.user_val.p = (f=pat_fldr_types((def && def->patgrp) ? def->patgrp->fldr_type : -1)) ? cpystr(f->name) : NULL;
+ set_current_val(&fldr_type_var, FALSE, FALSE);
+
+- folder_pat_var.name = cpystr("Folder");
++ folder_pat_var.name = cpystr("檔案匣");
+ folder_pat_var.is_used = 1;
+ folder_pat_var.is_user = 1;
+ folder_pat_var.user_val.p = (def && def->patgrp)
+@@ -12801,7 +12799,7 @@
+ : NULL;
+ set_current_val(&folder_pat_var, FALSE, FALSE);
+
+- from_act_var.name = cpystr("Set From");
++ from_act_var.name = cpystr("設定「來源」");
from_act_var.is_used = 1;
-@@ -12115,7 +12113,7 @@
+ from_act_var.is_user = 1;
+ if(def && def->action && def->action->from){
+@@ -12813,7 +12811,7 @@
+ else
+ from_act_var.user_val.p = NULL;
+
+- replyto_act_var.name = cpystr("Set Reply-To");
++ replyto_act_var.name = cpystr("設定「回覆至」");
+ replyto_act_var.is_used = 1;
+ replyto_act_var.is_user = 1;
+ if(def && def->action && def->action->replyto){
+@@ -12826,26 +12824,26 @@
+ else
+ replyto_act_var.user_val.p = NULL;
+
+- fcc_act_var.name = cpystr("Set Fcc");
++ fcc_act_var.name = cpystr("設定「檔案副本」");
+ fcc_act_var.is_used = 1;
+ fcc_act_var.is_user = 1;
+ fcc_act_var.user_val.p = (def && def->action && def->action->fcc)
+ ? cpystr(def->action->fcc) : NULL;
+
+- sig_act_var.name = cpystr("Set Signature");
++ sig_act_var.name = cpystr("設定「簽名」");
+ sig_act_var.is_used = 1;
+ sig_act_var.is_user = 1;
+ sig_act_var.user_val.p = (def && def->action && def->action->sig)
+ ? cpystr(def->action->sig) : NULL;
+
+- templ_act_var.name = cpystr("Set Template");
++ templ_act_var.name = cpystr("設定「模版」");
+ templ_act_var.is_used = 1;
+ templ_act_var.is_user = 1;
+ templ_act_var.user_val.p = (def && def->action && def->action->template)
+ ? cpystr(def->action->template) : NULL;
+
+ score_act_global_ptr = &score_act_var;
+- score_act_var.name = cpystr("Score Value");
++ score_act_var.name = cpystr("得分值");
+ score_act_var.is_used = 1;
+ score_act_var.is_user = 1;
+ if(def && def->action && def->action->scoreval >= SCORE_MIN &&
+@@ -14262,12 +14260,12 @@
+ break;
+
+ case 'n':
+- q_status_message(SM_ORDER,3,5,"No changes saved");
++ q_status_message(SM_ORDER,3,5,"修改未被存入");
+ rv = 10;
+ break;
+
+ case 'x': /* ^C */
+- q_status_message(SM_ORDER,3,5,"Changes not yet saved");
++ q_status_message(SM_ORDER,3,5,"修改尚未存入");
+ rv = 0;
+ break;
+ }
+@@ -14396,7 +14394,7 @@
if(file[len=(strlen(file)-1)] == '|')
file[len] = '\0';
@@ -1822,3 +2225,92 @@
err = signature_edit(file, title);
}
+@@ -14434,7 +14432,7 @@
+ if(i == 0)
+ break;
+ else if(i == 1){
+- cmd_cancelled("eXtraHdr");
++ cmd_cancelled("額外標頭");
+ cancel = 1;
+ break;
+ }
+@@ -14545,7 +14543,7 @@
+ sprintf(tmp, "Really remove \"%s\" pattern from this rule",
+ (ea && ea->a && ea->a->field) ? ea->a->field : "this");
+ if(want_to(tmp, 'y', 'n', NO_HELP, WT_NORM) != 'y'){
+- cmd_cancelled("RemoveHdr");
++ cmd_cancelled("刪除標頭");
+ return(rv);
+ }
+
+@@ -14613,8 +14611,8 @@
+ char prompt[60];
+
+ rv = 0;
+- sprintf(prompt, "%s the interval : ",
+- (*cl)->var->user_val.p ? "Change" : "Enter");
++ sprintf(prompt, "%s區間值:",
++ (*cl)->var->user_val.p ? "修改" : "輸入");
+
+ ps->mangled_footer = 1;
+ help = NO_HELP;
+@@ -14640,7 +14638,7 @@
+ (*cl)->value = pretty_value(ps, *cl);
+ }
+ else if(i == 1)
+- cmd_cancelled(cmd == MC_ADD ? "Add" : "Change");
++ cmd_cancelled(cmd == MC_ADD ? "新增" : "修改");
+ else if(i == 3){
+ help = help == NO_HELP ? h_config_edit_scorei : NO_HELP;
+ continue;
+@@ -14685,12 +14683,12 @@
+ break;
+
+ case 'n':
+- q_status_message(SM_ORDER,3,5,"No changes saved");
++ q_status_message(SM_ORDER,3,5,"修改未被存入");
+ rv = 10;
+ break;
+
+ case 'x': /* ^C */
+- q_status_message(SM_ORDER,3,5,"Changes not yet saved");
++ q_status_message(SM_ORDER,3,5,"修改尚未存入");
+ rv = 0;
+ break;
+ }
+@@ -15712,7 +15710,7 @@
+ /* First, confirm that user wants to restore all default colors */
+ if(want_to("Really restore all colors to default values",
+ 'y', 'n', NO_HELP, WT_NORM) != 'y'){
+- cmd_cancelled("RestoreDefs");
++ cmd_cancelled("回存預設值");
+ return(rv);
+ }
+
+@@ -15768,7 +15766,7 @@
+ if(i == 0)
+ break;
+ else if(i == 1){
+- cmd_cancelled("Add");
++ cmd_cancelled("新增");
+ cancel = 1;
+ break;
+ }
+@@ -15857,7 +15855,7 @@
+
+ sprintf(prompt, "Really delete \"%s\" color from config", header);
+ if(want_to(prompt, 'y', 'n', NO_HELP, WT_NORM) != 'y'){
+- cmd_cancelled("Delete");
++ cmd_cancelled("刪除");
+ return(rv);
+ }
+
+@@ -15989,7 +15987,7 @@
+
+ switch(i){
+ case 'x':
+- cmd_cancelled("Shuffle");
++ cmd_cancelled("重整");
+ return(rv);
+
+ case 'u':
diff --git a/chinese/pine4/files/patch-bg b/chinese/pine4/files/patch-bg
index 3a9b70e..ccf347b 100644
--- a/chinese/pine4/files/patch-bg
+++ b/chinese/pine4/files/patch-bg
@@ -1,6 +1,6 @@
---- pine/pine.c.orig Sat Jan 30 01:59:01 1999
-+++ pine/pine.c Tue Feb 23 15:50:13 1999
-@@ -114,12 +114,12 @@
+--- pine/pine.c.orig Tue Sep 21 07:17:58 1999
++++ pine/pine.c Thu Oct 14 12:13:57 1999
+@@ -115,12 +115,12 @@
OTHER_MENU,
NULL_MENU,
NULL_MENU,
@@ -17,7 +17,7 @@
NULL_MENU,
NULL_MENU,
-@@ -129,11 +129,11 @@
+@@ -130,10 +130,10 @@
COMPOSE_MENU,
LISTFLD_MENU,
GOTO_MENU,
@@ -25,16 +25,14 @@
- {"J","Journal",{MC_JOURNAL,1,{'j'}},KS_REVIEW},
- {"S","Setup",{MC_SETUP,1,{'s'}},KS_NONE},
- {"A","AddrBook",{MC_ADDRBOOK,1,{'a'}},KS_ADDRBOOK},
-- {"#","Role",{MC_ROLE,1,{'#'}},KS_NONE},
+ {"I","索引",{MC_INDEX,1,{'i'}},KS_FLDRINDEX},
+ {"J","日誌",{MC_JOURNAL,1,{'j'}},KS_REVIEW},
+ {"S","設定",{MC_SETUP,1,{'s'}},KS_NONE},
+ {"A","地址簿",{MC_ADDRBOOK,1,{'a'}},KS_ADDRBOOK},
-+ {"#","角色",{MC_ROLE,1,{'#'}},KS_NONE},
+ RCOMPOSE_MENU,
NULL_MENU};
INST_KEY_MENU(main_keymenu, main_keys);
- #define MAIN_HELP_KEY 0
-@@ -528,7 +528,7 @@
+@@ -542,7 +542,7 @@
static struct key simple_file_keys[] =
{HELP_MENU,
NULL_MENU,
@@ -43,7 +41,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -537,15 +537,15 @@
+@@ -551,15 +551,15 @@
PRYNTTXT_MENU,
WHEREIS_MENU,
FWDEMAIL_MENU,
@@ -62,7 +60,7 @@
sargs.bar.style = FileTextPercent;
sargs.keys.menu = &simple_file_keymenu;
setbitmap(sargs.keys.bitmap);
-@@ -761,7 +761,7 @@
+@@ -771,7 +771,7 @@
if(!pine_state->VAR_INBOX_PATH || !pine_state->VAR_INBOX_PATH[0]
|| strucmp(pine_state->VAR_INBOX_PATH, "inbox") == 0){
HelpType help = NO_HELP;
@@ -71,7 +69,7 @@
{-1, 0, NULL, NULL}};
pine_state->mangled_footer = 1;
-@@ -771,7 +771,7 @@
+@@ -781,7 +781,7 @@
rv = optionally_enter(int_mail, -FOOTER_ROWS(pine_state),
0, MAXPATH,
@@ -80,7 +78,7 @@
/* ekey */ NULL, help, &flags);
if(rv == 3){
help = (help == NO_HELP) ? h_sticky_inbox : NO_HELP;
-@@ -783,7 +783,7 @@
+@@ -793,7 +793,7 @@
}
if(rv == 1){
@@ -89,7 +87,7 @@
rv = 0; /* reset rv */
}
else if(rv == 2){
-@@ -802,7 +802,7 @@
+@@ -812,7 +812,7 @@
removing_leading_white_space(int_mail);
if((!pine_state->VAR_INBOX_PATH
|| strucmp(pine_state->VAR_INBOX_PATH, "inbox") == 0)
@@ -98,7 +96,7 @@
'y', 'n', NO_HELP, WT_NORM) == 'y'){
set_variable(V_INBOX_PATH, int_mail, 1);
}
-@@ -949,25 +949,25 @@
+@@ -959,25 +959,25 @@
*news_addition;
int key_index; /* index into keymenu array for this cmd */
} mkeys[] = {
@@ -132,7 +130,7 @@
NULL, MAIN_QUIT_KEY}
};
-@@ -1295,7 +1295,7 @@
+@@ -1307,7 +1307,7 @@
pine_state->mangled_footer = 1;
}
else{
@@ -141,7 +139,7 @@
pine_state->mangled_screen = 1;
}
-@@ -1323,7 +1323,7 @@
+@@ -1335,7 +1335,7 @@
just_a_navigate_cmd++;
}
else
@@ -150,7 +148,7 @@
break;
-@@ -1339,14 +1339,14 @@
+@@ -1351,14 +1351,14 @@
just_a_navigate_cmd++;
}
else
@@ -167,7 +165,7 @@
pine_state->mangled_screen = 1;
break;
-@@ -1603,7 +1603,7 @@
+@@ -1615,7 +1615,7 @@
/* paint the titlebar if needed */
if(ps->mangled_header){
@@ -176,7 +174,7 @@
ps->cur_folder, ps->msgmap, 1, FolderName, 0, 0);
ps->mangled_header = 0;
}
-@@ -1772,14 +1772,14 @@
+@@ -1784,15 +1784,15 @@
{
char prompt[80];
char letters[20];
@@ -187,7 +185,8 @@
- char *sigedit = "Signature";
- char *abooks = "AddressBooks";
- char *clctns = "collectionList";
-- char *roles = "Roles";
+- char *rules = "Rules";
+- char *color = "Kolor";
+ char *printer = "印表機";
+ char *passwd = "設定新密碼";
+ char *config = "環境設定";
@@ -195,11 +194,12 @@
+ char *sigedit = "編輯簽名檔";
+ char *abooks = "地址簿";
+ char *clctns = "總集列表";
-+ char *roles = "角色";
++ char *rules = "規則";
++ char *color = "色彩";
#ifdef ENABLE_LDAP
char *dir = "Directory";
#endif
-@@ -1864,13 +1864,13 @@
+@@ -1881,13 +1881,13 @@
}
sprintf(prompt,
@@ -216,7 +216,52 @@
s = 'e';
}
-@@ -1996,14 +1996,14 @@
+@@ -2021,7 +2021,7 @@
+ opts[ekey_num].ch = 'a';
+ opts[ekey_num].rval = 'a';
+ opts[ekey_num].name = "A";
+- opts[ekey_num++].label = "Addrbook";
++ opts[ekey_num++].label = "地址簿";
+ }
+
+ if(F_OFF(F_DISABLE_ROLES_SETUP,ps)){ /* roles are allowed */
+@@ -2031,7 +2031,7 @@
+ opts[ekey_num].ch = 'r';
+ opts[ekey_num].rval = 'r';
+ opts[ekey_num].name = "R";
+- opts[ekey_num++].label = "Roles";
++ opts[ekey_num++].label = "角色";
+ }
+ else if(deefault != 'a')
+ deefault = 's';
+@@ -2039,7 +2039,7 @@
+ opts[ekey_num].ch = 's';
+ opts[ekey_num].rval = 's';
+ opts[ekey_num].name = "S";
+- opts[ekey_num++].label = "SetScores";
++ opts[ekey_num++].label = "設定得分";
+
+ #ifndef _WINDOWS
+ if(ps->color_style != COL_NONE && pico_hascolor()){
+@@ -2050,7 +2050,7 @@
+ opts[ekey_num].ch = 'i';
+ opts[ekey_num].rval = 'i';
+ opts[ekey_num].name = "I";
+- opts[ekey_num++].label = "Indexcolor";
++ opts[ekey_num++].label = "索引色彩";
+ #ifndef _WINDOWS
+ }
+ #endif
+@@ -2058,7 +2058,7 @@
+ opts[ekey_num].ch = 'f';
+ opts[ekey_num].rval = 'f';
+ opts[ekey_num].name = "F";
+- opts[ekey_num++].label = "Filters";
++ opts[ekey_num++].label = "過濾器";
+
+ opts[ekey_num].ch = -1;
+
+@@ -2096,14 +2096,14 @@
HELP_MENU,
NULL_MENU,
{"E",NULL,{MC_EXIT,1,{'e',ctrl('M'),ctrl('J')}},KS_NONE},
@@ -233,7 +278,7 @@
NULL_MENU};
INST_KEY_MENU(nuov_keymenu, nuov_keys);
#define NUOV_EXIT 2
-@@ -2100,13 +2100,13 @@
+@@ -2202,13 +2202,13 @@
memset(&sargs, 0, sizeof(SCROLL_S));
sargs.text.text = so_text(store);
sargs.text.src = CharStar;
@@ -250,7 +295,7 @@
sargs.resize_exit = 1;
sargs.keys.menu = &km;
km = nuov_keymenu;
-@@ -2116,11 +2116,11 @@
+@@ -2218,11 +2218,11 @@
setbitmap(sargs.keys.bitmap);
if(ps->phone_home){
@@ -264,7 +309,7 @@
km.keys[NUOV_EXIT].bind.nch = 3;
clrbitn(NUOV_VIEW, sargs.keys.bitmap);
}
-@@ -2201,7 +2201,7 @@
+@@ -2303,7 +2303,7 @@
break;
case MC_RELNOTES :
@@ -273,7 +318,7 @@
ps_global->mangled_screen = 1;
break;
-@@ -2320,7 +2320,7 @@
+@@ -2422,7 +2422,7 @@
dprint(1, (debugfile, "\n\n ---- QUIT SCREEN ----\n"));
if(!pine_state->nr_mode && F_OFF(F_QUIT_WO_CONFIRM,pine_state)
diff --git a/chinese/pine4/files/patch-bh b/chinese/pine4/files/patch-bh
index ef25103..1598b09 100644
--- a/chinese/pine4/files/patch-bh
+++ b/chinese/pine4/files/patch-bh
@@ -1,6 +1,6 @@
---- pine/pine.h.orig Wed Jul 22 06:02:49 1998
-+++ pine/pine.h Tue Aug 4 12:42:20 1998
-@@ -348,7 +348,7 @@
+--- pine/pine.h.orig Tue Oct 12 06:14:28 1999
++++ pine/pine.h Thu Oct 14 12:35:27 1999
+@@ -357,7 +357,7 @@
&& (s) && !strucmp((s),"X-VCARD")))
#define MIME_VCARD_A(a) MIME_VCARD((a)->body->type, (a)->body->subtype)
@@ -9,7 +9,7 @@
/*
-@@ -1582,91 +1582,91 @@
+@@ -1875,94 +1875,94 @@
* Some standard Key/Command Bindings
*/
#define NULL_MENU {NULL, NULL, {MC_NONE}, KS_NONE}
@@ -30,7 +30,7 @@
{MC_MAIN, 1, {'m'}}, \
KS_MAINMENU}
-#define QUIT_MENU {"Q", "Quit Pine", \
-+#define QUIT_MENU {"Q", "離開 Pine", \
++#define QUIT_MENU {"Q", "結束 Pine", \
{MC_QUIT, 1, {'q'}}, \
KS_EXIT}
-#define PREVMSG_MENU {"P", "PrevMsg", \
@@ -77,6 +77,10 @@
+#define COMPOSE_MENU {"C", "編修", \
{MC_COMPOSE,1,{'c'}}, \
KS_COMPOSER}
+-#define RCOMPOSE_MENU {"#", "Role", \
++#define RCOMPOSE_MENU {"#", "角色", \
+ {MC_ROLE,1,{'#'}}, \
+ KS_NONE}
-#define DELETE_MENU {"D", "Delete", \
+#define DELETE_MENU {"D", "刪除", \
{MC_DELETE,2,{'d',KEY_DEL}}, \
@@ -114,7 +118,7 @@
{MC_FLAG,1,{'*'}}, \
KS_FLAG}
-#define PIPE_MENU {"|", "Pipe", \
-+#define PIPE_MENU {"|", "轉向(Pipe)", \
++#define PIPE_MENU {"|", "導向(Pipe)", \
{MC_PIPE,1,{'|'}}, \
KS_NONE}
-#define BOUNCE_MENU {"B", "Bounce", \
@@ -130,7 +134,7 @@
{MC_TAB,1,{TAB}}, \
KS_NONE}
-@@ -2304,7 +2304,7 @@
+@@ -2819,7 +2819,7 @@
} ATABLE_S;
diff --git a/chinese/pine4/files/patch-bi b/chinese/pine4/files/patch-bi
index 094a4c6..007572c 100644
--- a/chinese/pine4/files/patch-bi
+++ b/chinese/pine4/files/patch-bi
@@ -1,6 +1,6 @@
---- pine/reply.c.orig Thu Jan 28 06:32:10 1999
-+++ pine/reply.c Tue Feb 23 15:55:36 1999
-@@ -107,9 +107,9 @@
+--- pine/reply.c.orig Tue Oct 12 01:30:36 1999
++++ pine/reply.c Thu Oct 14 15:00:52 1999
+@@ -108,9 +108,9 @@
/*
* Little defs to keep the code a bit neater...
*/
@@ -13,16 +13,16 @@
#define SIGDASHES "-- "
-@@ -293,7 +293,7 @@
+@@ -341,7 +341,7 @@
+ role = combine_inherited_role(role);
else{ /* cancel reply */
role = NULL;
- close_patterns(&pattern_h);
- cmd_cancelled("Reply");
+ cmd_cancelled("回覆");
goto done_early;
}
-
-@@ -558,7 +558,7 @@
+ }
+@@ -603,7 +603,7 @@
#endif
/* partially formatted outgoing message */
@@ -31,7 +31,7 @@
role, fcc.tptr, &reply, redraft_pos, NULL, NULL, 0);
done:
pine_free_body(&body);
-@@ -636,7 +636,7 @@
+@@ -681,7 +681,7 @@
(ADDRESS *) NULL, env->from, 0);
if(ret == 'x') {
@@ -40,7 +40,7 @@
return(0);
}
-@@ -685,7 +685,7 @@
+@@ -730,7 +730,7 @@
|| (*saved_cc || *saved_resent))){
*flags &= ~RSF_QUERY_REPLY_ALL;
if((ret=want_to(ALL_PMT,'n','x',NO_HELP,WT_SEQ_SENSITIVE)) == 'x'){
@@ -49,7 +49,35 @@
return(0);
}
else if(ret == 'y')
-@@ -1406,8 +1406,8 @@
+@@ -830,9 +830,9 @@
+ PAT_S *curpat, *pat;
+ PAT_STATE pstate;
+ static ESCKEY_S ekey[] = {
+- {'y', 'y', "Y", "Yes"},
+- {'n', 'n', "N", "No Role"},
+- {ctrl('T'), 2, "^T", "To Select Alternate Role"},
++ {'y', 'y', "Y", "是"},
++ {'n', 'n', "N", "否"},
++ {ctrl('T'), 2, "^T", "選擇替代角色"},
+ {-1, 0, NULL, NULL}};
+
+ if(!nonempty_patterns() || !role)
+@@ -884,11 +884,11 @@
+ curpat = first_pattern(ROLE_DO_ROLES, &pstate);
+
+ if(flags & ROLE_REPLY)
+- prompt_fodder = "Reply";
++ prompt_fodder = "回覆";
+ else if(flags & ROLE_FORWARD)
+- prompt_fodder = "Forward";
++ prompt_fodder = "轉寄";
+ else
+- prompt_fodder = "Compose";
++ prompt_fodder = "編輯";
+
+ done = 0;
+ while(!done){
+@@ -1504,8 +1504,8 @@
{
int ret, edited = 0;
static ESCKEY_S rtq_opts[] = {
@@ -60,7 +88,7 @@
{-1, 0, NULL, NULL}, /* may be overridden below */
{-1, 0, NULL, NULL}
};
-@@ -1417,19 +1417,18 @@
+@@ -1515,19 +1515,18 @@
return(1);
while(1){
@@ -86,7 +114,7 @@
}
else
rtq_opts[2].ch = -1;
-@@ -1440,7 +1439,7 @@
+@@ -1538,7 +1537,7 @@
rtq_opts, edited ? 'y' : 'n',
'x', NO_HELP, RB_SEQ_SENSITIVE)){
case 'x':
@@ -95,7 +123,7 @@
return(-1);
case 'r':
-@@ -1459,7 +1458,7 @@
+@@ -1557,7 +1556,7 @@
switch(optionally_enter(buf, ps->ttyo->screen_rows > 4
? -FOOTER_ROWS(ps_global) : -1,
@@ -104,7 +132,7 @@
NULL, NO_HELP, &flags)){
case 0: /* entry successful, continue */
if(flags & OE_USER_MODIFIED){
-@@ -1472,7 +1471,7 @@
+@@ -1570,7 +1569,7 @@
break;
case 1:
@@ -113,7 +141,7 @@
case -1:
return(-1);
-@@ -2476,9 +2475,9 @@
+@@ -2579,9 +2578,9 @@
ENVELOPE *env, *outgoing;
{
int ret = 1;
@@ -126,7 +154,7 @@
{-1, 0, NULL, NULL} };
if(env->newsgroups && *env->newsgroups && !reply_poster_followup(env))
-@@ -2502,7 +2501,7 @@
+@@ -2605,7 +2604,7 @@
case 'x' : /* cancel or unknown response */
default :
@@ -135,7 +163,7 @@
ret = 0;
break;
}
-@@ -2510,7 +2509,7 @@
+@@ -2613,7 +2612,7 @@
if(ret > 1){
if(env->followup_to){
q_status_message(SM_ORDER, 2, 3,
@@ -144,7 +172,7 @@
outgoing->newsgroups = cpystr(env->followup_to);
}
else if(!outgoing->newsgroups)
-@@ -3148,7 +3147,7 @@
+@@ -3249,7 +3248,7 @@
: 0;
if(ret == 'x'){
@@ -153,16 +181,16 @@
so_give((STORE_S **)&msgtext);
goto clean;
}
-@@ -3163,7 +3162,7 @@
+@@ -3263,7 +3262,7 @@
+ role = combine_inherited_role(role);
else{ /* cancel reply */
role = NULL;
- close_patterns(&pattern_h);
- cmd_cancelled("Forward");
+ cmd_cancelled("轉寄");
so_give((STORE_S **)&msgtext);
goto clean;
}
-@@ -3360,7 +3359,7 @@
+@@ -3458,7 +3457,7 @@
pine_simple_send(outgoing, &body, NULL, NULL, NULL, 1);
else /* partially formatted outgoing message */
pine_send(outgoing, &body,
@@ -171,7 +199,7 @@
role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
clean:
-@@ -3383,7 +3382,7 @@
+@@ -3481,7 +3480,7 @@
mail_gc(ps->mail_stream, GC_TEXTS);
#endif
q_status_message(SM_ORDER | SM_DING, 4, 5,
@@ -180,3 +208,12 @@
goto clean;
}
+@@ -3861,7 +3860,7 @@
+ if(confirm_role(ROLE_COMPOSE, &role))
+ role = combine_inherited_role(role);
+ else{ /* cancel */
+- cmd_cancelled("Composition");
++ cmd_cancelled("編輯");
+ display_message('x');
+ mail_free_envelope(&env);
+ pine_free_body(&body);
diff --git a/chinese/pine4/files/patch-bj b/chinese/pine4/files/patch-bj
index 3613e0d..e020829 100644
--- a/chinese/pine4/files/patch-bj
+++ b/chinese/pine4/files/patch-bj
@@ -1,6 +1,6 @@
---- pine/screen.c.orig Wed Jan 13 10:51:51 1999
-+++ pine/screen.c Tue Feb 23 15:57:08 1999
-@@ -435,7 +435,7 @@
+--- pine/screen.c.orig Thu Sep 9 05:45:46 1999
++++ pine/screen.c Thu Oct 14 12:03:27 1999
+@@ -578,7 +578,7 @@
static struct key cancel_keys[] =
@@ -9,7 +9,7 @@
{NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
{NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
{NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
-@@ -1128,10 +1128,10 @@
+@@ -1281,10 +1281,10 @@
as.page_column = -1;
is_context = strlen(as.context_name);
sprintf(version, "PINE %s", pine_version);
@@ -22,7 +22,7 @@
ss_len = strlen(ss_string);
tit_len = strlen(as.title); /* fixed title field width */
-@@ -1148,17 +1148,17 @@
+@@ -1301,17 +1301,17 @@
/*
* set location field's length and value based on requested style
*/
@@ -44,7 +44,7 @@
break;
case MessageNumber : /* "<loc_label> xxx of xxx DEL" */
num_len = digit_count(mn_get_total(as.msgmap));
-@@ -1166,7 +1166,7 @@
+@@ -1319,7 +1319,7 @@
as.cur_mess_col = sc - (2 * num_len) - 10;
as.del_column = as.cur_mess_col + num_len
+ digit_count(as.current_msg) + 5;
@@ -53,7 +53,7 @@
strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
strcpy(tmp_20k_buf + 1500, comatose(mn_get_total(as.msgmap))),
BAR_STATUS(as.msg_state));
-@@ -1178,7 +1178,7 @@
+@@ -1331,7 +1331,7 @@
as.percent_column = as.cur_mess_col + num_len
+ digit_count(as.current_msg) + 7;
as.del_column = as.percent_column + 4;
@@ -62,7 +62,7 @@
strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
strcpy(tmp_20k_buf + 1500, comatose(mn_get_total(as.msgmap))),
percentage(as.current_line, as.total_lines, 1),
-@@ -1189,7 +1189,7 @@
+@@ -1342,7 +1342,7 @@
case FileTextPercent :
as.page_column = sc - (14 + 2*(num_len = digit_count(as.total_lines)));
loc_len = 17 + 2*num_len;
@@ -71,7 +71,7 @@
num_len, as.current_line,
num_len, as.total_lines,
percentage(as.current_line, as.total_lines, 1));
-@@ -1264,7 +1264,7 @@
+@@ -1417,7 +1417,7 @@
ss_string);
}
else{
@@ -80,25 +80,25 @@
if(fold_len + ss_len + 8 < avail) /* all of folder fit? */
sprintf(fold_tmp, fmt, as.folder_name, ss_string);
else if((fold_len/2) + ss_len + 8 < avail)
-@@ -1313,7 +1313,7 @@
- StartInverse();
- if(delta) {
+@@ -1474,7 +1474,7 @@
+
if(as.style == MsgTextPercent){
+ as.percent_column += delta;
- PutLine5(0, as.cur_mess_col, "%s of %s %s %s%s",
+ PutLine5(0, as.cur_mess_col, "%s 之 %s %s %s%s",
strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
strcpy(tmp_20k_buf + 1500,
comatose(mn_get_total(as.msgmap))),
-@@ -1324,7 +1324,7 @@
- as.percent_column += delta;
+@@ -1483,7 +1483,7 @@
+ repeat_char(max(0, -delta), SPACE));
}
- else{
-- PutLine4(0, as.cur_mess_col, "%s of %s %s%s",
-+ PutLine4(0, as.cur_mess_col, "%s 之 %s %s%s",
- strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
- strcpy(tmp_20k_buf + 1500,
- comatose(mn_get_total(as.msgmap))),
-@@ -1426,7 +1426,7 @@
+ else
+- PutLine4(0, as.cur_mess_col, "%s of %s %s%s",
++ PutLine4(0, as.cur_mess_col, "%s 之 %s %s%s",
+ strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
+ strcpy(tmp_20k_buf + 1500,
+ comatose(mn_get_total(as.msgmap))),
+@@ -1610,7 +1610,7 @@
as.current_line = new_line_number;
diff --git a/chinese/pine4/files/patch-bk b/chinese/pine4/files/patch-bk
index d0cee7d..7d94c35 100644
--- a/chinese/pine4/files/patch-bk
+++ b/chinese/pine4/files/patch-bk
@@ -1,6 +1,6 @@
---- pine/send.c.orig Fri Feb 5 02:17:39 1999
-+++ pine/send.c Wed Feb 24 21:36:10 1999
-@@ -222,17 +222,17 @@
+--- pine/send.c.orig Thu Oct 7 04:18:27 1999
++++ pine/send.c Thu Oct 14 12:02:30 1999
+@@ -221,17 +221,17 @@
* Various useful strings
*/
#define INTRPT_PMT \
@@ -24,7 +24,7 @@
#if defined(DOS) || defined(OS2)
#define POST_PERM_GRIPE \
-@@ -277,7 +277,7 @@
+@@ -276,7 +276,7 @@
#define REDRAFT_PPND 0x01
#define REDRAFT_DEL 0x02
@@ -33,6 +33,15 @@
/*
* Phone home hash controls
+@@ -344,7 +344,7 @@
+
+ /* Setup role */
+ if(role_select_screen(pine_state, &role, 1) < 0){
+- cmd_cancelled("Composition");
++ cmd_cancelled("編輯文章");
+ pine_state->next_screen = prev_screen;
+ pine_state->redrawer = redraw;
+ return;
@@ -443,14 +443,14 @@
mail_close(stream);
if(ret == 'x'){
@@ -85,16 +94,15 @@
if(stream)
mail_close(stream);
}
-@@ -677,7 +677,7 @@
- else{ /* cancel reply */
- role = NULL;
- close_patterns(&pattern_h);
-- cmd_cancelled("Composition");
-+ cmd_cancelled("編輯文章");
- return;
+@@ -685,14 +685,14 @@
+ role = combine_inherited_role(role);
+ else{ /* cancel reply */
+ role = NULL;
+- cmd_cancelled("Composition");
++ cmd_cancelled("編輯文章");
+ return;
+ }
}
-
-@@ -685,7 +685,7 @@
}
if(role)
@@ -103,7 +111,7 @@
role->nick);
/*
-@@ -830,8 +830,8 @@
+@@ -842,8 +842,8 @@
*/
if(!stream->nmsgs){
q_status_message1(SM_ORDER | SM_DING, 3, 5,
@@ -114,7 +122,7 @@
return(redraft_cleanup(stream, FALSE, flags));
}
else if(stream == ps_global->mail_stream){
-@@ -857,10 +857,10 @@
+@@ -869,10 +869,10 @@
if(count_flagged(stream, F_DEL)
&& want_to(INTR_DEL_PMT, 'n', 0, NO_HELP, WT_NORM) == 'n'){
q_status_message1(SM_ORDER, 3, 3,
@@ -128,7 +136,7 @@
continue;
}
-@@ -871,7 +871,7 @@
+@@ -883,7 +883,7 @@
mn_give(&msgmap);
if(rv){
@@ -137,7 +145,7 @@
(void) redraft_cleanup(stream, FALSE, flags);
return(0); /* special case */
}
-@@ -1145,7 +1145,7 @@
+@@ -1205,7 +1205,7 @@
if(b->type == TYPEMULTIPART){
if(strucmp(b->subtype, "mixed")){
q_status_message1(SM_INFO, 3, 4,
@@ -146,7 +154,7 @@
b->subtype);
fs_give((void **)&b->subtype);
b->subtype = cpystr("mixed");
-@@ -1153,7 +1153,7 @@
+@@ -1213,7 +1213,7 @@
}
else{
q_status_message2(SM_ORDER | SM_DING, 3, 4,
@@ -155,7 +163,7 @@
body_types[b->type], b->subtype);
return(redraft_cleanup(stream, TRUE, flags));
}
-@@ -1167,7 +1167,7 @@
+@@ -1227,7 +1227,7 @@
set_mime_type_by_grope(&part->body, NULL);
if(part->body.type != TYPETEXT){
q_status_message2(SM_ORDER | SM_DING, 3, 4,
@@ -164,7 +172,7 @@
body_types[part->body.type],
part->body.subtype);
return(redraft_cleanup(stream, TRUE, flags));
-@@ -1229,9 +1229,9 @@
+@@ -1286,9 +1286,9 @@
if(stream == ps_global->mail_stream){
q_status_message2(SM_ORDER, 3, 7,
@@ -177,16 +185,16 @@
ps_global->inbox_name);
do_broach_folder(ps_global->inbox_name,
ps_global->context_list);
-@@ -1252,7 +1252,7 @@
+@@ -1309,7 +1309,7 @@
- if(!(rv = mail_delete(stream, mbox)))
+ if(!mail_delete(stream, mbox))
q_status_message1(SM_ORDER|SM_DING, 3, 3,
-- "Can't delete: %s", mbox);
-+ "無法刪除: %s", mbox);
+- "Can't delete %s", mbox);
++ "無法刪除:%s", mbox);
fs_give((void **) &mbox);
- success = rv > 0L;
-@@ -1275,7 +1275,7 @@
+ stream = NULL;
+@@ -1331,7 +1331,7 @@
{
if(background_posting(FALSE)){
q_status_message1(SM_ORDER, 0, 3,
@@ -195,7 +203,7 @@
type);
return(failure);
}
-@@ -1498,7 +1498,7 @@
+@@ -1554,7 +1554,7 @@
if(rc == 1 || (rc == 0 && !answer)) {
q_status_message(SM_ORDER, 3, 4,
@@ -204,7 +212,7 @@
return(0);
}
-@@ -1587,7 +1587,7 @@
+@@ -1643,7 +1643,7 @@
if(rc == 1 || (rc == 0 && !answer)) {
q_status_message(SM_ORDER, 3, 4,
@@ -213,7 +221,7 @@
return(0);
}
-@@ -1643,7 +1643,7 @@
+@@ -1699,7 +1699,7 @@
if(rc == 1 || (rc == 0 && answer[0] == '\0')) {
q_status_message(SM_ORDER, 3, 4,
@@ -222,7 +230,7 @@
return(0);
}
-@@ -1670,31 +1670,31 @@
+@@ -1726,31 +1726,31 @@
*/
static struct headerentry he_template[]={
{"From : ", "From", h_composer_from, 10, 0, NULL,
@@ -263,7 +271,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, NULL,
-@@ -1729,7 +1729,7 @@
+@@ -1785,7 +1785,7 @@
static struct headerentry he_custom_addr_templ={
NULL, NULL, h_composer_custom_addr,10, 0, NULL,
@@ -272,7 +280,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,
-@@ -2012,7 +2012,7 @@
+@@ -2068,7 +2068,7 @@
default:
q_status_message1(SM_ORDER,3,3,
@@ -281,7 +289,7 @@
break;
}
}
-@@ -2022,7 +2022,7 @@
+@@ -2078,7 +2078,7 @@
ekey[0].ch = ctrl('T');
ekey[0].rval = 2;
ekey[0].name = "^T";
@@ -290,7 +298,7 @@
ekey[1].ch = -1;
/*----------------------------------------------------------------------
-@@ -2133,12 +2133,12 @@
+@@ -2189,12 +2189,12 @@
opts[i].ch = 'y';
opts[i].rval = 'y';
opts[i].name = "Y";
@@ -305,7 +313,7 @@
verbose_requested = 0;
if(F_ON(F_VERBOSE_POST, ps_global)){
-@@ -2185,7 +2185,7 @@
+@@ -2241,7 +2241,7 @@
dsn_show = (dsn_requested & DSN_SHOW);
sprintf(tmp_20k_buf,
"%s%s%s%s%s%sto \"%s\" ? ",
@@ -314,7 +322,7 @@
(verbose_requested || dsn_show)
? "(" : "",
(verbose_requested)
-@@ -2323,7 +2323,7 @@
+@@ -2379,7 +2379,7 @@
if(!(outgoing->to || outgoing->cc || outgoing->bcc
|| lmc.so)){
q_status_message(SM_ORDER, 3, 5,
@@ -323,7 +331,7 @@
continue;
}
-@@ -2348,7 +2348,7 @@
+@@ -2404,7 +2404,7 @@
}
else if(result == 0){
q_status_message(SM_ORDER,3,5,
@@ -332,7 +340,7 @@
retval = -1;
dprint(1,
(debugfile, "explicit fcc write failed!\n"));
-@@ -2366,7 +2366,7 @@
+@@ -2422,7 +2422,7 @@
}
}
else{
@@ -341,7 +349,7 @@
retval = -1;
}
}
-@@ -2394,7 +2394,7 @@
+@@ -2450,7 +2450,7 @@
break;
case 1:
@@ -350,7 +358,7 @@
done++;
retval = -1;
break;
-@@ -2656,7 +2656,7 @@
+@@ -2714,7 +2714,7 @@
break;
case 'x': /* ^C */
@@ -359,7 +367,7 @@
dprint(4, (debugfile, "=== send: cancelled\n"));
pbuf = save_previous_pbuf;
return;
-@@ -3065,7 +3065,7 @@
+@@ -3133,7 +3133,7 @@
default:
q_status_message1(SM_ORDER,3,7,
@@ -368,7 +376,7 @@
(void *)pf->type);
break;
}
-@@ -3092,7 +3092,7 @@
+@@ -3160,7 +3160,7 @@
!(role && role->from))){
if(pf->canedit || !he->rich_header)
q_status_message(SM_ORDER, 3, 3,
@@ -377,7 +385,7 @@
memset(he, 0, (size_t)sizeof(*he));
pf->he = NULL;
-@@ -3438,7 +3438,7 @@
+@@ -3519,7 +3519,7 @@
? "CANCEL" : "HUH?"));
if((editor_result & COMP_CANCEL)
&& F_ON(F_QUELL_DEAD_LETTER, ps_global)){
@@ -386,7 +394,7 @@
break;
}
-@@ -3462,7 +3462,7 @@
+@@ -3543,7 +3543,7 @@
&& (check_addresses(&header) == CA_BAD)){
/*--- Addresses didn't check out---*/
q_status_message(SM_ORDER, 7, 7,
@@ -395,7 +403,7 @@
continue;
}
-@@ -3521,7 +3521,7 @@
+@@ -3602,7 +3602,7 @@
if(!so_puts(lmc.so, tmp_20k_buf)){
if(editor_result & COMP_CANCEL)
q_status_message2(SM_ORDER | SM_DING, 3, 3,
@@ -404,7 +412,7 @@
folder, error_description(errno));
else
dprint(1, (debugfile, "* * * CAN'T WRITE %s: %s\n",
-@@ -3534,7 +3534,7 @@
+@@ -3615,7 +3615,7 @@
if(!ps_global->VAR_POSTPONED_FOLDER
|| !ps_global->VAR_POSTPONED_FOLDER[0]){
q_status_message(SM_ORDER | SM_DING, 3, 3,
@@ -413,7 +421,7 @@
continue;
}
-@@ -3564,7 +3564,7 @@
+@@ -3645,7 +3645,7 @@
}
else{
strcpy(folder, ps_global->VAR_POSTPONED_FOLDER);
@@ -422,7 +430,7 @@
}
lmc.so = open_fcc(folder,&fcc_cntxt, 1, NULL, NULL);
-@@ -3706,10 +3706,10 @@
+@@ -3787,10 +3787,10 @@
&& ps_global->VAR_FORM_FOLDER[0]
&& !strcmp(folder, ps_global->VAR_FORM_FOLDER))
q_status_message(SM_ORDER, 0, 3,
@@ -435,7 +443,7 @@
break; /* postpone went OK, get out of here */
}
-@@ -3719,15 +3719,15 @@
+@@ -3800,15 +3800,15 @@
if(fcc_result && folder)
lc = last_cmpnt(folder);
@@ -454,7 +462,7 @@
body_start = 1;
continue; /* postpone failed, jump back in to composer */
}
-@@ -3743,7 +3743,7 @@
+@@ -3824,7 +3824,7 @@
/* --- If posting, confirm with user ----*/
if(outgoing->newsgroups && *outgoing->newsgroups
&& want_to(POST_PMT, 'n', 'n', NO_HELP, WT_NORM) == 'n'){
@@ -463,7 +471,7 @@
dprint(4, (debugfile, "no post, continuing\n"));
continue;
}
-@@ -3752,13 +3752,13 @@
+@@ -3833,13 +3833,13 @@
|| outgoing->newsgroups)){
if(fcc && fcc[0]){
if(F_OFF(F_AUTO_FCC_ONLY, ps_global) &&
@@ -479,7 +487,7 @@
dprint(4, (debugfile, "no recip, continuing\n"));
continue;
}
-@@ -3802,8 +3802,8 @@
+@@ -3883,8 +3883,8 @@
&& !filter_message_text(sending_filter_requested, outgoing,
*body, &orig_so, &header)){
q_status_message1(SM_ORDER, 3, 3,
@@ -490,7 +498,7 @@
continue;
}
-@@ -3894,7 +3894,7 @@
+@@ -3975,7 +3975,7 @@
}
else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){
q_status_message(SM_ORDER, 3, 5,
@@ -499,7 +507,7 @@
dprint(1, (debugfile,
"explicit fcc write failed!\n"));
result |= P_FCC_LOSE;
-@@ -3961,7 +3961,7 @@
+@@ -4042,7 +4042,7 @@
}
else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){
q_status_message(SM_ORDER,3,5,
@@ -508,7 +516,7 @@
dprint(1, (debugfile, "explicit fcc write failed!\n"));
result |= P_FCC_LOSE;
}
-@@ -4048,8 +4048,8 @@
+@@ -4130,8 +4130,8 @@
postpone_prompt()
{
int ret = 1;
@@ -519,7 +527,7 @@
{-1, 0, NULL, NULL} };
return(radio_buttons(PSTPN_FORM_PMT, -FOOTER_ROWS(ps_global),
-@@ -4201,23 +4201,23 @@
+@@ -4283,23 +4283,23 @@
char *buf;
int *goodorbad;
{
@@ -551,7 +559,7 @@
(result & P_FCC_WIN) ? "\"" : "",
(result & P_FCC_WIN) ? fcc_name : "",
(result & P_FCC_WIN) ? "\"" : "");
-@@ -4256,7 +4256,7 @@
+@@ -4338,7 +4338,7 @@
|| (F_ON(F_COMPOSE_REJECTS_UNQUAL, ps_global)
&& a->host[0] == '@'))){
q_status_message2(SM_ORDER, 4, 7,
@@ -560,7 +568,7 @@
a->mailbox,
(a->host[0] == '.')
? a->host
-@@ -4266,7 +4266,7 @@
+@@ -4348,7 +4348,7 @@
else if(ps_global->restricted
&& !address_is_us(*pf->addr, ps_global)){
q_status_message(SM_ORDER, 3, 3,
@@ -569,7 +577,7 @@
return(CA_BAD);
}
else if(a->mailbox && strucmp(a->mailbox, "mailer-daemon") == 0
-@@ -4417,7 +4417,7 @@
+@@ -4545,7 +4545,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)))){
@@ -578,16 +586,16 @@
flush_status_messages(0);
return(0L);
}
-@@ -4432,7 +4432,7 @@
+@@ -4560,7 +4560,7 @@
/* actually write message text */
if(!format_message(mn_m2raw(ps_global->msgmap, n), e, b,
- FM_NEW_MESS | FM_DISPLAY, f)){
+ FM_NEW_MESS | FM_DISPLAY | FM_NOCOLOR, f)){
- q_status_message(SM_ORDER|SM_DING,3,3,"Error inserting Message");
+ q_status_message(SM_ORDER|SM_DING,3,3,"插入信件時發生錯誤");
flush_status_messages(0);
rv = 0L;
}
-@@ -4545,12 +4545,12 @@
+@@ -4654,12 +4654,12 @@
opts[i].ch = 'y';
opts[i].rval = 'y';
opts[i].name = "Y";
@@ -602,7 +610,7 @@
if(filters){
/* set global_filter_pointer to desired filter or NULL if none */
-@@ -4558,12 +4558,12 @@
+@@ -4667,12 +4667,12 @@
opts[i].ch = ctrl('P');
opts[i].rval = 10;
opts[i].name = "^P";
@@ -617,7 +625,7 @@
if(F_ON(F_FIRST_SEND_FILTER_DFLT, ps_global))
filters = filters->next;
-@@ -4647,11 +4647,11 @@
+@@ -4756,11 +4756,11 @@
lparen = 0;
dsn_show = (dsn_requested & DSN_SHOW);
@@ -632,7 +640,7 @@
if(filters){
if(!lparen){
-@@ -4663,12 +4663,12 @@
+@@ -4772,12 +4772,12 @@
*optp++ = ' ';
if(filters->filter){
@@ -647,7 +655,7 @@
}
if(verbose_requested || background_requested){
-@@ -4682,10 +4682,10 @@
+@@ -4791,10 +4791,10 @@
sstrcpy(&optp, "in ");
if(verbose_requested)
@@ -660,7 +668,7 @@
sstrcpy(&optp, "mode");
}
-@@ -4727,11 +4727,11 @@
+@@ -4836,11 +4836,11 @@
*p = ' ';
if(verbose_label)
@@ -674,7 +682,7 @@
if(fcc_label)
opts[fcc_label].label = lmc.text_only ? "Fcc Attchmnts"
-@@ -4763,11 +4763,11 @@
+@@ -4872,11 +4872,11 @@
break;
}
else if(rv == 'n'){ /* Declined! */
@@ -688,7 +696,7 @@
break;
}
else if(rv == 10){ /* PREVIOUS filter */
-@@ -4954,7 +4954,7 @@
+@@ -5063,7 +5063,7 @@
if(body->type != TYPEOTHER){
rv = 1;
q_status_message3(SM_ORDER, 0, 3,
@@ -697,7 +705,7 @@
body_types[body->type],
body->subtype ? body->subtype : rfc822_default_subtype(body->type));
}
-@@ -5003,7 +5003,7 @@
+@@ -5112,7 +5112,7 @@
(void) close_system_pipe(&syspipe);
if((l = name_file_size(fname)) < 0L){
q_status_message2(SM_ORDER | SM_DING, 3, 4,
@@ -706,7 +714,7 @@
fnp = error_description(errno));
dprint(1, (debugfile,
"!!! Upload cmd \"%s\" failed for \"%s\": %s\n",
-@@ -5015,7 +5015,7 @@
+@@ -5124,7 +5124,7 @@
return(l >= 0);
}
else
@@ -715,16 +723,16 @@
return(0);
}
-@@ -5068,7 +5068,7 @@
+@@ -5177,7 +5177,7 @@
else if(reply->flags == REPLY_MSGNO)
return;
- we_cancel = busy_alarm(1, "Updating \"Answered\" Flags", NULL, 1);
+ we_cancel = busy_alarm(1, "正在更新 \"已回覆\" 旗標", NULL, 1);
if(!stream){
- if(stream = mail_open(NULL, reply->mailbox, OP_SILENT)){
+ if(stream = pine_mail_open(NULL, reply->mailbox, OP_SILENT)){
ourstream++;
-@@ -5164,7 +5164,7 @@
+@@ -5273,7 +5273,7 @@
so_give(&tmpf_so);
}
else
@@ -733,7 +741,7 @@
}
else if(include_hdrs){
/*
-@@ -5222,13 +5222,13 @@
+@@ -5331,13 +5331,13 @@
so_give(&tmpf_so);
}
else
@@ -750,7 +758,7 @@
}
else
errstr = gf_filter(cmd, key ? filter_session_key() : NULL,
-@@ -5242,7 +5242,7 @@
+@@ -5351,7 +5351,7 @@
if(errstr){
int ch;
@@ -759,7 +767,7 @@
fflush(stdout);
while((ch = read_char(300)) != ctrl('M')
&& ch != NO_OP_IDLE)
-@@ -5338,7 +5338,7 @@
+@@ -5447,7 +5447,7 @@
if(tmp_so)
so_give(&tmp_so);
@@ -768,7 +776,7 @@
errstr);
dprint(1, (debugfile, "Filter FAILED: %s\n", errstr));
}
-@@ -5423,11 +5423,11 @@
+@@ -5532,11 +5532,11 @@
loser = pine_simple_send(outgoing, &body, NULL, NULL, NULL, 0);
@@ -782,7 +790,7 @@
mail_free_envelope(&outgoing);
pine_free_body(&body);
-@@ -5511,7 +5511,7 @@
+@@ -5620,7 +5620,7 @@
if(!pf){
q_status_message(SM_ORDER,3,3,
@@ -791,7 +799,7 @@
return(0);
}
-@@ -5520,7 +5520,7 @@
+@@ -5629,7 +5629,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';
@@ -800,7 +808,7 @@
send_bytes_to_send ? sent_percent : NULL, 1);
/* try posting via local "<mta> <-t>" if specified */
-@@ -5705,7 +5705,7 @@
+@@ -5814,7 +5814,7 @@
struct headerentry *last_he = NULL;
sprintf(error_buf,
@@ -809,7 +817,7 @@
(sending_stream && sending_stream->reply) ? ": ": ".",
(sending_stream && sending_stream->reply)
? sending_stream->reply : "");
-@@ -5778,7 +5778,7 @@
+@@ -5887,7 +5887,7 @@
TIME_STAMP("smtp done", 1);
}
else if(!error_mess)
@@ -818,7 +826,7 @@
ps_global->c_client_error);
if(verbose_file){
-@@ -5786,7 +5786,7 @@
+@@ -5895,7 +5895,7 @@
TIME_STAMP("verbose start", 1);
fclose(verbose_send_output);
verbose_send_output = NULL;
@@ -827,7 +835,7 @@
display_output_file(verbose_file, "Verbose SMTP Interaction",
NULL, DOF_BRIEF);
TIME_STAMP("verbose end", 1);
-@@ -5876,12 +5876,12 @@
+@@ -5985,12 +5985,12 @@
if(folder_index(fcc, *fcc_cntxt, FI_FOLDER) < 0){
if(ps_global->context_list->next)
sprintf(tmp_20k_buf,
@@ -842,7 +850,7 @@
strsquish(tmp_20k_buf + 500, fcc, 40));
if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){
-@@ -5918,7 +5918,7 @@
+@@ -6027,7 +6027,7 @@
ok++;
}
else{
@@ -851,7 +859,7 @@
strsquish(tmp_20k_buf + 500, fcc, 40));
if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){
/*
-@@ -5952,8 +5952,8 @@
+@@ -6061,8 +6061,8 @@
if(ok == 0){
if(ps_global->mm_log_error){
@@ -862,7 +870,7 @@
l1 = strlen(s1);
l2 = strlen(s2);
-@@ -5971,10 +5971,10 @@
+@@ -6080,10 +6080,10 @@
}
else
@@ -875,7 +883,7 @@
q_status_message(SM_ORDER | SM_DING, 3, 3, errstr);
}
-@@ -6022,7 +6022,7 @@
+@@ -6131,7 +6131,7 @@
if(label && *label){
char msg_buf[80];
@@ -884,7 +892,7 @@
we_cancel = busy_alarm(1, msg_buf, NULL, 1);
}
else
-@@ -6058,7 +6058,7 @@
+@@ -6167,7 +6167,7 @@
we_cancel = 0;
q_status_message1(SM_ORDER | SM_DING, 3, 5,
@@ -893,7 +901,7 @@
dprint(1, (debugfile, "ERROR appending %s in \"%s\"",
fcc, cntxt ? cntxt->context : "NULL"));
return(0);
-@@ -6548,7 +6548,7 @@
+@@ -6657,7 +6657,7 @@
if((file_contents = (void *)so_get(FileStar, pa->filename,
READ_ACCESS)) == NULL){
q_status_message2(SM_ORDER | SM_DING, 3, 4,
@@ -902,7 +910,7 @@
error_description(errno), pa->filename);
display_message('x');
continue;
-@@ -7083,13 +7083,17 @@
+@@ -7192,13 +7192,17 @@
body->subtype = cpystr("octet-stream");
}
@@ -927,7 +935,7 @@
}
}
-@@ -7260,6 +7264,9 @@
+@@ -7369,6 +7373,9 @@
ps_global->VAR_CHAR_SET,
encode_whole_header(field, header));
@@ -937,7 +945,7 @@
if(value && value == text){ /* no encoding was done, have to fold */
int fold_by, len;
char *actual_field;
-@@ -7713,7 +7720,7 @@
+@@ -7822,7 +7829,7 @@
break;
default:
@@ -946,7 +954,7 @@
break;
}
}
-@@ -8034,7 +8041,8 @@
+@@ -8143,7 +8150,8 @@
switch (body->encoding) { /* all else needs filtering */
case ENC8BIT: /* encode 8BIT into QUOTED-PRINTABLE */
@@ -956,7 +964,7 @@
break;
case ENCBINARY: /* encode binary into BASE64 */
-@@ -8048,7 +8056,7 @@
+@@ -8157,7 +8165,7 @@
if(encode_error = gf_pipe(gc, l_putc)){ /* shove body part down pipe */
q_status_message1(SM_ORDER | SM_DING, 3, 4,
@@ -965,7 +973,7 @@
display_message('x');
}
-@@ -8136,7 +8144,7 @@
+@@ -8245,7 +8253,7 @@
&& !(so_puts(so, "Content-Transfer-Encoding: ")
&& so_puts(so, body_encodings[(body->encoding==ENCBINARY)
? ENCBASE64
@@ -974,7 +982,7 @@
? ENCQUOTEDPRINTABLE
: (body->encoding <= ENCMAX)
? body->encoding
-@@ -8801,7 +8809,7 @@
+@@ -8911,7 +8919,7 @@
|| (forbid = pine_header_forbidden(name))){
if(forbid)
q_status_message1(SM_ORDER, 3, 3,
@@ -983,7 +991,7 @@
*t = save;
continue;
-@@ -8947,7 +8955,7 @@
+@@ -9057,7 +9065,7 @@
if(ps_global->post){
if(gripe)
q_status_message(SM_ORDER|SM_DING, 3, 3,
diff --git a/chinese/pine4/files/patch-bl b/chinese/pine4/files/patch-bl
index b3e1cc6..c546feb 100644
--- a/chinese/pine4/files/patch-bl
+++ b/chinese/pine4/files/patch-bl
@@ -1,6 +1,6 @@
---- pine/signals.c.orig Tue Jul 7 07:42:45 1998
-+++ pine/signals.c Tue Aug 4 12:42:21 1998
-@@ -386,7 +386,7 @@
+--- pine/signals.c.orig Wed Apr 21 08:25:18 1999
++++ pine/signals.c Thu Oct 14 10:53:45 1999
+@@ -385,7 +385,7 @@
ps_global->inbox_stream->rdonly = 1; /* and become read-only */
mail_ping(ps_global->inbox_stream);
q_status_message(SM_ASYNC, 3, 7,
@@ -9,7 +9,7 @@
dprint(1, (debugfile, "** INBOX went read-only **\n\n"));
}
-@@ -398,7 +398,7 @@
+@@ -397,7 +397,7 @@
ps_global->mail_stream->rdonly = 1; /* and become read-only */
mail_ping(ps_global->mail_stream);
q_status_message(SM_ASYNC, 3, 7,
@@ -18,7 +18,7 @@
dprint(1, (debugfile, "** secondary folder went read-only **\n\n"));
}
}
-@@ -536,7 +536,7 @@
+@@ -535,7 +535,7 @@
int retval = 1;
dprint(9,(debugfile, "busy_alarm(%d, %s, %p, %d)\n",
@@ -27,7 +27,7 @@
/*
* If we're already busy'ing, and we don't have something special,
-@@ -560,7 +560,7 @@
+@@ -559,7 +559,7 @@
final_message = 1;
}
else{
diff --git a/chinese/pine4/files/patch-bm b/chinese/pine4/files/patch-bm
index 56a4b32..9900700 100644
--- a/chinese/pine4/files/patch-bm
+++ b/chinese/pine4/files/patch-bm
@@ -1,5 +1,5 @@
---- pine/status.c.orig Sat Jun 27 07:36:34 1998
-+++ pine/status.c Tue Aug 4 12:42:22 1998
+--- pine/status.c.orig Thu Jul 8 07:42:17 1999
++++ pine/status.c Thu Oct 14 10:53:45 1999
@@ -72,7 +72,7 @@
static struct key modal_message_keys[] =
{NULL_MENU,
@@ -9,7 +9,7 @@
NULL_MENU,
NULL_MENU,
NULL_MENU,
-@@ -931,8 +931,8 @@
+@@ -1022,8 +1022,8 @@
* want_to's array passed to radio_buttions...
*/
static ESCKEY_S yorn[] = {
@@ -20,7 +20,7 @@
{-1, 0, NULL, NULL}
};
-@@ -1139,7 +1139,7 @@
+@@ -1232,7 +1232,7 @@
memset(fkey_table, NO_OP_COMMAND, 12 * sizeof(int));
if(help_text != NO_HELP){ /* if shown, always at position 0 */
rb_keymenu.keys[0].name = "?";
@@ -29,7 +29,7 @@
setbitn(0, bitmap);
fkey_table[0] = ctrl('G');
start++;
-@@ -1147,7 +1147,7 @@
+@@ -1240,7 +1240,7 @@
if(on_ctrl_C){ /* if shown, always at position 1 */
rb_keymenu.keys[1].name = "^C";
diff --git a/chinese/pine4/files/patch-bn b/chinese/pine4/files/patch-bn
index 945815d3..7407c58 100644
--- a/chinese/pine4/files/patch-bn
+++ b/chinese/pine4/files/patch-bn
@@ -1,6 +1,6 @@
---- pine/takeaddr.c.orig Fri Jun 26 02:26:36 1998
-+++ pine/takeaddr.c Tue Aug 4 12:42:22 1998
-@@ -785,7 +785,7 @@
+--- pine/takeaddr.c.orig Fri Sep 10 05:35:29 1999
++++ pine/takeaddr.c Thu Oct 14 10:53:45 1999
+@@ -895,7 +895,7 @@
return;
take_to_addrbooks_cancel:
@@ -9,7 +9,7 @@
if(tas && *tas){
restore_state(&((*tas)->state));
(*tas)->pab = NULL;
-@@ -1267,7 +1267,7 @@
+@@ -1385,7 +1385,7 @@
break;
case MC_EXIT: /* exit takeaddr screen */
@@ -18,7 +18,7 @@
ret = 1;
done++;
break;
-@@ -2698,7 +2698,7 @@
+@@ -2862,7 +2862,7 @@
switch(j){
case 'x':
@@ -27,7 +27,7 @@
return;
case 'e':
-@@ -2798,7 +2798,7 @@
+@@ -2962,7 +2962,7 @@
switch(i){
case 'x':
@@ -36,7 +36,7 @@
return;
case 'a':
-@@ -4737,7 +4737,7 @@
+@@ -4937,7 +4937,7 @@
switch(j){
case 'x':
@@ -45,7 +45,7 @@
break;
case 'e':
-@@ -4957,7 +4957,7 @@
+@@ -5155,7 +5155,7 @@
switch(j){
case 'x':
diff --git a/chinese/pine4/files/patch-bo b/chinese/pine4/files/patch-bo
index d7ea620..fc5f8a3 100644
--- a/chinese/pine4/files/patch-bo
+++ b/chinese/pine4/files/patch-bo
@@ -1,5 +1,5 @@
---- build.orig Fri Sep 4 08:01:15 1998
-+++ build Tue Sep 22 13:21:37 1998
+--- build.orig Sat Feb 20 07:30:54 1999
++++ build Thu Oct 14 11:31:12 1999
@@ -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
@@ -11,7 +11,7 @@
pico The standalone editor similar to the Pine message composer.
This is a very simple straight forward text editor.
-@@ -274,11 +274,11 @@
+@@ -278,11 +278,11 @@
if [ -s c-client ] ; then rm -f c-client ; fi
ln -s imap/c-client c-client
@@ -28,14 +28,14 @@
eval echo make "$makeargs" "$K1" "$K2" $ccltarg
cd $PHOME/imap
eval make "$makeargs" "$K1" "$K2" $ccltarg
-@@ -299,14 +299,14 @@
+@@ -303,17 +303,17 @@
cd $PHOME/bin
rm -f pine mtest imapd pico pilot
if [ -s ../pine/pine ] ; then ln ../pine/pine pine ; fi
- if [ -s ../mtest/mtest ] ; then ln ../mtest/mtest mtest ; fi
- if [ -s ../imapd/imapd ] ; then ln ../imapd/imapd imapd ; fi
-+# if [ -s ../mtest/mtest ] ; then ln ../mtest/mtest mtest ; fi
-+# if [ -s ../imapd/imapd ] ; then ln ../imapd/imapd imapd ; fi
++# if [ -s ../mtest/mtest ] ; then ln ../mtest/mtest mtest ; fi
++# 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
cd $PHOME
@@ -43,10 +43,14 @@
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
+ case $maketarg in
+ mnt) echo "Fixing stacksizes ..."
+- fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot
++ fixstk 64K bin/pine bin/pico bin/pilot
+ esac
echo "Done"
;;
-
-@@ -317,10 +317,10 @@
+@@ -325,10 +325,10 @@
make clean
echo "Cleaning Pine"
cd $PHOME/pine
diff --git a/chinese/pine4/files/patch-bp b/chinese/pine4/files/patch-bp
index 0d07559..1f52e21 100644
--- a/chinese/pine4/files/patch-bp
+++ b/chinese/pine4/files/patch-bp
@@ -1,6 +1,6 @@
---- doc/pine.1.orig Wed Jul 22 03:48:42 1998
-+++ doc/pine.1 Wed Aug 19 10:45:16 1998
-@@ -256,11 +256,11 @@
+--- doc/pine.1.orig Wed Oct 13 02:29:13 1999
++++ doc/pine.1 Thu Oct 14 10:53:45 1999
+@@ -296,11 +296,11 @@
.br
/etc/mime.types System-wide file ext. to MIME type mapping
.br
diff --git a/chinese/pine4/files/patch-br b/chinese/pine4/files/patch-br
index 5a68b42..8f064b9 100644
--- a/chinese/pine4/files/patch-br
+++ b/chinese/pine4/files/patch-br
@@ -1,6 +1,6 @@
---- 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 @@
+--- pine/pine.hlp.orig Tue Oct 5 02:51:50 1999
++++ pine/pine.hlp Thu Oct 14 10:53:45 1999
+@@ -489,9 +489,9 @@
executable &lt;Unix search path&gt;/pine
persnl cfg ~/.pinerc
@@ -13,7 +13,7 @@
interrupted ~/.pine-interrupted-mail
debug ~/.pine-debugN
-@@ -850,7 +850,7 @@
+@@ -504,7 +504,7 @@
sentmail# ~/mail/sent-mail
mailcap# ~/.mailcap + /etc/mailcap
+ /usr/etc/mailcap + /usr/local/etc/mailcap
@@ -22,7 +22,7 @@
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 @@
+@@ -929,9 +929,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-->
@@ -34,7 +34,7 @@
<HR WIDTH="75%">
<!--chtml endif-->
<P>
-@@ -1493,7 +1493,7 @@
+@@ -1019,7 +1019,7 @@
<OL>
<LI> <A HREF="#intro">Introduction</A>
<LI> <A HREF="#pine_help">Pine Help</A>
@@ -43,7 +43,7 @@
<LI> <A HREF="#local_support">Local Support Contacts</A>
<!--chtml endif-->
<LI> <A HREF="#giving_cmds">Giving Commands in Pine</A>
-@@ -1600,9 +1600,9 @@
+@@ -1132,9 +1132,9 @@
at your site.)
diff --git a/chinese/pine4/files/patch-bs b/chinese/pine4/files/patch-bs
index 5176301..5e74834 100644
--- a/chinese/pine4/files/patch-bs
+++ b/chinese/pine4/files/patch-bs
@@ -1,5 +1,5 @@
---- pine/mailcap.c.orig Tue Sep 15 05:31:21 1998
-+++ pine/mailcap.c Tue Sep 22 14:27:29 1998
+--- pine/mailcap.c.orig Wed Apr 21 08:13:38 1999
++++ pine/mailcap.c Thu Oct 14 10:53:45 1999
@@ -61,7 +61,7 @@
Mime types makes mime assign attachment types according
diff --git a/chinese/pine4/files/patch-bt b/chinese/pine4/files/patch-bt
index 73285bb..0021207 100644
--- a/chinese/pine4/files/patch-bt
+++ b/chinese/pine4/files/patch-bt
@@ -1,5 +1,5 @@
---- pine/osdep/expnfldr.orig Tue Sep 22 21:19:44 1998
-+++ pine/osdep/expnfldr Tue Sep 22 21:20:44 1998
+--- pine/osdep/expnfldr.orig Tue Dec 12 05:10:01 1995
++++ pine/osdep/expnfldr Thu Oct 14 10:53:45 1999
@@ -32,13 +32,13 @@
} else if(ps_global->restricted
&& (strindex("./~", temp_filename[0]) != NULL
diff --git a/chinese/pine4/files/patch-bu b/chinese/pine4/files/patch-bu
index 37b8893..0b48520 100644
--- a/chinese/pine4/files/patch-bu
+++ b/chinese/pine4/files/patch-bu
@@ -1,7 +1,7 @@
---- pine/osdep/execview.orig Tue Sep 22 21:21:12 1998
-+++ pine/osdep/execview Tue Sep 22 21:22:10 1998
+--- pine/osdep/execview.orig Fri Nov 13 06:51:20 1998
++++ pine/osdep/execview Thu Oct 14 10:53:45 1999
@@ -45,14 +45,14 @@
- if(syspipe = open_system_pipe(command, r_file_h, NULL, mode)){
+ if(syspipe = open_system_pipe(command, r_file_h, NULL, mode, 0)){
close_system_pipe(&syspipe);
if(needsterminal == 1)
- q_status_message(SM_ORDER, 0, 4, "VIEWER command completed");
diff --git a/chinese/pine4/files/patch-bv b/chinese/pine4/files/patch-bv
index ffa5de39..f64c90e 100644
--- a/chinese/pine4/files/patch-bv
+++ b/chinese/pine4/files/patch-bv
@@ -1,5 +1,5 @@
---- pine/osdep/print.orig Tue Sep 22 21:22:23 1998
-+++ pine/osdep/print Tue Sep 22 21:26:09 1998
+--- pine/osdep/print.orig Fri Nov 13 06:51:20 1998
++++ pine/osdep/print Thu Oct 14 10:53:45 1999
@@ -39,12 +39,12 @@
HelpType help;
char **list;
diff --git a/chinese/pine4/files/patch-bw b/chinese/pine4/files/patch-bw
index 06556ab..ad6954b 100644
--- a/chinese/pine4/files/patch-bw
+++ b/chinese/pine4/files/patch-bw
@@ -1,6 +1,6 @@
---- 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 @@
+--- pine/osdep/termin.gen.orig Tue Oct 5 06:45:41 1999
++++ pine/osdep/termin.gen Thu Oct 14 10:53:45 1999
+@@ -38,21 +38,19 @@
* we're in again...
*/
if(ps_global->expunge_count){
@@ -30,7 +30,7 @@
ps_global->inbox_expunge_count = 0L;
display_message('x');
}
-@@ -71,7 +69,7 @@
+@@ -77,7 +75,7 @@
int winner = 0;
if(ps_global->post->status < 0){
@@ -39,7 +39,7 @@
}
else{
(void) pine_send_status(ps_global->post->status,
-@@ -84,7 +82,7 @@
+@@ -90,7 +88,7 @@
if(!winner)
q_status_message(SM_ORDER, 0, 3,
@@ -48,7 +48,7 @@
if(ps_global->post->fcc)
fs_give((void **) &ps_global->post->fcc);
-@@ -115,8 +113,8 @@
+@@ -121,8 +119,8 @@
static struct key oe_keys[] =
diff --git a/chinese/pine4/pkg-descr b/chinese/pine4/pkg-descr
index b941e01..5680287 100644
--- a/chinese/pine4/pkg-descr
+++ b/chinese/pine4/pkg-descr
@@ -19,7 +19,7 @@ pgpencode, and pgpsign.
dot.pinerc.sample is an example configuration file(include PGP support) can be
put into your home directory as .pinerc.
-WWW: http://www.washington.edu/pine/
+Pine on WWW: http://www.washington.edu/pine/
This version of zh-pine ports was based on pine4(pine 4.04) ports of FreeBSD,
which is maintained by:
@@ -27,7 +27,7 @@ which is maintained by:
- Adrian Penisoara (Ady)
pine@freebsd.ady.ro
-zh-pine 4.10 ports for FreeBSD is maintained by:
+zh-pine 4.20 ports for FreeBSD is maintained by:
- Tai-hwa Liang
avatar@www.mmlab.cse.yzu.edu.tw
OpenPOWER on IntegriCloud