diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-24 14:32:44 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-24 14:32:44 +0800 |
commit | 885543f75f49534141214c4adf9b9e6bdc8da1b2 (patch) | |
tree | 16c2b5736db424dbbc65c62066824202d57c549f /mbbsd/io.c | |
parent | 4be09ad0c2da18d07459b7067e40c5f7f61f9aca (diff) | |
download | pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar.gz pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar.bz2 pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar.lz pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar.xz pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.tar.zst pttbbs-885543f75f49534141214c4adf9b9e6bdc8da1b2.zip |
close victor.symbolic, open victor.screen
git-svn-id: http://opensvn.csie.org/pttbbs/branches/victor.screen@2018 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/io.c')
-rw-r--r-- | mbbsd/io.c | 36 |
1 files changed, 30 insertions, 6 deletions
@@ -1,14 +1,24 @@ /* $Id$ */ #include "bbs.h" -// XXX why linux use smaller buffer? -#if defined(linux) -#define OBUFSIZE 2048 -#define IBUFSIZE 128 -#else +/* + * Mechanism + * ========= + * 每次 output 的時候,會先寫到 output buffer。如果這時候 buffer 滿了、 + * 或是呼叫 oflush() 時, buffer 才會被寫出。 + * + * int ochar(char c) + * 寫一個 c 到 output buffer + * + * void output(char *s, int len) + * 寫一個長度為 len 的字串 s 到 output buffer + * + * void oflush(void) + * 把 buffer 寫出去 + */ + #define OBUFSIZE 4096 #define IBUFSIZE 256 -#endif static char outbuf[OBUFSIZE], inbuf[IBUFSIZE]; static int obufsize = 0, ibufsize = 0; @@ -19,6 +29,20 @@ static int icurrchar = 0; /* ----------------------------------------------------- */ #ifdef CONVERT +/* + * CONVERT + * ======= + * pttbbs 支援 Big5<->GB 與 Big5<->UTF-8 之間的 encoding 轉換。這個功能 + * 主要在 io.c 裡面達成。 + * + * io.c 裡面在處理 read 跟 write 時,用了 read_wrapper 跟 write_wrapper + * 這兩個 function pointer。一般情況下,也就是不轉換 encoding 時,是指到 + * read(2) 跟 write(2) 兩個 system call。否則會指到 convert.c 裡面定義的轉 + * 換函式。 + * + * convert.c 中定義了轉換的 interface,詳見 convert.c。 + */ + read_write_type write_type = (read_write_type)write; read_write_type read_type = read; |