这个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;
}
--
修改:jjksam FROM 202.96.144.222
FROM 202.96.144.222