回精華區
作者itoc, 信區: itoc
標題[功能] 簡體支援 (3) -- 以簡體中文輸出螢幕
時間04/12/17
作者: itoc (站上人數:802) 看板: plan
標題: [功能] 簡體支援 (3)
時間: 2004/12/17 Fri 18:06:19                           Updated: 2004/12/17

  雙色字時會出錯,不過這就算了 :p

: visio.c:prints()

- for (str = buf; cc = *str; str++)
+ for (str = trans2gb ? b52gb(buf) : buf; cc = *str; str++)
    outc(cc);

: visio.c:outs()

+ if (trans2gb)
+   str = b52gb(str);

  while (ch = *str)

: visio.c:outx()

+ if (trans2gb)     /* 如果是簡體就不 outx 了,省麻煩 */
+ {
+   outs(str);
+   return;
+ }

  while (ch = *str)

: window.c:draw_line()

  /* 印出 (x, y) 至 (x, y + strip_ansi_len(msg) - 1) */
- ptr = msg;
+ ptr = trans2gb ? b52gb(msg) : msg;

: post.c:hdr_outs()

+ if (trans2gb)
+ {
+   char tempid[IDLEN + 2];
+
+   str_ncpy(tempid, hdr->owner, sizeof(tempid));
+   if (mark = strchr(tempid, '@'))
+     *mark = '\0';
+   if (mark = strchr(tempid, '.'))
+     mark[1] = '\0';
+   prints("%-13.12s", tempid);
+ }
+ else
+ {
    mark = hdr->owner;
    len = IDLEN + 1;

    ...
    ...

    while (len--)
    {
      outc(' ');
    }
+ }

  ...
  ...

  /* --------------------------------------------------- */
  /* 印出標題                                            */
  /* --------------------------------------------------- */

+ if (trans2gb)
+ {
+#ifdef HAVE_DECLARE
+   square = 0;         /* 如果是簡體就不 Declaration 了,省麻煩 */
+#endif
+   prints(" %.*s", cc, title);
+ }
+ else
+ {
    mark = title + cc;
    cc = ' ';

    ...
    ...

    } while ((cc = *title++) && (title < mark));
+ }

--
□ 本文章由 itocitoc.Dorm11.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻