diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index d204d68a63a7cf0338341f4a931bf4d4fba725a8..6bd1b0bca2a8f21ed43d49473b72e70be93cef86 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -744,6 +744,7 @@ extern "C" { /* str.cpp */ DLLEXPORT char * DLLCALL ascii_str(uchar* str); DLLEXPORT ushort DLLCALL crc16(char *str); + DLLEXPORT BOOL DLLCALL findstr(scfg_t* cfg, char *insearch, char *fname); DLLEXPORT BOOL DLLCALL trashcan(scfg_t* cfg, char *insearch, char *name); DLLEXPORT int DLLCALL putsmsg(scfg_t* cfg, int usernumber, char *strin); diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index 4eb9865e1158f2af497840b4625fc83a65136ba6..7dad024daa67ca8309388c7149d542b043406176 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -735,11 +735,11 @@ void sbbs_t::dirinfo(uint dirnum) printfile(str,0); } + /****************************************************************************/ -/* Searches the file <name>.can in the TEXT directory for matches */ -/* Returns 1 if found in list, 0 if not. */ +/* Pattern matching string search of 'insearch' in 'fname'. */ /****************************************************************************/ -extern "C" BOOL DLLCALL trashcan(scfg_t* cfg, char* insearch, char* name) +extern "C" BOOL DLLCALL findstr(scfg_t* cfg, char* insearch, char* fname) { char* p; char str[128]; @@ -749,9 +749,7 @@ extern "C" BOOL DLLCALL trashcan(scfg_t* cfg, char* insearch, char* name) BOOL found; FILE* stream; - sprintf(str,"%s%s.can",cfg->text_dir,name); - - if((stream=fopen(str,"r"))==NULL) + if((stream=fopen(fname,"r"))==NULL) return(FALSE); sprintf(search,"%.*s",sizeof(search)-1,insearch); @@ -809,6 +807,23 @@ extern "C" BOOL DLLCALL trashcan(scfg_t* cfg, char* insearch, char* name) return(found); } +/****************************************************************************/ +/* Searches the file <name>.can in the TEXT directory for matches */ +/* Returns TRUE if found in list, FALSE if not. */ +/****************************************************************************/ +extern "C" BOOL DLLCALL trashcan(scfg_t* cfg, char* insearch, char* name) +{ + char fname[MAX_PATH+1]; + + sprintf(fname,"%s%s.can",cfg->text_dir,name); + return(findstr(cfg,insearch,fname)); +} + +/****************************************************************************/ +/* Searches the file <name>.can in the TEXT directory for matches */ +/* Returns TRUE if found in list, FALSE if not. */ +/* Displays bad<name>.can in text directory if found. */ +/****************************************************************************/ bool sbbs_t::trashcan(char *insearch, char *name) { char str[256];