(sorry, I forgot to forward to debian-chinese... resending.) On Sun, Jun 11, 2000 at 07:21:00PM +0800, Wan Hing Wah wrote: > Hello, this is just a minor problem.... > I wanna know if I can send chinese message to other user on the > same machine using "write",it seem that the write will just display > some other letter for some chinese...
[EMAIL PROTECTED]@找到原因了。 /usr/bin/write 是非常之非常之非常之非常之不 8-bit clean。 可惡,竟然濾掉所有 8-bit 至 7-bit。想不到現在還有那麼多程式不 8-bit clean。 (竟然用 toascii()……太過份了!) ^_^ toascii 的 man page 說得是: Many people will be unhappy if you use this function. This function will convert accented letters into random characters. (You guessed it... I am more than unhappy! grrrrr....) [EMAIL PROTECTED]@Anyhow,我剛寄了個 bug report 給 bsdmainutils [EMAIL PROTECTED] [EMAIL PROTECTED] "apt-get source bsdmainutils" (要 potato/woody 裏 version 4.8 那個), 再加以下的 patch,所來個 "make write",就可以了。 ^_^ Thanks for reporting this problem! [EMAIL PROTECTED] 東東 -- Anthony Fok Tung-Ling Civil and Environmental Engineering [EMAIL PROTECTED], [EMAIL PROTECTED] University of Alberta, Canada Come visit Our Lady of Victory Camp -- http://www.olvc.ab.ca/
--- write.c~ Wed Jan 19 16:30:57 2000 +++ write.c Sun Jun 18 09:25:50 2000 @@ -394,19 +394,19 @@ * turns \n into \r\n */ wr_fputs(s) - register char *s; + register unsigned char *s; { - register char c; + register unsigned char c; static int binary_chars = 0; #define PUTC(c) if (putchar(c) == EOF) goto err; for (; *s != '\0'; ++s) { - c = toascii(*s); + c = *s; if (c == '\n') { PUTC('\r'); PUTC('\n'); - } else if (!isprint(c) && !isspace(c) && c != '\007') { + } else if (iscntrl(c) && (c != '\007')) { PUTC('^'); PUTC(c^0x40); /* DEL to ?, others to alpha */ if (binary_chars ++ > 256) goto binerr;