荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (prepare for the future), 信区: InstallBBS
标  题: [bug]斑竹使用大D时系统记录不准确
发信站: 荔园晨风BBS站 (Fri Jan 11 09:42:50 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: jjksam (Linux,c/c++,java), 信区: BBSMan_Dev
标  题: [bug]斑竹使用大D时系统记录不准确
发信站: BBS 水木清华站 (Fri Jan 11 03:39:10 2002)

这个bug存在于FB2.66M,FBNT3W,FB20001219(其他的没时间去看)

在使用D时,如果斑竹输入的末篇文章编号大于版面的文章数,
这时系统记录的是末篇文章编号。这样就说明了记录不准确。
这样容易引起误会,容易让人误以为用了灌水机后用D删除文章。
解决方法如下:
其实就是在bbs.c 中del_range函数里面加一个判断.

先在bbs.c前面声明这个函数(这是在record.c里面的一个函数)
/* Modify by jjk at Jan 11,2002 防止版主使用大D时系统记录不准确 */
/* For record.c */
long get_num_records();
/* End Modify. */

在del_range函数里面加上如下内容

增加两个局部变量(add two more local variable)
/* Modify by jjk at Jan 11,2002 防止版主使用大D时系统记录不准确 */
char    currdirect[STRLEN];
int     numrecs;
/* End Modify */

if (askyn("确定删除", NA, NA) == YEA) {

/* Modify by jjk at Jan 11,2002 防止版主使用大D时系统记录不准确 */
     strcpy(currdirect, direct);
     numrecs=(int)get_num_records(currdirect, sizeof(struct fileheader));
     if(inum2>numrecs){
         inum2=numrecs;
     }
/* End Modify */

     delete_range(direct, inum1, inum2);
     fixkeep(direct, inum1, inum2);
     if (uinfo.mode == READING) {
          sprintf(genbuf, "Range delete %d-%d on %s", inum1, inum2,
currboard);

     } else {
          sprintf(genbuf, "Range delete %d-%d in mailbox", inum1, inum2);
     }
     securityreport(genbuf);
     return DIRCHANGED;
}
--
                 ____________________________________________
                |┏━━━━━━━━━━━━━━━━━━━━┓
                |┃ 欢迎光临荔园晨风 Linux 版,InstallBBS 版┃
                |┗━━━━━━━━━━━━━━━━━━━━┛
                 ﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋
                     welcome to http://www.linuxbyte.net


※ 修改:·jjksam 於 Jan 11 09:45:52 修改本文·[FROM:     210.39.3.50]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.96.144.222]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店