荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjksam (2 years), 信区: InstallBBS
标 题: [bug fix]修改文章后没修改痕迹
发信站: 荔园晨风BBS站 (Sat Aug 3 14:17:48 2002), 转信
在FB3.0中存在此bug
在edit.c 的write_file函数其中这几行:
if (abort[0] == 'l' || abort[0] == 'L' || local_article == 1) {
sprintf(genbuf, "local_article = %u", local_article);
report(genbuf);
local_article = 0;
if (aborted != -1)
aborted = 1;
}
以前一直都没问题,但是当我改成可以本站发表文章时,这个bug就出现了,
表现为本地修改文章时不会出现修改过的痕迹.
debug时发现在bbs.c中的add_edit_mark有问题
int
add_edit_mark(fname, mode, title)
char *fname;
int mode;
char *title;
{
FILE *fp, *out;
char buf[256];
time_t now;
char outname[STRLEN];
int step = 0, signature = 0;
int newtitle = 0; /* add by jjk Apr 12, 2002 */
if ((fp = fopen(fname, "r")) == NULL) //程序在这里就停了
return 0;
-------------------------------------------------------
发现fname里面的内容变成了"local_article = 1"
因为使用genbuf的地方实在太多,一个个查太麻烦了. 把genbuf这个全局变量改成局部就
行了。这个地方似乎没什么必要用genbuf,应该还有跟这个相似的bug, 懒得去查了.呵呵
-------------------------------------------------------
另外,bbs.c 的 edit_post 函数里面有这句话:
在这里的genbuf不知道什么时候给改掉了.
if (vedit(genbuf, NA) != -1) {
if (ADD_EDITMARK)
add_edit_mark(genbuf, 1, NULL);
}
--------------------------------------------------------
所以没什么必要最好不要用全局变量. 都是全局变量惹的祸 -_-!
--
╱▉ ____ ____ ● ● ╱▉ __▃_
╱__▉ ▉__ ▉ ▉ ▉ ╱__▉ ▉╱ ▉
__╱ ▉ __▉_▉___▉_▉___╱ ▉_▉ ▉_
─────────────────────────
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.234]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店