荔园在线

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

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


发信人: 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软件 网络书店