本文描述的修改在 FireBird 2.5 和 2.6 上均可使用.
修改代码由 snow 于 96 年 10月25日 在水木清华站开发并运行.
使用方法:在要显示的字符前加 % 和一位数字(1-7)即可
比如:
%1hi,all (回车)
就可以在聊天室中显示带颜色的 hi,all 了.
具体颜色号码是:%1红 %2绿 %3黄 %4蓝 %5品 %6青 %7白
使用 %0 可以恢复无彩色显示的缺省模式.
使用连续的 %% 可以输出 % 字符, 以便处理需要输出 % 并紧跟一个 1-7 的数字的情况.
============================================================================
代码修改:在 bbs_src/chat.c 的 printchatline 函数首部(原始代码前),
添加下列代码:
char tmpstr[256];
char *p;
int i;
/* snow add at 10.25 */
p = str;
i = 0;
while ( *p != 0 ) {
if (*p=='%') {
if ( *(p+1) == 0 ) {
tmpstr[i] = '%';
i++;
p++;
}
else if ( *(p+1) == '%' ) {
tmpstr[i] = '%';
i++;
p++;
p++;
}
else if ( *(p+1)>'0' && *(p+1)<='7' ) {
tmpstr[i++] = 27;
tmpstr[i++] = '[';
tmpstr[i++] = '3';
tmpstr[i++] = *(p+1);
tmpstr[i++] = 'm';
p++;
p++;
}
else if ( *(p+1) == '0' )
{
tmpstr[i++] = 27;
tmpstr[i++] = '[';
tmpstr[i++] = '0';
tmpstr[i++] = 'm';
p++;
p++;
}
else {
tmpstr[i] = '%';
i++;
p++;
tmpstr[i] = *p;
i++;
p++;
}
}
else {
tmpstr[i] = *p;
i++;
p++;
}
}
tmpstr[i++] = 27;
tmpstr[i++] = '[';
tmpstr[i++] = '0';
tmpstr[i++] = 'm';
tmpstr[i] = 0;
然后把原始代码中的
outs(str);
改成
outs(tmpstr); /* snow change at 10.25 */
--
修改:Leeward FROM bbs.huizhou.gd.
FROM bbs.huizhou.gd.