diff --git a/itstar.c b/itstar.c index 4b266af..99a3732 100644 --- a/itstar.c +++ b/itstar.c @@ -400,7 +400,7 @@ static void extfiles(int argc,char **argv) } /* skip a single file */ -static void skipfile() +void skipfile() { while (taperead() >= 0) ; @@ -446,7 +446,6 @@ static void extfile() sprintf(lname,"%s/%s.%s",lufd,lfn1,lfn2); /* combine */ if(symlink(lname,fname)<0) { /* create link */ perror(fname); - exit(1); } /* can't apply dates since target may not exist */ taperead(); /* read the EOF mark */ @@ -462,7 +461,7 @@ static void extfile() else u.actime=u.modtime; /* use creation date if not */ if(utime(fname,&u)<0) { perror("?Error setting file dates"); - exit(1); + taperead(); /* read the EOF mark */ } } } diff --git a/itstar.h b/itstar.h index 83b8a13..3842f1a 100644 --- a/itstar.h +++ b/itstar.h @@ -4,6 +4,7 @@ void save(char *f); void resetbuf(); void tapeflush(); int taperead(); +void skipfile(); void inword(long *l,long *r); void outword(register unsigned long l,register unsigned long r); int nextword(long *l,long *r); diff --git a/pack.c b/pack.c index d6482fc..1b3fed2 100644 --- a/pack.c +++ b/pack.c @@ -204,7 +204,8 @@ void pack(char *file) out=fopen(file,"wb"); /* create output file */ if(out==NULL) { perror(file); - exit(1); + skipfile(); + return; } if((remaining()==0)&&(taperead()<0)) {