Skip to content
Snippets Groups Projects
Commit c6d29173 authored by rswindell's avatar rswindell
Browse files

FIXSMB now supports multiple message bases on the command-line, including

wildcards (e.g. "*.SHD").
parent 2e1cf3dc
No related branches found
No related tags found
No related merge requests found
...@@ -172,7 +172,7 @@ $(FIXSMB): fixsmb.c \ ...@@ -172,7 +172,7 @@ $(FIXSMB): fixsmb.c \
$(LIBODIR)\str_util.obj \ $(LIBODIR)\str_util.obj \
$(LIBODIR)\dirwrap.obj $(LIBODIR)\dirwrap.obj
@echo Creating $@ @echo Creating $@
$(QUIET)$(CC) $(CFLAGS) -n$(EXEODIR) $** $(QUIET)$(CC) $(CFLAGS) -n$(EXEODIR) $** $(WILDARGS)
# CHKSMB Utility # CHKSMB Utility
$(CHKSMB): chksmb.c \ $(CHKSMB): chksmb.c \
......
...@@ -42,7 +42,9 @@ ...@@ -42,7 +42,9 @@
#include "sbbs.h" #include "sbbs.h"
smb_t smb; smb_t smb;
BOOL renumber=FALSE;
char* usage="usage: fixsmb [-renumber] <smb_file> [[smb_file] [...]]\n";
int compare_index(const idxrec_t* idx1, const idxrec_t* idx2) int compare_index(const idxrec_t* idx1, const idxrec_t* idx2)
{ {
...@@ -88,45 +90,27 @@ void sort_index(smb_t* smb) ...@@ -88,45 +90,27 @@ void sort_index(smb_t* smb)
void unlock_msgbase(void) void unlock_msgbase(void)
{ {
int i; int i;
if((i=smb_unlock(&smb))!=0) if(smb_islocked(&smb) && (i=smb_unlock(&smb))!=0)
printf("smb_unlock returned %d: %s\n",i,smb.last_error); printf("smb_unlock returned %d: %s\n",i,smb.last_error);
} }
char *usage="usage: fixsmb [-renumber] <smb_file>\n"; int fixsmb(char* sub)
int main(int argc, char **argv)
{ {
char* p; char* p;
char* text; char* text;
char str[MAX_PATH+1],c; char str[MAX_PATH+1],c;
char revision[16];
int i,w; int i,w;
ulong l,length,size,n; ulong l,length,size,n;
BOOL renumber=FALSE;
smbmsg_t msg; smbmsg_t msg;
sscanf("$Revision$", "%*s %s", revision);
printf("\nFIXSMB v2.10-%s (rev %s) SMBLIB %s - Rebuild Synchronet Message Base\n\n"
,PLATFORM_DESC,revision,smb_lib_ver());
memset(&smb,0,sizeof(smb)); memset(&smb,0,sizeof(smb));
smb.file[0]=0; SAFECOPY(smb.file,sub);
for(i=1;i<argc;i++) {
if(!stricmp(argv[i],"-renumber"))
renumber=TRUE;
else
SAFECOPY(smb.file,argv[i]);
}
if((p=getfext(smb.file))!=NULL && stricmp(p,".shd")==0) if((p=getfext(smb.file))!=NULL && stricmp(p,".shd")==0)
*p=0; /* Chop off .shd extension, if supplied on command-line */ *p=0; /* Chop off .shd extension, if supplied on command-line */
if(!smb.file[0]) { printf("Opening %s\n",smb.file);
printf(usage);
exit(1);
}
if((i=smb_open(&smb))!=0) { if((i=smb_open(&smb))!=0) {
printf("smb_open returned %d: %s\n",i,smb.last_error); printf("smb_open returned %d: %s\n",i,smb.last_error);
...@@ -138,8 +122,6 @@ int main(int argc, char **argv) ...@@ -138,8 +122,6 @@ int main(int argc, char **argv)
exit(1); exit(1);
} }
atexit(unlock_msgbase);
if((i=smb_locksmbhdr(&smb))!=0) { if((i=smb_locksmbhdr(&smb))!=0) {
smb_close(&smb); smb_close(&smb);
printf("smb_locksmbhdr returned %d: %s\n",i,smb.last_error); printf("smb_locksmbhdr returned %d: %s\n",i,smb.last_error);
...@@ -289,6 +271,41 @@ int main(int argc, char **argv) ...@@ -289,6 +271,41 @@ int main(int argc, char **argv)
smb_unlocksmbhdr(&smb); smb_unlocksmbhdr(&smb);
printf("Closing message base.\n"); printf("Closing message base.\n");
smb_close(&smb); smb_close(&smb);
unlock_msgbase();
printf("Done.\n"); printf("Done.\n");
return(0); return(0);
} }
int main(int argc, char **argv)
{
char revision[16];
int i;
str_list_t list;
sscanf("$Revision$", "%*s %s", revision);
printf("\nFIXSMB v2.10-%s (rev %s) SMBLIB %s - Rebuild Synchronet Message Base\n\n"
,PLATFORM_DESC,revision,smb_lib_ver());
list=strListInit();
for(i=1;i<argc;i++) {
if(argv[i][0]=='-') {
if(!stricmp(argv[i],"-renumber"))
renumber=TRUE;
} else
strListPush(&list,argv[i]);
}
if(!strListCount(list)) {
printf(usage);
exit(1);
}
atexit(unlock_msgbase);
for(i=0;list[i]!=NULL;i++)
fixsmb(list[i]);
return(0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment