diff -ruN joe.orig/.joerc joe/.joerc --- joe.orig/.joerc Sat Mar 10 06:28:31 2001 +++ joe/.joerc Sat Mar 10 06:28:48 2001 @@ -25,7 +25,7 @@ -marking Text between ^KB and cursor is highlighted (use with -lightoff) - -asis Characters 128 - 255 shown as-is +-asis Characters 128 - 255 shown as-is -force Force final newline when files are saved @@ -102,7 +102,7 @@ \f Blink -lmsg \i%k%T%W%I%X %n %m%R %M --rmsg %S Row %r Col %c %t Ctrl-K H for help +-rmsg %S 行數 %r 列數 %c %t Ctrl-K H 線上輔助 SECOND SECTION: File name dependant local option settings: @@ -178,73 +178,75 @@ Use \f to turn on/off flash {Basic -\i Help Screen turn off with ^KH more help with ESC . (^[.) \i -\i \i\uCURSOR\u \uGO TO\u \uBLOCK\u \uDELETE\u \uMISC\u \uEXIT\u \i \i -\i \i^B left ^F right ^U prev. screen ^KB begin ^D char. ^KJ reformat ^KX save \i \i -\i \i^P up ^N down ^V next screen ^KK end ^Y line ^T options ^C abort \i \i -\i \i^Z previous word ^A beg. of line ^KM move ^W >word ^R refresh ^KZ shell \i \i -\i \i^X next word ^E end of line ^KC copy ^O word< ^@ insert \uFILE\u \i \i -\i \i\uSEARCH\u ^KU top of file ^KW file ^J >line \uSPELL\u ^KE edit \i \i -\i \i^KF find text ^KV end of file ^KY delete ^_ undo ^[N word ^KR insert\i \i -\i \i^L find next ^KL to line No. ^K/ filter ^^ redo ^[L file ^KD save \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 ESC . 開啟更多輔助視窗 (^[.) \i +\i \i\u游 標\u \u移 動\u \u區 塊\u \u刪 除\u \u雜項\u \u離開\u \i \i +\i \i^B 往左 ^F 往右 ^U 上一個視窗 ^KB 起始 ^D 字元 ^KJ 重新排列 ^KX 存檔 \i \i +\i \i^P 往上 ^N 往下 ^V 下一個視窗 ^KK 結束 ^Y 整行 ^T 設定選項 ^C 放棄 \i \i +\i \i^Z 前一個字 ^A 單行的最前面 ^KM 移動 ^W >單字 ^R 螢幕更新 ^KZ SHELL \i \i +\i \i^X 下一個字 ^E 單行的最後面 ^KC 拷貝 ^O 單字< ^@ 插入空白 \u檔案\u \i \i +\i \i\u搜 尋\u ^KU 檔案最前面 ^KW 存檔 ^J >行尾 \u拼 字\u ^KE 編輯 \i \i +\i \i^KF 搜尋字串 ^KV 檔案最後面 ^KY 刪除 ^_ 復原 ^[N 字 ^KR 插入 \i \i +\i \i^L 下一字串 ^KL 跳往第幾行 ^K/ 過濾 ^^ 不復原 ^[L 檔案 ^KD 存檔 \i \i } {Windows -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i^KO Split the window in half ^KE Load file into window \i \i -\i \i^KG Make current window bigger ^KT Make current window smaller \i \i -\i \i^KN Go to the window below ^KP Go to the window above \i \i -\i \i^C Eliminate the current window ^KI Show all windows / Show one window\i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i^KO 分割視窗為二 ^KE 載入檔案進入游標所在視窗 \i \i +\i \i^KG 放大游標所在視窗 ^KT 縮小游標所在視窗 \i \i +\i \i^KN 跳往下一個視窗 ^KP 跳往前一個視窗 \i \i +\i \i^C 消除游標所在視窗 ^KI 顯示所有視窗 / 顯示游標所在視窗 \i \i } {Advanced -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i\uMACROS\u \uMISC\u \uSCROLL\u \uSHELL\u \uGOTO\u \uI-SEARCH\u \i \i -\i \i^K[ 0-9 Record ^K SPACE status ^[W Up ^K' Window ^[B To ^KB ^[R Backwards\i \i -\i \i^K] Stop ^K\\ Repeat ^[Z Down ^[! Command ^[K To ^KK ^[S Forwards \i \i -\i \i^K 0-9 Play ^[M Math ^K< Left \uQUOTE\u \uDELETE\u \uBOOKMARKS\u \i \i -\i \i^K? Query ^KA Center line ^K> Right ` Ctrl- ^[Y yank ^[ 0-9 Goto \i \i -\i \i^[D Dump ^[H Message ^\\ Meta- ^[O line< ^[^[ Set \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u巨 集\u \u雜項\u \u捲 軸\u \uSHELL\u \u移動\u \u即時搜尋\u \i \i +\i \i^K[ 0-9 記錄 ^K SPACE 狀態^[W 往上 ^K' 視窗模式 ^[B 移往 ^KB 處 ^[R 往後搜尋\i \i +\i \i^K] 停止 ^K\\ 重覆命令 ^[Z 往下 ^[! 命令模式 ^[K 移往 ^KK 處 ^[S 往前搜尋\i \i +\i \i^K 0-9 啟動 ^[M 數學 ^K< 往左 \u引 用\u \u刪 除\u \u書 籤\u \i \i +\i \i^K? 查詢 ^KA 中間對齊 ^K> 往右 ` 控制字元 ^[Y 下拉一行 ^[ 0-9 移動 \i \i +\i \i^[D 傾倒 ^[H 訊息 ^\\ Meta- ^[O 刪前面一行 ^[^[ 設定 \i \i } {Programs -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i\uGOTO\u \uINDENT\u \uCOMPILING\u \i \i -\i \i^G Matching ( [ { ^K, less ^[C Compile and parse errors \i \i -\i \i^K- Previous place ^K. more ^[E Parse errors \i \i -\i \i^K= Next place ^[= To next error \i \i -\i \i^K; Tags file search ^[- To prev. error \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u移動\u \u分 割\u \u編 譯\u \i \i +\i \i^G 成對搜尋 ( [ { ^K, 區塊左移 ^[C 編譯並列出錯誤 \i \i +\i \i^K- 前一個游標位置 ^K. 區塊右移 ^[E 列出錯誤 \i \i +\i \i^K= 下一個游標位置 ^[= 跳至下一個錯誤 \i \i +\i \i^K; 標籤檔搜尋 ^[- 回到上一個錯誤 \i \i } {Search -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \iSpecial search sequences: \i \i -\i \i \\^ \\$ matches beg./end of line \\? match any single char \i \i -\i \i \\< \\> matches beg./end of word \\* match 0 or more chars \i \i -\i \i \\c matches balanced C expression \\\\ matches a \\ \i \i -\i \i \\[..] matches one of a set \\n matches a newline \i \i -\i \i \\+ matches 0 or more of the character which follows the \\+ \i \i -\i \iSpecial replace sequences: \i \i -\i \i \\& replaced with text which matched search string \i \i -\i \i \\0 - 9 replaced with text which matched Nth \\*, \\?, \\c, \\+, or \\[..] \i \i -\i \i \\\\ replaced with \\ \\n replaced with newline \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u特殊搜尋條件\u \i \i +\i \i \\^ \\$ 位於行首/尾的符合字串 \\? 代替任何一個字元 \i \i +\i \i \\< \\> 位於字首/尾的符合字串 \\* 代替任意字元 \i \i +\i \i \\c 符合 C 語言格式的表示示字串 \\\\ 找尋 \"\\"\" \i \i +\i \i \\[..] 符合所指定集合中的任一字串 \\n 代表一個換行符號 \i \i +\i \i \\+ 符合一個或是多個以上附加於 \"+\" 號後面指定條件的字串 \i \i +\i \i\u特殊取代條件\u \i \i +\i \i \\& 直接以替代字元取代找尋到的字串(不加詢問) \i \i +\i \i \\0 - 9 直接以替代字元取代第 n 個字串 \\*, \\?, \\c, \\+, or \\[..] \i \i +\i \i \\\\ 以 \"\\\"來取代 \\n 以換行符號來取代 \i \i } {Names -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i Hit TAB at file name prompts to generate menu of file names \i \i -\i \i Or use up/down keys to access history of previously entered names \i \i -\i \i Special file names: \i \i -\i \i !command Pipe in/out of a shell command \i \i -\i \i >>filename Append to a file \i \i -\i \i - Read/Write to/from standard I/O \i \i -\i \i filename,START,SIZE Read/Write a part of a file/device \i \i -\i \i Give START/SIZE in decimal (255), octal (0377) or hex (0xFF) \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i 在輸入檔案名稱的提示視窗中,按下 TAB 鍵可以產生一個您目前所在目錄下的所有 \i \i +\i \i 檔案名字的列表,或是使用上下鍵來使用以前用過的檔案名稱. \i \i +\i \i 特殊的檔案名稱: \i \i +\i \i !command 引入一個 shell 底下的命令 \i \i +\i \i >>filename 把現有檔息附加到另一檔案中 \i \i +\i \i - 從標準的 I/O 設備中讀入/寫出 \i \i +\i \i filename,START,SIZE 從一個檔案/設備中讀入/寫出部份資料 \i \i +\i \i 給定檔案開始的位置/檔案大小 以十進位(255), 八位位(0377), 十六進進(0xFF) \i \i } {Joe -\i Help Screen turn off with ^KH prev. screen ^[, \i -\i \i Send bug reports to: Joe Allen (jhallen@world.std.com) \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 ^[, 前一頁輔助視窗 \i +\i \i [***JOE 2.8 中文版***] [** 中文化:國立交通大學 應用數學系 86級 賴有得 **] \i \i +\i \i 有任何問題請 email 至 u8222034@cc.nctu.edu.tw 或 u8222034@math.nctu.edu.tw \i \i +\i \i 英文版有任何問題請 Send bug reports to: Joe Allen (jhallen@world.std.com) \i \i } FOURTH SECTION: Key bindings: @@ -309,6 +311,7 @@ :windows Bindings common to all windows type ^@ TO � Type a character abort ^C Abort window +abort .k4 abort ^K Q abort ^K ^Q abort ^K q @@ -433,7 +436,7 @@ Standard JOE user interface quote8 ^\ Enter Meta chars -quote ` Enter Ctrl chars +quote .k; Enter Ctrl chars backs ^? Backspace backs ^H diff -ruN joe.orig/.rjoerc joe/.rjoerc --- joe.orig/.rjoerc Sat Mar 10 06:28:31 2001 +++ joe/.rjoerc Sat Mar 10 06:28:48 2001 @@ -25,7 +25,7 @@ -marking Text between ^KB and cursor is highlighted (use with -lightoff) - -asis Characters 128 - 255 shown as-is +-asis Characters 128 - 255 shown as-is -force Force final newline when files are saved @@ -413,7 +413,7 @@ Standard JOE user interface quote8 ^\ Enter Meta chars -quote ` Enter Ctrl chars +quote .k; Enter Ctrl chars backs ^? Backspace backs ^H diff -ruN joe.orig/b.c joe/b.c --- joe.orig/b.c Sat Mar 10 06:28:31 2001 +++ joe/b.c Sat Mar 10 06:28:48 2001 @@ -48,11 +48,11 @@ char *msgs[]= { - "Error writing file", - "Error opening file", - "Error seeking file", - "Error reading file", - "New File" + "寫入檔案錯誤", + "開啟檔案錯誤", + "尋找檔案錯鋘", + "讀入檔案錯誤", + "新檔" }; /* Get size of gap (amount of free space) */ @@ -1998,8 +1998,8 @@ for(b=bufs.link.next;b!=&bufs;b=b->link.next) if(b->changed) { - if(b->name) fprintf(f,"\n*** File \'%s\'\n",b->name); - else fprintf(f,"\n*** File \'(Unnamed)\'\n"); + if(b->name) fprintf(f,"*** 檔名: \'%s\' ***\n",b->name); + else fprintf(f,"*** 檔名: \'(未命名)\' ***\n"); fflush(f); bsavefd(b->bof,fileno(f),b->eof->byte); } diff -ruN joe.orig/bw.c joe/bw.c --- joe.orig/bw.c Sat Mar 10 06:28:31 2001 +++ joe/bw.c Sat Mar 10 06:28:48 2001 @@ -755,11 +755,11 @@ static char buf[80]; unsigned c=brc(bw->cursor); if(c==MAXINT) - sprintf(buf,"** Line %ld Col %ld Offset %ld(0x%lx) **", + sprintf(buf,"** 行數 %ld 列數 %ld 檔案大小 %ld(0x%lx) **", bw->cursor->line+1,piscol(bw->cursor)+1,bw->cursor->byte, bw->cursor->byte); else - sprintf(buf,"** Line %ld Col %ld Offset %ld(0x%lx) Ascii %d(0%o/0x%X) **", + sprintf(buf,"** 行數 %ld 列數 %ld 檔案大小 %ld(0x%lx) Ascii 碼 %d(0%o/0x%X) **", bw->cursor->line+1,piscol(bw->cursor)+1,bw->cursor->byte, bw->cursor->byte,255&c,255&c,255&c); msgnw(bw,buf); diff -ruN joe.orig/cmd.c joe/cmd.c --- joe.orig/cmd.c Sat Mar 10 06:28:31 2001 +++ joe/cmd.c Sat Mar 10 06:28:48 2001 @@ -197,7 +197,7 @@ if((maint->curwin->watom->what&TYPETW) && bw->b->rdonly && (cmd->flag&EMOD)) { - msgnw(bw,"Read only"); + msgnw(bw,"唯讀"); if(beep) ttputc(7); goto skip; } @@ -387,7 +387,7 @@ int ret= -1; CMD *cmd=findcmd(s); if(!cmd) - msgnw(bw,"No such command"); + msgnw(bw,"沒有這個命令"); else { mac=mkmacro(MAXINT,0,0,cmd); diff -ruN joe.orig/joerc joe/joerc --- joe.orig/joerc Sat Mar 10 06:28:31 2001 +++ joe/joerc Sat Mar 10 06:28:48 2001 @@ -25,7 +25,7 @@ -marking Text between ^KB and cursor is highlighted (use with -lightoff) - -asis Characters 128 - 255 shown as-is +-asis Characters 128 - 255 shown as-is -force Force final newline when files are saved @@ -102,7 +102,7 @@ \f Blink -lmsg \i%k%T%W%I%X %n %m%R %M --rmsg %S Row %r Col %c %t Ctrl-K H for help +-rmsg %S 行數 %r 列數 %c %t Ctrl-K H 線上輔助 SECOND SECTION: File name dependant local option settings: @@ -178,73 +178,75 @@ Use \f to turn on/off flash {Basic -\i Help Screen turn off with ^KH more help with ESC . (^[.) \i -\i \i\uCURSOR\u \uGO TO\u \uBLOCK\u \uDELETE\u \uMISC\u \uEXIT\u \i \i -\i \i^B left ^F right ^U prev. screen ^KB begin ^D char. ^KJ reformat ^KX save \i \i -\i \i^P up ^N down ^V next screen ^KK end ^Y line ^T options ^C abort \i \i -\i \i^Z previous word ^A beg. of line ^KM move ^W >word ^R refresh ^KZ shell \i \i -\i \i^X next word ^E end of line ^KC copy ^O word< ^@ insert \uFILE\u \i \i -\i \i\uSEARCH\u ^KU top of file ^KW file ^J >line \uSPELL\u ^KE edit \i \i -\i \i^KF find text ^KV end of file ^KY delete ^_ undo ^[N word ^KR insert\i \i -\i \i^L find next ^KL to line No. ^K/ filter ^^ redo ^[L file ^KD save \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 ESC . 開啟更多輔助視窗 (^[.) \i +\i \i\u游 標\u \u移 動\u \u區 塊\u \u刪 除\u \u雜項\u \u離開\u \i \i +\i \i^B 往左 ^F 往右 ^U 上一個視窗 ^KB 起始 ^D 字元 ^KJ 重新排列 ^KX 存檔 \i \i +\i \i^P 往上 ^N 往下 ^V 下一個視窗 ^KK 結束 ^Y 整行 ^T 設定選項 ^C 放棄 \i \i +\i \i^Z 前一個字 ^A 單行的最前面 ^KM 移動 ^W >單字 ^R 螢幕更新 ^KZ SHELL \i \i +\i \i^X 下一個字 ^E 單行的最後面 ^KC 拷貝 ^O 單字< ^@ 插入空白 \u檔案\u \i \i +\i \i\u搜 尋\u ^KU 檔案最前面 ^KW 存檔 ^J >行尾 \u拼 字\u ^KE 編輯 \i \i +\i \i^KF 搜尋字串 ^KV 檔案最後面 ^KY 刪除 ^_ 復原 ^[N 字 ^KR 插入 \i \i +\i \i^L 下一字串 ^KL 跳往第幾行 ^K/ 過濾 ^^ 不復原 ^[L 檔案 ^KD 存檔 \i \i } {Windows -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i^KO Split the window in half ^KE Load file into window \i \i -\i \i^KG Make current window bigger ^KT Make current window smaller \i \i -\i \i^KN Go to the window below ^KP Go to the window above \i \i -\i \i^C Eliminate the current window ^KI Show all windows / Show one window\i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i^KO 分割視窗為二 ^KE 載入檔案進入游標所在視窗 \i \i +\i \i^KG 放大游標所在視窗 ^KT 縮小游標所在視窗 \i \i +\i \i^KN 跳往下一個視窗 ^KP 跳往前一個視窗 \i \i +\i \i^C 消除游標所在視窗 ^KI 顯示所有視窗 / 顯示游標所在視窗 \i \i } {Advanced -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i\uMACROS\u \uMISC\u \uSCROLL\u \uSHELL\u \uGOTO\u \uI-SEARCH\u \i \i -\i \i^K[ 0-9 Record ^K SPACE status ^[W Up ^K' Window ^[B To ^KB ^[R Backwards\i \i -\i \i^K] Stop ^K\\ Repeat ^[Z Down ^[! Command ^[K To ^KK ^[S Forwards \i \i -\i \i^K 0-9 Play ^[M Math ^K< Left \uQUOTE\u \uDELETE\u \uBOOKMARKS\u \i \i -\i \i^K? Query ^KA Center line ^K> Right ` Ctrl- ^[Y yank ^[ 0-9 Goto \i \i -\i \i^[D Dump ^[H Message ^\\ Meta- ^[O line< ^[^[ Set \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u巨 集\u \u雜項\u \u捲 軸\u \uSHELL\u \u移動\u \u即時搜尋\u \i \i +\i \i^K[ 0-9 記錄 ^K SPACE 狀態^[W 往上 ^K' 視窗模式 ^[B 移往 ^KB 處 ^[R 往後搜尋\i \i +\i \i^K] 停止 ^K\\ 重覆命令 ^[Z 往下 ^[! 命令模式 ^[K 移往 ^KK 處 ^[S 往前搜尋\i \i +\i \i^K 0-9 啟動 ^[M 數學 ^K< 往左 \u引 用\u \u刪 除\u \u書 籤\u \i \i +\i \i^K? 查詢 ^KA 中間對齊 ^K> 往右 ` 控制字元 ^[Y 下拉一行 ^[ 0-9 移動 \i \i +\i \i^[D 傾倒 ^[H 訊息 ^\\ Meta- ^[O 刪前面一行 ^[^[ 設定 \i \i } {Programs -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i\uGOTO\u \uINDENT\u \uCOMPILING\u \i \i -\i \i^G Matching ( [ { ^K, less ^[C Compile and parse errors \i \i -\i \i^K- Previous place ^K. more ^[E Parse errors \i \i -\i \i^K= Next place ^[= To next error \i \i -\i \i^K; Tags file search ^[- To prev. error \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u移動\u \u分 割\u \u編 譯\u \i \i +\i \i^G 成對搜尋 ( [ { ^K, 區塊左移 ^[C 編譯並列出錯誤 \i \i +\i \i^K- 前一個游標位置 ^K. 區塊右移 ^[E 列出錯誤 \i \i +\i \i^K= 下一個游標位置 ^[= 跳至下一個錯誤 \i \i +\i \i^K; 標籤檔搜尋 ^[- 回到上一個錯誤 \i \i } {Search -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \iSpecial search sequences: \i \i -\i \i \\^ \\$ matches beg./end of line \\? match any single char \i \i -\i \i \\< \\> matches beg./end of word \\* match 0 or more chars \i \i -\i \i \\c matches balanced C expression \\\\ matches a \\ \i \i -\i \i \\[..] matches one of a set \\n matches a newline \i \i -\i \i \\+ matches 0 or more of the character which follows the \\+ \i \i -\i \iSpecial replace sequences: \i \i -\i \i \\& replaced with text which matched search string \i \i -\i \i \\0 - 9 replaced with text which matched Nth \\*, \\?, \\c, \\+, or \\[..] \i \i -\i \i \\\\ replaced with \\ \\n replaced with newline \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i\u特殊搜尋條件\u \i \i +\i \i \\^ \\$ 位於行首/尾的符合字串 \\? 代替任何一個字元 \i \i +\i \i \\< \\> 位於字首/尾的符合字串 \\* 代替任意字元 \i \i +\i \i \\c 符合 C 語言格式的表示示字串 \\\\ 找尋 \"\\"\" \i \i +\i \i \\[..] 符合所指定集合中的任一字串 \\n 代表一個換行符號 \i \i +\i \i \\+ 符合一個或是多個以上附加於 \"+\" 號後面指定條件的字串 \i \i +\i \i\u特殊取代條件\u \i \i +\i \i \\& 直接以替代字元取代找尋到的字串(不加詢問) \i \i +\i \i \\0 - 9 直接以替代字元取代第 n 個字串 \\*, \\?, \\c, \\+, or \\[..] \i \i +\i \i \\\\ 以 \"\\\"來取代 \\n 以換行符號來取代 \i \i } {Names -\i Help Screen turn off with ^KH prev. screen ^[, next screen ^[. \i -\i \i Hit TAB at file name prompts to generate menu of file names \i \i -\i \i Or use up/down keys to access history of previously entered names \i \i -\i \i Special file names: \i \i -\i \i !command Pipe in/out of a shell command \i \i -\i \i >>filename Append to a file \i \i -\i \i - Read/Write to/from standard I/O \i \i -\i \i filename,START,SIZE Read/Write a part of a file/device \i \i -\i \i Give START/SIZE in decimal (255), octal (0377) or hex (0xFF) \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 前一頁輔助視窗 ^[, 下一頁輔助視窗 ^[. \i +\i \i 在輸入檔案名稱的提示視窗中,按下 TAB 鍵可以產生一個您目前所在目錄下的所有 \i \i +\i \i 檔案名字的列表,或是使用上下鍵來使用以前用過的檔案名稱. \i \i +\i \i 特殊的檔案名稱: \i \i +\i \i !command 引入一個 shell 底下的命令 \i \i +\i \i >>filename 把現有檔息附加到另一檔案中 \i \i +\i \i - 從標準的 I/O 設備中讀入/寫出 \i \i +\i \i filename,START,SIZE 從一個檔案/設備中讀入/寫出部份資料 \i \i +\i \i 給定檔案開始的位置/檔案大小 以十進位(255), 八位位(0377), 十六進進(0xFF) \i \i } {Joe -\i Help Screen turn off with ^KH prev. screen ^[, \i -\i \i Send bug reports to: Joe Allen (jhallen@world.std.com) \i \i +\i 線上輔助視窗 ^KH 關閉輔助視窗 ^[, 前一頁輔助視窗 \i +\i \i [***JOE 2.8 中文版***] [** 中文化:國立交通大學 應用數學系 86級 賴有得 **] \i \i +\i \i 有任何問題請 email 至 u8222034@cc.nctu.edu.tw 或 u8222034@math.nctu.edu.tw \i \i +\i \i 英文版有任何問題請 Send bug reports to: Joe Allen (jhallen@world.std.com) \i \i } FOURTH SECTION: Key bindings: @@ -309,6 +311,7 @@ :windows Bindings common to all windows type ^@ TO � Type a character abort ^C Abort window +abort .k4 abort ^K Q abort ^K ^Q abort ^K q @@ -433,7 +436,7 @@ Standard JOE user interface quote8 ^\ Enter Meta chars -quote ` Enter Ctrl chars +quote .k; Enter Ctrl chars backs ^? Backspace backs ^H diff -ruN joe.orig/macro.c joe/macro.c --- joe.orig/macro.c Sat Mar 10 06:28:31 2001 +++ joe/macro.c Sat Mar 10 06:28:49 2001 @@ -460,7 +460,7 @@ { if(c>='0' && c<='9') return dorecord(bw,c,NULL,NULL); else - if(mkqw(bw,sc("Macro to record (0-9 or ^C to abort): "),dorecord,NULL,NULL,NULL)) return 0; + if(mkqw(bw,sc("記錄巨集 (0-9 或 ^C 中斷): "),dorecord,NULL,NULL,NULL)) return 0; else return -1; } @@ -531,7 +531,7 @@ { if(c>='0' && c<='9') return doplay(bw,c,NULL,NULL); else - if(mkqwna(bw,sc("Play-"),doplay,NULL,NULL,NULL)) return 0; + if(mkqwna(bw,sc("執行-"),doplay,NULL,NULL,NULL)) return 0; else return -1; } @@ -557,7 +557,7 @@ BW *bw; { if(wmkpw(bw, - "No. times to repeat next command (^C to abort): ", + "下一個指令重覆的次數 (^C 中斷): ", NULL,doarg,NULL,NULL,utypebw,NULL,NULL)) return 0; else return -1; } @@ -591,7 +591,7 @@ if(notify) *notify=1; return 0; } - sprintf(msgbuf,"Repeat %s%d",negarg?"-":"",unaarg); + sprintf(msgbuf,"重覆 %s%d",negarg?"-":"",unaarg); if(mkqwna(bw,sz(msgbuf),douarg,NULL,NULL,notify)) return 0; else return -1; } @@ -603,6 +603,6 @@ negarg=0; if(c>='0' && c<='9' || c=='-') return douarg(bw,c,NULL,NULL); else - if(mkqwna(bw,sc("Repeat"),douarg,NULL,NULL,NULL)) return 0; + if(mkqwna(bw,sc("重覆"),douarg,NULL,NULL,NULL)) return 0; else return -1; } diff -ruN joe.orig/main.c joe/main.c --- joe.orig/main.c Sat Mar 10 06:28:31 2001 +++ joe/main.c Sat Mar 10 06:29:43 2001 @@ -197,7 +197,7 @@ #ifndef __MSDOS__ if(!(cap=getcap(NULL,9600,NULL,NULL))) { - fprintf(stderr,"Couldn't load termcap/terminfo entry\n"); + fprintf(stderr,"無法載入 termcap/terminfo \n"); return 1; } #endif @@ -211,7 +211,7 @@ if(c==1) { char buf[8]; - fprintf(stderr,"There were errors in '%s'. Use it anyway?",s); + fprintf(stderr,"在 '%s' 中有錯誤. 要使用它嗎?",s); fflush(stderr); fgets(buf,8,stdin); if(buf[0]=='y' || buf[0]=='Y') goto donerc; @@ -226,7 +226,7 @@ if(c==1) { char buf[8]; - fprintf(stderr,"There were errors in '%s'. Use it anyway?",s); + fprintf(stderr,"在 '%s' 中有錯誤. 要使用它嗎?",s); fflush(stderr); fgets(buf,8,stdin); if(buf[0]=='y' || buf[0]=='Y') goto donerc; @@ -261,7 +261,7 @@ if(c==1) { char buf[8]; - fprintf(stderr,"There were errors in '%s'. Use it anyway?",s); + fprintf(stderr,"在 '%s' 中有錯誤. 要使用它嗎?",s); fflush(stderr); fgets(buf,8,stdin); if(buf[0]=='y' || buf[0]=='Y') goto donerc; @@ -277,7 +277,7 @@ if(c==1) { char buf[8]; - fprintf(stderr,"There were errors in '%s'. Use it anyway?",s); + fprintf(stderr,"在 '%s' 中有錯誤. 要使用它嗎?",s); fflush(stderr); fgets(buf,8,stdin); if(buf[0]=='y' || buf[0]=='Y') goto donerc; @@ -285,7 +285,7 @@ #endif - fprintf(stderr,"Couldn't open '%s'\n",s); + fprintf(stderr,"無法開啟 '%s'\n",s); return 1; donerc: @@ -295,7 +295,7 @@ if(argv[c][1]) switch(glopt(argv[c]+1,argv[c+1],NULL,1)) { - case 0: fprintf(stderr,"Unknown option '%s'\n",argv[c]); break; + case 0: fprintf(stderr,"不知明的選項 '%s'\n",argv[c]); break; case 1: break; case 2: ++c; break; } diff -ruN joe.orig/menu.c joe/menu.c --- joe.orig/menu.c Sat Mar 10 06:28:31 2001 +++ joe/menu.c Sat Mar 10 06:28:49 2001 @@ -41,9 +41,15 @@ for(x=0;x!=m->perline && m->list[x+m->top];++x) { int atr,z; - if(x+m->top==m->cursor) atr=INVERSE; - else atr=0; + atr = 0 ; +/* + if(x+m->top==m->cursor) + atr= 0 ; + else + atr=0; +*/ if(col==m->w) break; + for(z=0;m->list[x+m->top][z];++z) { if(col==m->w) break; diff -ruN joe.orig/rc.c joe/rc.c --- joe.orig/rc.c Sat Mar 10 06:28:32 2001 +++ joe/rc.c Sat Mar 10 06:28:49 2001 @@ -54,14 +54,14 @@ OPTIONS fdefault= { 0, 0, 0, 0, 76, 0, 0, 8, ' ', 1, "main", "\\i%n %m %M", - " %S Ctrl-K H for help", 0, 0, 0, 0, 1, 0, 0, 0, 0 }; + " %S Ctrl-K H 線上輔助", 0, 0, 0, 0, 1, 0, 0, 0, 0 }; #else OPTIONS pdefault= { 0, 0, 0, 0, 76, 0, 0, 8, ' ', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; OPTIONS fdefault= { 0, 0, 0, 0, 76, 0, 0, 8, ' ', 1, "main", "\\i%n %m %M", - " %S Ctrl-K H for help", 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + " %S Ctrl-K H 線上輔助", 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #endif void setopt(n,name) @@ -106,49 +106,49 @@ } glopts[]= { {"overwrite", 4, 0, (char *)&fdefault.overtype, - "Overtype mode", - "Insert mode", - "T Overtype "}, + "覆寫模式", + "插入模式", + "T [***輸入設定***] "}, {"autoindent", 4, 0, (char *)&fdefault.autoindent, - "Autoindent enabled", - "Autindent disabled", - "I Autoindent "}, + "自動縮排 [開啟]", + "自動縮排 [關閉]", + "I [***縮排設定***] "}, {"wordwrap", 4, 0, (char *)&fdefault.wordwrap, - "Wordwrap enabled", - "Wordwrap disabled", - "Word wrap "}, + "自動換行 [開啟]", + "自動換行 [關閉]", + "* [***換行設定***] "}, {"tab", 5, 0, (char *)&fdefault.tab, - "Tab width (%d): ", + "Tab 寬度 (%d): ", 0, - "D Tab width ",0,1,64}, + "D [**TAB 鍵寬度**] ",0,1,64}, {"lmargin", 7, 0, (char *)&fdefault.lmargin, - "Left margin (%d): ", + "設定左邊界 (%d): ", 0, - "Left margin ",0,0,63}, + "L [**設定左邊界**] ",0,0,63}, {"rmargin", 7, 0, (char *)&fdefault.rmargin, - "Right margin (%d): ", - 0, - "Right margin ",0,7,255}, + "設定右邊界 (%d): ", + 0, + "* [**設定右邊界**] ",0,7,255}, {"square", 0, &square, 0, - "Rectangle mode", - "Text-stream mode", - "X Rectangle mode " }, + "矩形模式 Rectangle mode", + "文字串模式", + "X [*區塊設定模式*] " }, {"indentc", 5, 0, (char *)&fdefault.indentc, - "Indent char %d (SPACE=32, TAB=9, ^C to abort): ", + "設定縮格字元 %d (SPACE=32, TAB=9, ^C 中斷): ", 0, - " Indent char ",0,0,255}, + "* [*設定縮格字元*] ",0,0,255}, {"istep", 5, 0, (char *)&fdefault.istep, - "Indent step %d (^C to abort): ", + "設定縮格步驟 %d (^C 中斷): ", 0, - " Indent step ",0,1,64}, + "* [*設定縮格步驟*] ",0,1,64}, {"french", 4, 0, (char *)&fdefault.french, "One space after periods for paragraph reformat", @@ -156,90 +156,90 @@ " french spacing "}, {"spaces", 4, 0, (char *)&fdefault.spaces, - "Inserting spaces when tab key is hit", - "Inserting tabs when tab key is hit", - " no tabs "}, + "設定按下 [TAB] 後插入 [空白] 字元 ", + "設定按下 [TAB] 後插入 [TAB ] 字元 ", + "* [TAB 鍵代表字元] "}, {"mid", 0, &mid, 0, - "Cursor will be recentered on scrolls", - "Cursor will not be recentered on scroll", - "Center on scroll " }, + "螢幕捲動後游標自動向中間對齊功\能 [開啟]", + "螢幕捲動後游標自動向中間對齊功\能 [關閉]", + "* [*游標向中對齊*] " }, {"crlf", 4, 0, (char *)&fdefault.crlf, - "CR-LF is line terminator", - "LF is line terminator", - "Z CR-LF (MS-DOS) "}, + "行的結尾是 CR-LF", + "行的結尾是 LF", + "Z [*行尾字元設定*] "}, {"linums", 4, 0, (char *)&fdefault.linums, - "Line numbers enabled", - "Line numbers disabled", - "N Line numbers "}, + "顯示行數功\能 [開啟] Line numbers enabled", + "顯示行數功\能 [關閉] Line numbers disabled", + "N [***行數設定***] "}, {"marking", 0, &marking, 0, - "Anchored block marking on", - "Anchored block marking off", - "Marking " }, + "反白區塊隨游標移動功\能 [開啟]", + "反白區塊隨游標移動功\能 [關閉]", + "* [*區塊反白設定*] " }, {"asis", 0, &dspasis, 0, - "Characters above 127 shown as-is", - "Characters above 127 shown in inverse", - "Meta chars as-is " + "顯示 ASCII 127 以上的字元", + "以相反方式來顯示 ASCII 127 以上的字元", + "* [*中文顯示方式*] " }, {"force", 0, &force, 0, - "Last line forced to have NL when file saved", - "Last line not forces to have NL", - "Force last NL " }, + "存檔後,自動加上一行空白行功\能 [開啟]", + "存檔後,自動加上一行空白行功\能 [關閉]", + "* [*存檔新行設定*] " }, {"nobackups", 0, &nobackups, 0, - "Backup files will not be made", - "Backup files will be made", - " Disable backups " }, + "自動產生備份檔功\能 [開啟]", + "自動產生備份檔功\能 [關閉]", + "* [**備份檔設定**] " }, {"lightoff", 0, &lightoff, 0, - "Highlighting turned off after block operations", - "Highlighting not turned off after block operations", - "Auto unmark " }, + "使用區塊功\能後,自動關閉高亮度區塊功\能 [關閉]", + "使用區塊功\能後,自動關閉高亮度區塊功\能 [開啟]", + "* [*區塊亮度設定*] " }, {"exask", 0, &exask, 0, - "Prompt for filename in save & exit command", - "Don't prompt for filename in save & exit command", - "Exit ask "}, + "存檔並離開時是否詢問檔名功\能 [開啟]", + "存檔並離開時是否詢問檔名功\能 [關閉]", + "* [*離開存檔詢問*] "}, {"beep", 0, &beep, 0, - "Warning bell enabled", - "Warning bell disabled", - "Beeps " }, + "錯誤時發出\"嗶\"的聲音功\能 [開啟]", + "錯誤時發出\"嗶\"的聲音功\能 [關閉]", + "* [*錯誤聲響設定*] " }, {"nosta", 0, &staen, 0, - "Top-most status line disabled", - "Top-most status line enabled", - " Disable status line " }, + "開啟最上面的狀態列功\能[關閉]", + "開啟最上面的狀態列功\能[開啟]", + "* [**狀態列開關**] " }, {"keepup", 0, &keepup, 0, - "Status line updated constantly", - "Status line updated once/sec", - " Fast status line " }, + "狀態列固定時間更新資料一次", + "狀態列每秒更新資料一次", + "* [狀態列資料更新] " }, {"pg", 1, &pgamnt, 0, - "Lines to keep for PgUp/PgDn or -1 for 1/2 window (%d): ", + "按下 [PgUp]/[PgDn] 時所保留的行數 或 -1(保留半個視窗) (%d): ", 0, - " No. PgUp/PgDn lines ", 0, -1, 64 }, + "* [PaUp/PaDn 行數]", 0, -1, 64 }, {"csmode", 0, &csmode, 0, - "Start search after a search repeats previous search", - "Start search always starts a new search", - "Continued search " }, + "按下 CTRL + F 以前面所輸入的字串開始搜尋", + "按下 CTRL + F 都以新的字串進行搜尋", + "* [*搜尋字元設定*] " }, {"rdonly", 4, 0, (char *)&fdefault.readonly, - "Read only", - "Full editing", - "O Read only "}, + "唯讀模式", + "可編輯模式", + "O [*唯讀模式設定*] "}, {"backpath", 2, (int *)&backpath, 0, - "Backup files stored in (%s): ", + "備份檔儲存路徑 (%s): ", 0, - "Path to backup files " }, + "* [*備份檔案路徑*] " }, {"nonotice", 0, &nonotice, 0, 0, 0, 0 }, @@ -455,20 +455,20 @@ v=calc(bw,s); if(merr) msgnw(bw,merr), ret= -1; else if(v>=glopts[x].low && v<=glopts[x].high) *glopts[x].set=v; - else msgnw(bw,"Value out of range"), ret= -1; + else msgnw(bw,"數值超過範圍"), ret= -1; break; case 2: if(s[0]) *(char **)glopts[x].set=zdup(s); break; case 5: v=calc(bw,s); if(merr) msgnw(bw,merr), ret= -1; else if(v>=glopts[x].low && v<=glopts[x].high) *(int *)((char *)&bw->o+glopts[x].ofst)=v; - else msgnw(bw,"Value out of range"), ret= -1; + else msgnw(bw,"數值超過範圍"), ret= -1; break; case 7: v=calc(bw,s)-1.0; if(merr) msgnw(bw,merr), ret= -1; else if(v>=glopts[x].low && v<=glopts[x].high) *(int *)((char *)&bw->o+glopts[x].ofst)=v; - else msgnw(bw,"Value out of range"), ret= -1; + else msgnw(bw,"數值超過範圍"), ret= -1; break; } vsrm(s); @@ -567,7 +567,7 @@ s[x]=(char *)malloc(40); switch(glopts[x].type) { - case 0: sprintf(s[x],"%s%s",glopts[x].menu,*glopts[x].set?"ON":"OFF"); + case 0: sprintf(s[x],"%s%s",glopts[x].menu,*glopts[x].set?"開":"關"); break; case 1: sprintf(s[x],"%s%d",glopts[x].menu,*glopts[x].set); @@ -576,7 +576,7 @@ case 2: zcpy(s[x],glopts[x].menu); break; - case 4: sprintf(s[x],"%s%s",glopts[x].menu,*(int *)((char *)&bw->o+glopts[x].ofst)?"ON":"OFF"); + case 4: sprintf(s[x],"%s%s",glopts[x].menu,*(int *)((char *)&bw->o+glopts[x].ofst)?"開":"關"); break; case 5: sprintf(s[x],"%s%d",glopts[x].menu,*(int *)((char *)&bw->o+glopts[x].ofst)); @@ -619,7 +619,7 @@ if(!fd) return -1; /* Return if we couldn't open the rc file */ - fprintf(stderr,"Processing '%s'...",name); fflush(stderr); + fprintf(stderr,"定義檔 '%s' 處理中..... ",name); fflush(stderr); while(++line, fgets(buf,1024,fd)) switch(buf[0]) @@ -655,7 +655,7 @@ if(!glopt(opt,arg,o,2)) { err=1; - fprintf(stderr,"\n%s %d: Unknown option %s",name,line,opt); + fprintf(stderr,"\n%s %d: 未定義的設定 %s",name,line,opt); } } break; @@ -677,7 +677,7 @@ if(++line, !fgets(buf,256,fd)) { err=1; - fprintf(stderr,"\n%s %d: End of joerc file occured before end of help text",name,line); + fprintf(stderr,"\n%s %d: 因為 help 的內容不正常的結束故結束 joerc 的讀入",name,line); break; } if(buf[0]=='}') @@ -724,13 +724,13 @@ else { err=1; - fprintf(stderr,"\n%s %d: macro missing from :def",name,line); + fprintf(stderr,"\n%s %d: 找不到巨集名稱 :def",name,line); } } else { err=1; - fprintf(stderr,"\n%s %d: command name missing from :def",name,line); + fprintf(stderr,"\n%s %d: 找不到命令名稱 :def",name,line); } } else if(!zcmp(buf+1,"inherit")) @@ -743,13 +743,13 @@ else { err=1; - fprintf(stderr,"\n%s %d: context name missing from :inherit",name,line); + fprintf(stderr,"\n%s %d: 找不到內容名稱 :inherit",name,line); } } else { err=1; - fprintf(stderr,"\n%s %d: No context selected for :inherit",name,line); + fprintf(stderr,"\n%s %d: 沒有任何的內容被選定 :inherit",name,line); } else if(!zcmp(buf+1,"include")) { @@ -761,7 +761,7 @@ switch(procrc(buf+x)) { case 1: err=1; break; - case -1: fprintf(stderr,"\n%s %d: Couldn't open %s",name,line,buf+x); + case -1: fprintf(stderr,"\n%s %d: 無法開啟 %s",name,line,buf+x); err=1; break; } context=0; @@ -770,7 +770,7 @@ else { err=1; - fprintf(stderr,"\n%s %d: :include missing file name",name,line); + fprintf(stderr,"\n%s %d: : 無法找到 include 檔",name,line); } } else if(!zcmp(buf+1,"delete")) @@ -786,13 +786,13 @@ else { err=1; - fprintf(stderr,"\n%s %d: No context selected for :delete",name,line); + fprintf(stderr,"\n%s %d: 沒有任何的內容被選定 :delete",name,line); } else context=getcontext(buf+1); else { err=1; - fprintf(stderr,"\n%s %d: Invalid context name",name,line); + fprintf(stderr,"\n%s %d: 不合法的文章名稱",name,line); } } break; @@ -804,7 +804,7 @@ if(!context) { err=1; - fprintf(stderr,"\n%s %d: No context selected for macro to key-sequence binding",name,line); + fprintf(stderr,"\n%s %d: 沒有任何的內容被選定給巨集使用",name,line); break; } @@ -814,7 +814,7 @@ if(x== -1) { err=1; - fprintf(stderr,"\n%s %d: Unknown command in macro",name,line); + fprintf(stderr,"\n%s %d: 不知名巨集名稱",name,line); break; } else if(x== -2) @@ -832,7 +832,7 @@ /* Add binding to context */ if(kadd(cap,context,buf+x,m)== -1) { - fprintf(stderr,"\n%s %d: Bad key sequence '%s'",name,line,buf+x); + fprintf(stderr,"\n%s %d: 錯誤按鍵設定 '%s'",name,line,buf+x); err=1; } } @@ -841,8 +841,8 @@ fclose(fd); /* Close rc file */ /* Print proper ending string */ - if(err) fprintf(stderr,"\ndone\n"); - else fprintf(stderr,"done\n"); + if(err) fprintf(stderr,"\n完成\n"); + else fprintf(stderr,"完成\n"); return err; /* 0 for success, 1 for syntax error */ } diff -ruN joe.orig/rjoerc joe/rjoerc --- joe.orig/rjoerc Sat Mar 10 06:28:32 2001 +++ joe/rjoerc Sat Mar 10 06:28:49 2001 @@ -25,7 +25,7 @@ -marking Text between ^KB and cursor is highlighted (use with -lightoff) - -asis Characters 128 - 255 shown as-is +-asis Characters 128 - 255 shown as-is -force Force final newline when files are saved @@ -413,7 +413,7 @@ Standard JOE user interface quote8 ^\ Enter Meta chars -quote ` Enter Ctrl chars +quote .k; Enter Ctrl chars backs ^? Backspace backs ^H diff -ruN joe.orig/tab.c joe/tab.c --- joe.orig/tab.c Sat Mar 10 06:28:32 2001 +++ joe/tab.c Sat Mar 10 06:28:49 2001 @@ -202,7 +202,7 @@ tab->pattern=vsncpy(NULL,0,sc("*")); if(treload(m,0)) { - msgnw(m,"Couldn't read directory "); + msgnw(m,"無法讀取目錄"); vsrm(tab->pattern); tab->pattern=orgpattern; vsrm(tab->path); tab->path=orgpath; return -1; @@ -245,7 +245,7 @@ if(treload(m,1)) { - msgnw(m,"Couldn't read directory "); + msgnw(m,"無法讀取目錄"); vsrm(tab->pattern); tab->pattern=orgpattern; vsrm(tab->path); tab->path=orgpath; return -1; diff -ruN joe.orig/termcap.c joe/termcap.c --- joe.orig/termcap.c Sat Mar 10 06:28:32 2001 +++ joe/termcap.c Sat Mar 10 06:28:50 2001 @@ -215,7 +215,7 @@ free(cap); return 0; */ - fprintf(stderr,"Couldn't load termcap entry. Using ansi default\n"); + fprintf(stderr," 無法載入 termcap. 使用 ansi 為內定值\n"); ti=0; cap->tbuf=vsncpy(cap->tbuf,0,sc(defentry)); goto checktc; @@ -233,7 +233,7 @@ fstat(fileno(f),&buf); fstat(fileno(f1),&buf1); if(buf.st_mtime>buf1.st_mtime) idx=findidx(f,name); - else fprintf(stderr,"%s is out of date\n",idxname); + else fprintf(stderr,"%s 資料毀損\n",idxname); fclose(f); } vsrm(idxname); diff -ruN joe.orig/tty.c joe/tty.c --- joe.orig/tty.c Sat Mar 10 06:28:32 2001 +++ joe/tty.c Sat Mar 10 06:28:50 2001 @@ -354,7 +354,7 @@ (!(termin=fopen("/dev/tty","r")) || !(termout=fopen("/dev/tty","w")))) { - fprintf(stderr,"Couldn\'t open /dev/tty\n"); + fprintf(stderr,"無法開啟 /dev/tty\n"); exit(1); } else @@ -686,7 +686,7 @@ if(cmd) execl(s,s,"-c",cmd,NULL); else { - fprintf(stderr,"You are at the command shell. Type 'exit' to return\n"); + fprintf(stderr,"你在命命列的狀態下. 鍵入 'exit' 返回\n"); execl(s,s,NULL); } _exit(0); @@ -700,7 +700,7 @@ #ifdef SIGTSTP omode=ttymode; ttclsn(); - fprintf(stderr,"You have suspended the program. Type 'fg' to return\n"); + fprintf(stderr,"你已經暫停的這個 JOE 這個程式. 鍵入 'fg' 可以返回JOE\n"); kill(0,SIGTSTP); if(ackkbd!= -1) kill(kbdpid,SIGCONT); diff -ruN joe.orig/tw.c joe/tw.c --- joe.orig/tw.c Sat Mar 10 06:28:32 2001 +++ joe/tw.c Sat Mar 10 06:28:50 2001 @@ -139,17 +139,17 @@ break; case 'n': - stalin=vsncpy(sv(stalin),sz(bw->b->name?bw->b->name:"Unnamed")); + stalin=vsncpy(sv(stalin),sz(bw->b->name?bw->b->name:"未命名")); break; case 'm': if(bw->b->changed) - stalin=vsncpy(sv(stalin),sc("(Modified)")); + stalin=vsncpy(sv(stalin),sc("(已更改)")); break; case 'R': if(bw->b->rdonly) - stalin=vsncpy(sv(stalin),sc("(Read only)")); + stalin=vsncpy(sv(stalin),sc("(唯讀)")); break; case '*': @@ -238,7 +238,7 @@ case 'M': if(recmac) { - sprintf(buf,"(Macro %d recording...)",recmac->n); + sprintf(buf,"(巨集 %d 記錄中...)",recmac->n); stalin=vsncpy(sv(stalin),sz(buf)); } break; @@ -437,7 +437,7 @@ } if(bw->pid) return ukillpid(bw); if(bw->b->changed && bw->b->count==1) - if(mkqw(bw,sc("Lose changes to this file (y,n,^C)? "),naborttw,NULL,NULL,NULL)) return 0; + if(mkqw(bw,sc("放棄對這個檔案的更改 (y,n,^C)? "),naborttw,NULL,NULL,NULL)) return 0; else return -1; else return naborttw(bw,'y',NULL,NULL); } @@ -497,7 +497,7 @@ { if(((BW *)t->curwin->main->object)->pid) { - msgnw(t->curwin->main->object,"Process running in this window"); + msgnw(t->curwin->main->object,"視窗中正有程式執行中"); return -1; } utw0(t->curwin->main->object), yn=1; diff -ruN joe.orig/ublock.c joe/ublock.c --- joe.orig/ublock.c Sat Mar 10 06:28:32 2001 +++ joe/ublock.c Sat Mar 10 06:28:50 2001 @@ -345,7 +345,7 @@ bdel(markb,markk); if(lightoff) unmark(bw); } - else { msgnw(bw,"No block"); return -1; } + else { msgnw(bw,"沒有選定區塊"); return -1; } return 0; } @@ -383,7 +383,7 @@ { if(markv(1)) { - if(markb->b->rdonly) { msgnw(bw,"Read only"); return -1; } + if(markb->b->rdonly) { msgnw(bw,"唯讀"); return -1; } if(square) { long height=markk->line-markb->line+1; @@ -435,7 +435,7 @@ return 0; } } - msgnw(bw,"No block"); + msgnw(bw,"沒有選定區塊"); return -1; } @@ -478,7 +478,7 @@ updall(); return 0; } - else { msgnw(bw,"No block"); return -1; } + else { msgnw(bw,"沒有選定區塊"); return -1; } } /* Write highlighted block to a file */ @@ -515,7 +515,7 @@ else { vsrm(s); - msgnw(bw,"No block"); + msgnw(bw,"沒有選定區塊"); return -1; } } @@ -717,7 +717,7 @@ updall(); return 0; } - else { msgnw(bw,"No block"); return -1; } + else { msgnw(bw,"沒有選定區塊"); return -1; } else { int ret=0; @@ -748,7 +748,7 @@ markb->b==bw->b && markk->b==bw->b && markb->byte==markk->byte) goto ok; if(!markv(1)) { - msgnw(bw,"No block"); + msgnw(bw,"沒有選定區塊"); return -1; } ok: @@ -867,25 +867,25 @@ BW *bw; { #ifdef __MSDOS__ - msgnw(bw,"Sorry, no sub-processes in DOS (yet)"); + msgnw(bw,"對不起!在 DOS 下還沒有其它的行程在執行!"); return -1; #else switch(checkmark(bw)) { case 0: if(wmkpw(bw, - "Command to filter block through (^C to abort): ", + "用來過濾區塊的命令名稱 (^C 中斷): ", &filthist,dofilt,NULL,NULL,utypebw,NULL,NULL)) return 0; else return -1; case 1: if(wmkpw(bw, - "Command to filter file through (^C to abort): ", + "輸入用來過濾區塊的命令名稱 (^C 中斷): ", &filthist,dofilt,NULL,NULL,utypebw,NULL,NULL)) return 0; else return -1; case 2: - msgnw(bw,"No block"); + msgnw(bw,"沒有選定區塊"); return -1; } #endif diff -ruN joe.orig/uedit.c joe/uedit.c --- joe.orig/uedit.c Sat Mar 10 06:28:32 2001 +++ joe/uedit.c Sat Mar 10 06:28:50 2001 @@ -447,7 +447,7 @@ else { if(merr) msgnw(bw,merr); - else msgnw(bw,"Invalid line number"); + else msgnw(bw,"不合法的行數"); return -1; } } @@ -455,7 +455,7 @@ int uline(bw) BW *bw; { - if(wmkpw(bw,"Go to line (^C to abort): ",&linehist,doline,NULL,NULL,NULL,NULL,NULL)) return 0; + if(wmkpw(bw,"跳到第幾行 (^C 中斷): ",&linehist,doline,NULL,NULL,NULL,NULL,NULL)) return 0; else return -1; } @@ -482,7 +482,7 @@ else { if(merr) msgnw(bw,merr); - else msgnw(bw,"Invalid column number"); + else msgnw(bw,"不合法的列數"); return -1; } } @@ -490,7 +490,7 @@ int ucol(bw) BW *bw; { - if(wmkpw(bw,"Go to column (^C to abort): ",&colhist,docol,NULL,NULL,NULL,NULL,NULL)) return 0; + if(wmkpw(bw,"跳到第幾列 (^C 中斷): ",&colhist,docol,NULL,NULL,NULL,NULL,NULL)) return 0; else return -1; } @@ -517,7 +517,7 @@ else { if(merr) msgnw(bw,merr); - else msgnw(bw,"Invalid byte number"); + else msgnw(bw," 不合法的位元數"); return -1; } } @@ -525,7 +525,7 @@ int ubyte(bw) BW *bw; { - if(wmkpw(bw,"Go to byte (^C to abort): ",&bytehist,dobyte,NULL,NULL,NULL,NULL,NULL)) return 0; + if(wmkpw(bw,"跳到第幾位元 (^C 中斷): ",&bytehist,dobyte,NULL,NULL,NULL,NULL,NULL)) return 0; else return -1; } @@ -891,7 +891,7 @@ { quotestate=0; if(mkqwna(bw, - sc("Ctrl- (or 0-9 for dec. ascii, x for hex, or o for octal)"),doquote,NULL,NULL,NULL)) return 0; + sc("Ctrl- ( asci0-9 十進位, x 十六進位, o 八進位)"),doquote,NULL,NULL,NULL)) return 0; else return -1; } @@ -1011,7 +1011,7 @@ { pdupown(bw->cursor,bw->b->marks+c-'0'); poffline(bw->b->marks[c-'0']); - sprintf(msgbuf,"Mark %d set",c-'0'); + sprintf(msgbuf,"設定第 %d 標記",c-'0'); msgnw(bw,msgbuf); return 0; } @@ -1027,7 +1027,7 @@ { if(c>='0' && c<='9') return dosetmark(bw,c,NULL,NULL); else - if(mkqwna(bw,sc("Set mark (0-9):"),dosetmark,NULL,NULL,NULL)) return 0; + if(mkqwna(bw,sc("設定標記 (0-9):"),dosetmark,NULL,NULL,NULL)) return 0; else return -1; } @@ -1048,7 +1048,7 @@ } else { - sprintf(msgbuf,"Mark %d not set",c-'0'); + sprintf(msgbuf,"標記 %d 沒有設定完成",c-'0'); msgnw(bw,msgbuf); return -1; } @@ -1064,7 +1064,7 @@ { if(c>='0' && c<='9') return dogomark(bw,c,NULL,NULL); else - if(mkqwna(bw,sc("Goto bookmark (0-9):"),dogomark,NULL,NULL,NULL)) return 0; + if(mkqwna(bw,sc("跳到第幾書籤 (0-9):"),dogomark,NULL,NULL,NULL)) return 0; else return -1; } @@ -1090,7 +1090,7 @@ else { while((c=pgetc(q))!=MAXINT) if(c==k) break; } if(c==MAXINT) { - msgnw(bw,"Not found"); + msgnw(bw,"未發現"); prm(q); return -1; } @@ -1139,7 +1139,7 @@ int umsg(b) BASE *b; { - if(wmkpw(b,"Msg (^C to abort): ",NULL,domsg,NULL,NULL,NULL,NULL,NULL)) return 0; + if(wmkpw(b,"訊息 (^C 中斷): ",NULL,domsg,NULL,NULL,NULL,NULL,NULL)) return 0; else return -1; } @@ -1161,6 +1161,6 @@ int utxt(bw) BASE *bw; { - if(wmkpw(bw,"Insert (^C to abort): ",NULL,dotxt,NULL,NULL,utypebw,NULL,NULL)) return 0; + if(wmkpw(bw,"插入 (^C 中斷): ",NULL,dotxt,NULL,NULL,utypebw,NULL,NULL)) return 0; else return -1; } diff -ruN joe.orig/uerror.c joe/uerror.c --- joe.orig/uerror.c Sat Mar 10 06:28:32 2001 +++ joe/uerror.c Sat Mar 10 06:28:50 2001 @@ -175,7 +175,7 @@ { errbuf=bw->b; freeall(); - sprintf(msgbuf,"Parsed %ld lines",parserr(bw->b)); + sprintf(msgbuf,"顯示第 %ld 行",parserr(bw->b)); msgnw(bw,msgbuf); return 0; } @@ -186,7 +186,7 @@ int omid; if(errptr->link.next==&errors) { - msgnw(bw,"No more errors"); + msgnw(bw,"錯誤顯示完畢"); return -1; } errptr=errptr->link.next; @@ -211,7 +211,7 @@ int omid; if(errptr->link.prev==&errors) { - msgnw(bw,"No more errors"); + msgnw(bw,"錯誤顯示完畢"); return -1; } errptr=errptr->link.prev; diff -ruN joe.orig/ufile.c joe/ufile.c --- joe.orig/ufile.c Sat Mar 10 06:28:32 2001 +++ joe/ufile.c Sat Mar 10 06:28:51 2001 @@ -66,40 +66,40 @@ { char *s; if(bw->b->name && bw->b->name[0]) s=bw->b->name; - else s="(Unnamed)"; + else s="(未命名)"; if(name) if(saved) - sprintf(msgbuf,"File %s saved",name); + sprintf(msgbuf,"檔案: %s 存檔完畢.",name); else - sprintf(msgbuf,"File %s not saved",name); + sprintf(msgbuf,"檔案: %s 並未儲存.",name); else if(bw->b->changed && bw->b->count==1) - sprintf(msgbuf,"File %s not saved",s); + sprintf(msgbuf,"檔案: %s 存檔完畢.",s); else if(saved) - sprintf(msgbuf,"File %s saved",s); + sprintf(msgbuf,"檔案: %s 已經儲存.",s); else - sprintf(msgbuf,"File %s not changed so no update needed",s); + sprintf(msgbuf,"檔案 %s 並未改變所以不需要更新資料.",s); msgnw(bw,msgbuf); if(!exmsg) if(bw->b->changed && bw->b->count==1) { - exmsg=vsncpy(NULL,0,sc("File ")); + exmsg=vsncpy(NULL,0,sc("檔案: ")); exmsg=vsncpy(sv(exmsg),sz(s)); - exmsg=vsncpy(sv(exmsg),sc(" not saved.")); + exmsg=vsncpy(sv(exmsg),sc(" 並未儲存.")); } else if(saved) { - exmsg=vsncpy(NULL,0,sc("File ")); + exmsg=vsncpy(NULL,0,sc("檔案: ")); exmsg=vsncpy(sv(exmsg),sz(s)); - exmsg=vsncpy(sv(exmsg),sc(" saved.")); + exmsg=vsncpy(sv(exmsg),sc(" 存檔完畢.")); } else { - exmsg=vsncpy(NULL,0,sc("File ")); + exmsg=vsncpy(NULL,0,sc("檔案: ")); exmsg=vsncpy(sv(exmsg),sz(s)); - exmsg=vsncpy(sv(exmsg),sc(" not changed so no update needed.")); + exmsg=vsncpy(sv(exmsg),sc(" 並未改變所以不需要更新資料.")); } } @@ -113,7 +113,7 @@ (!square || piscol(markk)>piscol(markb))) { if(wmkpw(bw, - "Name of file to write (^C to abort): ",&filehist,dowrite,"Names",NULL,cmplt,NULL,NULL)) return 0; + "欲寫入的檔案名稱 (^C 中斷): ",&filehist,dowrite,"Names",NULL,cmplt,NULL,NULL)) return 0; else return -1; } else return usave(bw); @@ -255,12 +255,12 @@ vsrm(req->name); free(req); if(notify) *notify=1; - msgnw(bw,"Couldn't make backup file... file not saved"); + msgnw(bw,"無法產生備份檔 ... 檔案並未儲存."); if(callback) return callback(bw,-1); else return -1; } if(c!='y' && c!='Y') - if(mkqw(bw,sc("Could not make backup file. Save anyway (y,n,^C)? "),saver,NULL,req,notify)) + if(mkqw(bw,sc("無法產生備份檔. 無論如何都要儲存 (y,n,^C)? "),saver,NULL,req,notify)) return 0; else { @@ -321,7 +321,7 @@ return -1; } else - if(mkqw(bw,sc("File exists. Overwrite (y,n,^C)? "),dosave2,NULL,s,notify)) return 0; + if(mkqw(bw,sc("檔案已經存在. 覆蓋\過去 (y,n,^C)? "),dosave2,NULL,s,notify)) return 0; else return -1; } @@ -348,7 +348,7 @@ BW *bw; { BW *pbw=wmkpw(bw, - "Name of file to save (^C to abort): ",&filehist,dosave1,"Names",NULL,cmplt,NULL,NULL); + "欲儲存的檔案名稱 (^C 中斷): ",&filehist,dosave1,"Names",NULL,cmplt,NULL,NULL); if(pbw && bw->b->name) { binss(pbw->cursor,bw->b->name); @@ -375,7 +375,7 @@ if(notify) *notify=1; if(bw->pid) { - msgnw(bw,"Process running in this window"); + msgnw(bw,"視窗中有程式正在執行中"); return -1; } b=bfind(s); @@ -415,7 +415,7 @@ { if(bw->b->count==1 && bw->b->changed) { - msgnw(bw,"Can't replace modified file"); + msgnw(bw,"無法取代已更改過的檔案."); return -1; } else return 0; @@ -424,7 +424,7 @@ int uedit(bw) BW *bw; { - if(wmkpw(bw,"Name of file to edit (^C to abort): ",&filehist,doedit,"Names",NULL,cmplt,NULL,NULL)) return 0; + if(wmkpw(bw,"欲編輯的檔案名稱 (^C 中斷): ",&filehist,doedit,"Names",NULL,cmplt,NULL,NULL)) return 0; else return -1; } @@ -444,7 +444,7 @@ if(notify) *notify=1; if(bw->pid) { - msgnw(bw,"Process running in this window"); + msgnw(bw,"視窗中有程式正在執行中"); return -1; } b=bfind(s); @@ -478,7 +478,7 @@ B *b; if(bw->pid) { - msgnw(bw,"Process running in this window"); + msgnw(bw,"視窗中有程式正在執行中"); return -1; } b=bnext(); @@ -502,7 +502,7 @@ B *b; if(bw->pid) { - msgnw(bw,"Process running in this window"); + msgnw(bw,"視窗中有程式正在執行中"); return -1; } b=bprev(); @@ -522,7 +522,7 @@ BW *bw; { if(wmkpw(bw, - "Name of file to insert (^C to abort): ",&filehist,doinsf,"Names",NULL,cmplt,NULL,NULL)) return 0; + "欲插入的檔案名稱 (^C 中斷): ",&filehist,doinsf,"Names",NULL,cmplt,NULL,NULL)) return 0; else return -1; } @@ -581,7 +581,7 @@ else { BW *pbw=wmkpw(bw, - "Name of file to save (^C to abort): ",&filehist,doex,"Names",NULL,cmplt,NULL,NULL); + "欲儲存的檔案名稱 (^C 中斷): ",&filehist,doex,"Names",NULL,cmplt,NULL,NULL); if(pbw && bw->b->name) { binss(pbw->cursor,bw->b->name); @@ -605,7 +605,7 @@ else { BW *pbw=wmkpw(bw, - "Name of file to save (^C to abort): ",&filehist,dosave1,"Names",NULL,cmplt,object,notify); + "欲儲存的檔案名稱 (^C 中斷): ",&filehist,dosave1,"Names",NULL,cmplt,object,notify); if(pbw) return 0; else return -1; } @@ -618,7 +618,7 @@ else if(bw->b->count==1 && bw->b->changed) { - if(mkqw(bw,sc("Save changes to this file (y,n,^C)? "),nask,NULL,object,notify)) return 0; + if(mkqw(bw,sc("要儲存對這檔案的更改嗎 (y,n,^C)? "),nask,NULL,object,notify)) return 0; else return -1; } else @@ -644,7 +644,7 @@ if(c=='y' || c=='Y') { BW *pbw=wmkpw(bw, - "Name of file to save (^C to abort): ",&filehist,dosave1,"Names",NULL,cmplt,object,notify); + "欲儲存的檔案名稱 (^C 中斷): ",&filehist,dosave1,"Names",NULL,cmplt,object,notify); if(pbw) return 0; else return -1; } @@ -657,7 +657,7 @@ else if(bw->b->count==1 && bw->b->changed) { - if(mkqw(bw,sc("Save changes to this file (y,n,^C)? "),nask,NULL,object,notify)) return 0; + if(mkqw(bw,sc("要儲存對這檔案的更改嗎 (y,n,^C)? "),nask,NULL,object,notify)) return 0; else return -1; } else @@ -700,7 +700,7 @@ msgnw(bw,NULL); if(bw->pid) return ukillpid(bw); if(bw->b->count==1 && bw->b->changed) - if(mkqw(bw,sc("Lose changes to this file (y,n,^C)? "),dolose,NULL,NULL,NULL)) return 0; + if(mkqw(bw,sc("放棄對這檔案的更改嗎 (y,n,^C)? "),dolose,NULL,NULL,NULL)) return 0; else return -1; else return dolose(bw,'y',NULL,NULL); } diff -ruN joe.orig/uisrch.c joe/uisrch.c --- joe.orig/uisrch.c Sat Mar 10 06:28:32 2001 +++ joe/uisrch.c Sat Mar 10 06:28:51 2001 @@ -138,7 +138,7 @@ { struct isrch *isrch=(struct isrch *)malloc(sizeof(struct isrch)); izque(IREC,link,&isrch->irecs); - isrch->pattern=vsncpy(NULL,0,sc("I-find: ")); + isrch->pattern=vsncpy(NULL,0,sc("即時搜尋:")); isrch->ofst=sLen(isrch->pattern); isrch->dir=dir; isrch->quote=0; diff -ruN joe.orig/umath.c joe/umath.c --- joe.orig/umath.c Sat Mar 10 06:28:33 2001 +++ joe/umath.c Sat Mar 10 06:28:51 2001 @@ -13,7 +13,7 @@ void fperr() { - if(!merr) merr="Float point exception"; + if(!merr) merr="必須使用浮點數"; signal(SIGFPE,fperr); } @@ -67,7 +67,7 @@ ++ptr; x=expr(0,&v); if(*ptr==')') ++ptr; - else { if(!merr) merr="Missing )"; } + else { if(!merr) merr="找不到 )"; } } else if(*ptr=='-') { @@ -105,7 +105,7 @@ ++ptr; x=expr(2,&dumb); if(v) v->val=x, v->set=1; - else { if(!merr) merr="Left side of = is not an l-value"; } + else { if(!merr) merr="等號\"=\"左邊的值不是一個 L-value"; } goto loop; } *rtv=v; @@ -138,7 +138,7 @@ while(*ptr==' ' || *ptr=='\t') ++ptr; if(*ptr) goto up; } - else if(*ptr) merr="Extra junk after end of expr"; + else if(*ptr) merr="運算式後有額外無用的運算式"; } return result; } diff -ruN joe.orig/undo.c joe/undo.c --- joe.orig/undo.c Sat Mar 10 06:28:33 2001 +++ joe/undo.c Sat Mar 10 06:28:51 2001 @@ -465,7 +465,7 @@ BW *bw; { bw->b->changed=0; - msgnw(bw,"Modified flag cleared"); + msgnw(bw,"更改過的旗標已經清除"); return 0; } @@ -482,7 +482,7 @@ } else { - msgnw(bw,"No block"); + msgnw(bw,"沒有標示區塊"); return -1; } } diff -ruN joe.orig/usearch.c joe/usearch.c --- joe.orig/usearch.c Sat Mar 10 06:28:33 2001 +++ joe/usearch.c Sat Mar 10 06:28:51 2001 @@ -300,7 +300,7 @@ if(srch->replace) { if(wmkpw(bw, - "Replace with (^C to abort): ",&replhist,set_replace,srchstr,pfabort,utypebw,srch,notify)) + "更以什麼取代 (^C 中斷): ",&replhist,set_replace,srchstr,pfabort,utypebw,srch,notify)) return 0; else return -1; } @@ -316,7 +316,7 @@ BW *pbw; vsrm(srch->pattern); srch->pattern=s; if(pbw=wmkpw(bw, - "(I)gnore (R)eplace (B)ackwards Bloc(K) NNN (^C to abort): ", + "(I)忽略(R)取代(B)往前搜尋(K)搜尋區塊(N)符合字串(^C 中斷):", NULL,set_options,srchstr,pfabort,utypebw,srch,notify)) { char buf[10]; @@ -360,7 +360,7 @@ } srch=setmark(mksrch(NULL,NULL,0,back,-1,repl,0)); srch->addr=bw->cursor->byte; - if(wmkpw(bw,"Find (^C to abort): ",&findhist,set_pattern,srchstr,pfabort,utypebw,srch,NULL)) + if(wmkpw(bw,"找尋字串 (^C 中斷): ",&findhist,set_pattern,srchstr,pfabort,utypebw,srch,NULL)) return 0; else { @@ -394,7 +394,7 @@ SRCH *srch; { P *q; - if(bw->b->rdonly) { msgnw(bw,"Read only"); return -1; } + if(bw->b->rdonly) { msgnw(bw,"唯讀"); return -1; } if(markk) markk->end=1; if(srch->markk) srch->markk->end=1; q=pdup(bw->cursor); @@ -469,7 +469,7 @@ nungetc(c); return 0; } - if(mkqwnsr(bw,sc("Replace (Y)es (N)o (R)est (B)ackup (^C to abort)?"),dopfrepl,pfsave,srch,notify)) + if(mkqwnsr(bw,sc("取代 (Y)是 (N)否 (R)全部取代 (B)備份 (^C 中斷)?"),dopfrepl,pfsave,srch,notify)) return 0; else return pfsave(bw,srch); } @@ -582,8 +582,8 @@ bye: if(!srch->flg && !srch->rest) { if(srch->valid && srch->restrict) - msgnw(bw,"Not found (search restricted to marked block)"); - else msgnw(bw,"Not found"); + msgnw(bw,"未發現 (搜尋區域限定在選定區塊中)"); + else msgnw(bw,"未發現"); ret= -1; } break; diff -ruN joe.orig/ushell.c joe/ushell.c --- joe.orig/ushell.c Sat Mar 10 06:28:33 2001 +++ joe/ushell.c Sat Mar 10 06:28:51 2001 @@ -39,14 +39,14 @@ close(bw->out); bw->out= -1; if(piseof(bw->cursor)) { - binss(bw->cursor,"** Program finished **\n"); + binss(bw->cursor,"** 程式執行完畢 **\n"); peof(bw->cursor); bw->cursor->xcol=piscol(bw->cursor); } else { P *q=pdup(bw->b->eof); - binss(q,"** Program finished **\n"); + binss(q,"** 程式執行完畢 **\n"); prm(q); } } @@ -95,14 +95,14 @@ #ifdef __MSDOS__ if(notify) *notify=1; varm(s); - msgnw(bw,"Sorry, no sub-processes in DOS (yet)"); + msgnw(bw,"對不起! 並沒有其它的程式在 DOS 下執行"); return -1; #else MPX *m; if(notify) *notify=1; if(bw->pid && orphan) { - msgnw(bw,"Program already running in this window"); + msgnw(bw,"程式已經在這個視窗中執行"); varm(s); return -1; } @@ -115,7 +115,7 @@ if(!(m=mpxmk(&bw->out,name,s,cdata,bw,cdone,bw))) { varm(s); - msgnw(bw,"No ptys available"); + msgnw(bw,"沒有多餘的視窗可用"); return -1; } else bw->pid= m->pid; @@ -156,7 +156,7 @@ int urun(bw) BW *bw; { - if(wmkpw(bw,"Program to run: ",&runhist,dorun,"Run",NULL,NULL,NULL,NULL)) + if(wmkpw(bw,"欲執行的程式名稱: ",&runhist,dorun,"Run",NULL,NULL,NULL,NULL)) return 0; else return -1; } @@ -179,7 +179,7 @@ { if(bw->pid) { - if(mkqw(bw,sc("Kill program (y,n,^C)?"),pidabort,NULL,NULL,NULL)) return 0; + if(mkqw(bw,sc("中斷正在執行的程式 (y,n,^C)?"),pidabort,NULL,NULL,NULL)) return 0; else return -1; } else return 0; diff -ruN joe.orig/utag.c joe/utag.c --- joe.orig/utag.c Sat Mar 10 06:28:33 2001 +++ joe/utag.c Sat Mar 10 06:28:51 2001 @@ -49,7 +49,7 @@ f=fopen("tags","r"); if(!f) { - msgnw(bw,"Couldn't open tags file"); + msgnw(bw,"無法開啟標籤檔"); vsrm(s); vsrm(t); return -1; @@ -94,7 +94,7 @@ dofollows(); mid=omid; } - else msgnw(bw,"Invalid line number"); + else msgnw(bw,"不合法的行數"); } else { @@ -131,7 +131,7 @@ } } } - msgnw(bw,"Not found"); + msgnw(bw,"未發現"); vsrm(s); vsrm(t); fclose(f); @@ -144,7 +144,7 @@ BW *bw; { BW *pbw; - pbw=wmkpw(bw,"Tag search: ",&taghist,dotag,NULL,NULL,cmplt,NULL,NULL); + pbw=wmkpw(bw,"標籤搜尋: ",&taghist,dotag,NULL,NULL,cmplt,NULL,NULL); if(pbw && crest(brc(bw->cursor))) { P *p=pdup(bw->cursor); diff -ruN joe.orig/vfile.c joe/vfile.c --- joe.orig/vfile.c Sat Mar 10 06:28:33 2001 +++ joe/vfile.c Sat Mar 10 06:28:52 2001 @@ -202,7 +202,7 @@ pp->next=vp->next; goto gotit; } -write(2,"vfile: out of memory\n",21); +write(2,"vfile: 記憶體不足\n",21); exit(1); gotit: @@ -259,7 +259,7 @@ new->fd=open(name,O_RDWR); if(!new->fd) { - fprintf(stderr,"Couldn\'t open file \'%s\'\n",name); + fprintf(stderr,"無法開啟檔案 \'%s\'\n",name); free(new); return 0; }