Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!CORNELLC.CCS.CORNELL.EDU.BITNET!ewilts%Ins.MRC.AdhocNet.CA%Stasis.MRC.AdhocNet.CA%UNCAEDU. From: ewilts%Ins.MRC.AdhocNet.CA%Stasis.MRC.AdhocNet.CA%UNCAEDU.@CORNELLC.CCS.CORNELL.EDU.BITNET (Ed Wilts) Newsgroups: comp.os.vms Subject: ARC_C.SHAR03_OF_19 Message-ID: <880624092323.023@Ins.MRC.AdhocNet.CA> Date: 24 Jun 88 15:23:21 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 233 $Part03: $ File_is="ARCCVT.C" $ Check_Sum_is=1752392383 $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY Xstatic char *RCSid = "$Header: arccvt.c,v 1.2 86/07/15 07:52:46 turner Exp $"; X X/* X * $Log:`009arccvt.c,v $ X * Hack-attack 1.3 86/12/20 01:23:45 wilhite@usceast.uucp X * `009Bludgeoned into submission for VAX 11/780 BSD4.2 X *`009(ugly code, but fewer core dumps) X * X * Revision 1.2 86/07/15 07:52:46 turner X * X * X * Revision 1.1 86/06/26 14:59:56 turner X * initial version X * X * X */ X X/* ARC - Archive utility - ARCCVT X X$define(tag,$$segment(@1,$$index(@1,=)+1))# X$define(version,Version $tag( XTED_VERSION DB =1.16), created on $tag( XTED_DATE DB =02/03/86) at $tag( XTED_TIME DB =22:53:02))# X$undefine(tag)# X $version X X(C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED X X By: Thom Henderson X X Description: X This file contains the routines used to convert archives to use X newer file storage methods. X X Language: X Computer Innovations Optimizing C86 X*/ X#include X#include "arc.h" X Xstatic char tempname[STRLEN]; /* temp file name */ X XINT cvtarc(num,arg) /* convert archive */ XINT num; /* number of arguments */ Xchar *arg[]; /* pointers to arguments */ X{ X struct heads hdr; /* file header */ X INT cvt; /* true to convert current file */ X INT did[MAXARG]; /* true when argument was used */ X INT n; /* index */ X char *makefnam(); /* filename fixer */ X FILE *fopen(); /* file opener */ X INT cvtfile(); X X if(arctemp) /* use temp area if specified */ X sprintf(tempname,"%s.CVT",arctemp); X else makefnam("$ARCTEMP.CVT",arcname,tempname); X X openarc(1); /* open archive for changes */ X X for(n=0; nname); fflush(stdout);} X X unpack(arc,tmp,hdr); /* unpack the entry */ X fseek(tmp,0L,0); /* reset temp for reading */ X starts = ftell(new); /* note where header goes */ X hdrver = ARCVER; /* anything but end marker */ X writehdr(hdr,new); /* write out header skeleton */ X pack(tmp,new,hdr); /* pack file into archive */ X fseek(new,starts,0); /* move back to header skeleton */ X writehdr(hdr,new); /* write out real header */ X fseek(new,hdr->size,1); /* skip over data to next header */ X fclose(tmp); /* all done with the file */ X if(unlink(tempname) && warn) X { printf("Cannot unsave %s\n",tempname); X nerrs++; X } X} X $ GoSub Convert_File $ File_is="ARCDEL.C" $ Check_Sum_is=1634934886 $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY Xstatic char *RCSid = "$Header: arcdel.c,v 1.2 86/07/15 07:52:53 turner Exp $"; X X/* X * $Log:`009arcdel.c,v $ X * Hack-attack 1.3 86/12/20 01:23:45 wilhite@usceast.uucp X * `009Bludgeoned into submission for VAX 11/780 BSD4.2 X *`009(ugly code, but fewer core dumps) X * X * Revision 1.2 86/07/15 07:52:53 turner X * X * X * Revision 1.1 86/06/26 15:00:04 turner X * initial version X * X * X */ X X/* ARC - Archive utility - ARCDEL X X$define(tag,$$segment(@1,$$index(@1,=)+1))# X$define(version,Version $tag( XTED_VERSION DB =2.09), created on $tag( XTED_DATE DB =02/03/86) at $tag( XTED_TIME DB =22:53:27))# X$undefine(tag)# X $version X X(C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED X X By: Thom Henderson X X Description: X This file contains the routines used to delete entries X in an archive. X X Language: X Computer Innovations Optimizing C86 X*/ X#include X#include "arc.h" X XINT delarc(num,arg) /* remove files from archive */ XINT num; /* number of arguments */ Xchar *arg[]; /* pointers to arguments */ X{ X struct heads hdr; /* header data */ X INT del; /* true to delete a file */ X INT did[MAXARG]; /* true when argument used */ X INT n; /* index */ X X if(!num) /* she must specify which */ X abort("You must tell me which files to delete!"); X X for(n=0; n