diff options
author | steve <steve@FreeBSD.org> | 1999-11-01 00:41:02 +0000 |
---|---|---|
committer | steve <steve@FreeBSD.org> | 1999-11-01 00:41:02 +0000 |
commit | fc3e74f54da1f464d751552fd18a45214007dd8d (patch) | |
tree | 252d5b1898de3aa50f37f2374cdc915692c00ad2 | |
parent | 1c174749651ff8dc83b3e6fc7eaa986f213bb0d5 (diff) | |
download | FreeBSD-ports-fc3e74f54da1f464d751552fd18a45214007dd8d.zip FreeBSD-ports-fc3e74f54da1f464d751552fd18a45214007dd8d.tar.gz |
Update to version 4.20.
PR: 14575
Submitted by: maintainer
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 <Unix search path>/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 |