This is arcdel.c in view mode; [Download] [Up]
/* * $Header: arcdel.c,v 1.3 88/04/19 01:39:32 hyc Exp $ */ /* * ARC - Archive utility - ARCDEL * * Version 2.09, created on 02/03/86 at 22:53:27 * * (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED * * By: Thom Henderson * * Description: This file contains the routines used to delete entries in an * archive. * * Language: Computer Innovations Optimizing C86 */ #include <stdio.h> #include "arc.h" void abort(), rempath(), openarc(), closearc(), writehdr(), filecopy(); int match(), readhdr(); void delarc(num, arg) /* remove files from archive */ int num; /* number of arguments */ char *arg[]; /* pointers to arguments */ { struct heads hdr; /* header data */ int del; /* true to delete a file */ int did[MAXARG];/* true when argument used */ int n; /* index */ if (!num) /* she must specify which */ abort("You must tell me which files to delete!"); for (n = 0; n < num; n++) /* for each argument */ did[n] = 0; /* reset usage flag */ rempath(num, arg); /* strip off paths */ openarc(1); /* open archive for changes */ while (readhdr(&hdr, arc)) { /* while more entries in archive */ del = 0; /* reset delete flag */ for (n = 0; n < num; n++) { /* for each template given */ if (match(hdr.name, arg[n])) { del = 1; /* turn on delete flag */ did[n] = 1; /* turn on usage flag */ break; /* stop looking */ } } if (del) { /* skip over unwanted files */ fseek(arc, hdr.size, 1); if (note) printf("Deleting file: %s\n", hdr.name); } else { /* else copy over file data */ writehdr(&hdr, new); /* write out header and file */ filecopy(arc, new, hdr.size); } } hdrver = 0; /* special end of archive type */ writehdr(&hdr, new); /* write out archive end marker */ closearc(1); /* close archive after changes */ if (note) { for (n = 0; n < num; n++) { /* report unused arguments */ if (!did[n]) { printf("File not found: %s\n", arg[n]); nerrs++; } } } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.