修正FireBird 2.X 删除文摘功能的BUG
一、在bbs.c里添加下面这段函数代码
int
cmpdigestfilename(digest_name,fhdr)
char *digest_name;
struct fileheader *fhdr ;
{
if(!strcmp(fhdr->filename,digest_name))
return 1 ;
return 0 ;
} /* comapare file names for dele_digest function. Luzi 99.3.30 */
二、然后用下面的代码替换掉原来bbs.c里的dele_digest函数
int
dele_digest(dname,direc) /* updated bye Luzi 99.3.30 */
char *dname;
char *direc;
{
char digest_name[STRLEN];
char new_dir[STRLEN];
char buf[STRLEN];
char *ptr;
struct fileheader fh;
int pos;
strncpy(digest_name,dname,STRLEN);
strcpy(new_dir,direc);
digest_name[0]='G';
ptr = strrchr(new_dir, '/') + 1;
strcpy(ptr, DIGEST_DIR);
strncpy(buf,currfile,STRLEN);
strncpy(currfile,digest_name,STRLEN);
pos=search_record(new_dir, &fh, sizeof(fh), cmpdigestfilename, digest_name);
if(pos<=0)
{
return;
}
delete_file(new_dir,sizeof(struct fileheader),pos,cmpfilename);
strncpy(currfile,buf,STRLEN);
*ptr='\0';
sprintf(buf,"%s%s",new_dir,digest_name);
unlink(buf);
return;
}
******************THE END
--
FROM ppp119.fhnet.cn