版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2004/03/20/000242.html
台湾"大选" 水木的版面在线人数远远超过SARS iraq造成的版面记录 Taiwan版面在线达到4200之多
水木在线人数也超过17000大关
环顾四方超过一万的名单 半个汉字的bug也被提出来 看了看代码
发信人: windtear (借尸还魂请勿打扰 ※ 永远不要相信网络), 信区: BBSMan_Dev 标 题: [smth] 上万人时用户昵称乱码bug 发信站: BBS 水木清华站 (Sat Mar 20 23:47:22 2004), 转信
环顾四方 上万的用户存在昵称乱码bug
-----> 产生原因: src/list.c
do_userlist 函数里面 329 行: move(y, 20); 然后打印昵称 339行: sprintf(user_info_str, " %4d%2s%s%-12.12s%s%s ", 人数达到10000后 %4d 的限定被超越 于是 user_info_str 多了一个空格覆盖了 昵称的第一个字母 造成乱码
----> 简单解决 (粗暴的改.#* 为.#* 没考虑9#的□) 不过别的地方也不会遇到这个问题 加一个判断会好些 要不好多人会不干的 呵呵
--- list.c.orig Mon Dec 29 03:38:22 2003 +++ list.c Sat Mar 20 23:14:42 2004 @@ -242,7 +242,7 @@ int padding_count; #define FROMSTR uentp.from #else - #define FRIENDSIG "." + #define FRIENDSIG "." #define FROMSTR "*" #endif
@@ -337,8 +337,8 @@ resetcolor(); move(y, x); sprintf(user_info_str, - " %4d%2s%s%-12.12s%s%s ", - i + 1 + page, (override) ? (uentp.invisible ? "#" : FRIENDSIG) : (uentp.invisible ? "*" : ""), + " %5d%1s%s%-12.12s%s%s ", + i + 1 + page, (override) ? (uentp.invisible ? "#" : FRIENDSIG) : (uentp.invisible ? "*" : ""), (override) ? "\033[1;32m" : "", uentp.userid, (override) ? "\033[m" : "", (override && showexplain) ? "\033[1;31m" : ""); prints("%s", user_info_str);
|
|