荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjk (pq), 信区: InstallBBS
标 题: SMTH_007 聊天室中支持使用彩色文字
发信站: 荔园晨风BBS站 (Thu Nov 29 11:21:47 2001), 转信
【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@bbs.pku.edu.cn 所发表 】
发信人: Admin (新的一天从零开始), 信区: BBSDev
标 题: SMTH_007 聊天室中支持使用彩色文字
发信站: 北大未名站 (2001年05月24日11:24:59 星期四), 站内信件
发信人: Leeward (AIX), 信区: BBSMan_Dev
标 题: SMTH_007 聊天室中支持使用彩色文字
发信站: BBS 水木清华站 (Wed Feb 3 14:49:29 1999)
本文描述的修改在 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 於 Feb 8 02:58:56 修改本文·[FROM: bbs.huizhou.gd.]
--
目前正在搜集整理内存管理相关资料
欢迎提供
泛一叶轻舟,漂流海上,逍遥有过于斯乎?
※ 来源:·北大未名站 bbs.pku.edu.cn·[FROM: 162.105.203.8]
--
※ 转寄:·北大未名站 bbs.pku.edu.cn·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店