int main(int argc, char **argv) { char *cmd; char *archive; char **members; program = argv[0]; if ( argc >= 3 ) { cmd = argv[1]; archive = argv[2]; members = (argc == 3 ? NULL : argv+3); if ( strcmp(cmd, "l") == 0 ) return rcls(archive, members); else if ( strcmp(cmd, "x") == 0 ) return rcextract(archive, members); else if ( strcmp(cmd, "a") == 0 ) return rcadd(archive, members); else if ( strcmp(cmd, "d") == 0 ) return rcdel(archive, members); } usage(); return 1; }
nexterr(void) { char *p,*q; int num= 0; static char erfile[80]; if(errbuf == NULL) { msg("No more error !!"); errbuf= errmsg->fwd; return(NG); } locate(1,(ldup == 0)? lastdisplay+1: ldup+1); rcls(); vtputs(errbuf->buffer); strncpy(erfile,errbuf->buffer,79); erfile[79]= '\0'; if((p= strchr(erfile,'.')) == NULL) { msg("Illegal error file <illegal extention>\a[%s]",erfile); return(NG); } *p= '\0';num= strlen(erfile); *p= '.'; for(++p;isalpha(*p);++p) if(*p == '\0') return(NG); *p= '\0'; p= &errbuf->buffer[num]; num= 0; for( ;!isdigit(*p);++p) if(*p == '\0') return(NG); while(isdigit(*p)) { num *= 10; num += (*p - '0'); ++p; } p= errbuf->buffer; errbuf= errbuf->fwd; if(lng == ASM && strchr(p,'+') == NULL) return(OK); return(searchnum(num,erfile)); }