荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: zzt (好好学习,天天向上), 信区: BBSAdmin
标 题: [转载] 文章不可RE 功能(转寄)
发信站: BBS 荔园晨风站 (Wed Nov 24 13:38:31 1999), 转信
【 以下文字转载自 zzt 的信箱 】
【 原文由 zhuzutao.bbs@bbs.net.tsinghua.edu.cn 所发表 】
发信人: deardragon (【老农】快意灌水站210.38.248.1), 信区: BBSMan_Dev
标 题: 文章不可RE 功能
发信站: BBS 水木清华站 (Wed Nov 24 08:27:23 1999)
发信人: deardragon (老农), 信区: InstallBBS
标 题: 不可RE功能实现代码
发信站: 快意灌水站 (1999年11月23日 星期二 02:15PM), 转信
1. 在 bbs.h 中增加文件 不可RE属性标志.
#define FILE_NOREPLY 0x40 /* No Allow Replay */
2. 在 bbs.c 中增加设置不可 RE 操作功能对应的函数:
因为最初不可RE功能是从 SMTH 上得到的启示, 也是用下
划线标题表示一个不可RE文章. 故该功能操作取名 unerline_post(),
采用热键 '_' 做为文件属性的开关.
( 当然后来改变了标题的表现形式, 但没有必要再改变函数的名字了 )
/* Added by deardragon 1999.11.21 增加不可 RE 属性 */
int
underline_post(ent, fileinfo, direct)
int ent;
struct fileheader *fileinfo;
char *direct;
{
if (!chk_currBM(currBM)) {
return DONOTHING;
}
if (fileinfo->accessed[0] & FILE_NOREPLY)
{
fileinfo->accessed[0] &= ~FILE_NOREPLY;
} else {
fileinfo->accessed[0] |= FILE_NOREPLY;
}
substitute_record(direct, fileinfo, sizeof(*fileinfo), ent);
return PARTUPDATE;
}
/* Added End. */
3. 将热键和相应函数的定义加入 bbs.c 中.
找到如下类似的语句并修改:
struct one_key read_comms[] = {
'_', underline_post, /* 这行是添加的 不可RE 功能函数 */
'r', read_post,
'K', skip_post,
'u', skip_post,
4. 对不可 RE 文件的 RE 动作处理: 寻找 do_reply(fileinfo->title); .
在 bbs.c 中有两处: 把他改成:
/* Added by deardragon 1999.11.21 增加不可 RE 属性 */
{
if ( !( fileinfo->accessed[ 0 ] & FILE_NOREPLY) )
do_reply(fileinfo->title);
else {
move(3, 0);
clrtobot();
prints("\n\n 对不起, 该文章有不可 RE 属性, \
你不能回复(RE) 这篇文章. ");
pressreturn();
clear();
}
}
/* Added End. */
在 read.c 中有一处, 也把他修改为上述语句.
5. 最后就是把不可 RE 的文章标记起来. 使用户浏览时能看见其标志.
在 bbs.c 文件中增加一个变量
int noreply = 0; /* 把他设成全局也行,以后可能还可以用 */
找到函数 readdoent(num, ent) , 在其中加入一句话:
if ( ent->accessed[0] & FILE_NOREPLY ) noreply = 1;
else noreply = 0;
在该函数中, 进行板面文章的列表显示. 即如下面的显示:
==============
99 m deardragon Nov 16 ● [功能增加]使用 DENYPOST 权限
100 m deardragon Nov 18 ● 增加了两个权限
101 m deardragon Nov 18 ● 增加不可 RE 文属性
102 Lancy Nov 19 ● 我已经用了
103 Lancy Nov 19 ● 一按“R”就退出去了
104 Lancy Nov 19 ● 好
105 deardragon Nov 19 ● faint 在这里灌什么水
106 m deardragon Nov 21 ● 暂时不提供 INTERNET MAIL 服务
107 m deardragon Nov 22 ● 完善不可RE文属性及操作
> 108 m deardragon Nov 23 ● [转载] 提供不可 RE 板面功能
===============
现在就是要在语句中使上面的列表多一个信息项:
其中一个例子是:
if (FFLL == 0) {
if (!strncmp("Re:", ent->title, 3) || !strncmp("RE:", ent->t
itle
3)) {
sprintf(buf, " %4d %c %-12.12s %s%6.6s^[[m %s%-.48s
", n
m, type,
ent->owner, color, date, noreply?"^[[0;1;4;3
3mx^
[m":" ",TITLE);
黄色的部分是为增加标志而添加的代码.因为比较杂, 而且我的又改过的, 跟一般的
不太一样, 你们改的时候, 根据自己的代码添加上去就行. 在这一块里, 每个句子都要
改.
--
--
木棉 BBS 站 InstallBBS 在大家的支持与帮助下,已经开板了!
谢谢各位的大力支持!!! 欢迎各位朋友前去捧场切磋!!!//bow
快意灌水站(210.38.248.1)一如既往的欢迎各位光临!!!!!!
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: csdnt.gdpa.edu.]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.11]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店