荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjk (FAQ), 信区: InstallBBS
标 题: Re: 过滤彩色标题(转载)
发信站: 荔园晨风BBS站 (Thu Dec 13 12:44:06 2001), 转信
【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: Luther.bbs@apue.dhs.org (萧秋水), 信区: BBSMan_Dev
标 题: Re: 过滤彩色标题(转载)
发信站: APUE (Mon Dec 10 21:11:13 2001)
转信站: SMTH!zixia.net!APUE
转信站: APUE!zixia.net!Shanty
万一source超过 500 呢? xixi
我也写过一个类似函数:在count.c中有
/* ------------------------------------------------ */
/* Strip the ansi Code */
/* ------------------------------------------------ */
void
strip_ansi(src)
char *src;
{
register int ch, ansi;
char *dst;
dst = src;
ansi = 0;
for (;;)
{
ch = *src++;
if (ch == '\0' || ch == '\r' || ch == '\n')
break;
if (ch == 27)
{
ansi = 1;
}
else if (ansi)
{
if (!strchr("[01234567;", ch))
ansi = 0;
}
else
{
*dst++ = ch;
}
}
*dst = '\0';
}
※ 引述《flyriver@happynet.org (忧郁的飞流直下)》之铭言:
> receive_article.c 中加入一个函数 my_ansi_filter(),我把它从 FB2K 里面
> 抽出来的,稍微改了一下。
> void my_ansi_filter(char *source)
> {
> char result[500];
> int i, flag = 0, loc=0;
> int len;
> len = strlen(source);
> for ( i = 0 ; i < len ; i++ )
> {
> if ( source[i] == '\x1B' ) {
> flag = 1;
> continue;
> } else if ( flag == 1 && isalpha(source[i]) ) {
> flag = 0;
> continue;
> } else if ( flag == 1 ) {
> continue;
> } else {
> result[loc++]=source[i];
> }
> }
> result[loc]='\0';
> strncpy(source, result, loc+1);
> }
> 然后修改 post_article() 函数,在
> str_decode(conv_buf,SUBJECT);
> 之后,加入一句
> my_ansi_filter(conv_buf);
> 保存 receive_article.c 文件。然后重新编译和安装。
> 这样改动之后只是过滤文章列表的彩色标题,文章内容里面的没有过滤掉,
> 但已经不影响阅读了。
--
Userid: hightman
E-mail: hightman@x263.net
--
※ Origin: 笑 书 亭 <bbs.dot66.net>
◆ From: 10.14.61.157
--
※ 转载:·UNIX编程 apue.dhs.org·[FROM: 166.111.168.8]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店