作者weiyu.bbs@weiyu.twbbs.org (Andy) 看板: plan
標題Re: 中文帳號
時間王者之家 (2005/06/28 Tue 11:42:49) Updated: 2005/06/28
這篇主要是把之前的patch整理一下
並把已經發現的問題做個修正
首先先手動建立 ~/usr/中文 這個目錄
(雖然這樣對中文的搜尋效率並不好,不過如果這樣的帳號不是很多的話應該還好)
% mkdir ~/usr/中文
: lib/f_path.c: usr_fpath()
#if 0
str_lower(buf, user); /* lower case */
#endif
/* Thor.981027: 防止 buffer overflow, 雖然 SunOS 4.1.x上無此情況, 以後再想好
的改法 */
str_ncpy(buf, user, sizeof(buf));
- str_lower(buf, buf);
+ str_lowest(buf, buf);
+ if (buf[0] & 0x80)
+ {
+ strcpy(fpath, "中文");
+ fpath += 4;
+ }
+ else
+ {
*fpath++ = *buf;
+ }
mak_fpath(fpath, buf, fname);
}
: maple/bbsd.c : is_badid()
: util/mailpost.c: is_badid()
- if (!is_alpha(*userid))
+ if (!((*userid) & 0x80) && !is_alpha(*userid))
return 1;
...
...
- if (!is_alnum(ch))
+ if (!((*userid) & 0x80) && !is_alnum(ch))
return 1;
--
不過程式有些地方還是寫 sprintf(fpath, "usr/%c/%s/xxxx", *userid, userid);
那麼就會出錯,要改為 usr_fpath(fpath, userid, "xxxx");
--
也許,人都會犯錯
但是真正值得注意的是
犯錯後表現的態度
如果有心去處理自己的錯誤
又何必害怕犯錯呢?
--
╭────╮ ╬ weiyu.csie.net ╬ ☆☆☆☆☆☆☆☆☆☆☆☆☆
│王者之家│ ╬ weiyu ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
╰────╯ ╬ 發表於 weiyu.weiyu.csie.net ☆☆☆☆☆☆☆