move to debhelper compat 13, hopefully fixes cross-building
[debian/cpmtools] / cpmrm.c
1 /* #includes */ /*{{{C}}}*//*{{{*/
2 #include "config.h"
3
4 #include <ctype.h>
5 #include <errno.h>
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9
10 #include "getopt_.h"
11 #include "cpmfs.h"
12 /*}}}*/
13
14 const char cmd[]="cpmrm";
15
16 int main(int argc, char *argv[]) /*{{{*/
17 {
18   /* variables */ /*{{{*/
19   const char *err;
20   const char *image;
21   const char *format;
22   const char *devopts=NULL;
23   int uppercase=0;
24   int c,i,usage=0,exitcode=0;
25   struct cpmSuperBlock drive;
26   struct cpmInode root;
27   int gargc;
28   char **gargv;
29   /*}}}*/
30
31   /* parse options */ /*{{{*/
32   if (!(format=getenv("CPMTOOLSFMT"))) format=FORMAT;
33   while ((c=getopt(argc,argv,"T:f:uh?"))!=EOF) switch(c)
34   {
35     case 'T': devopts=optarg; break;
36     case 'f': format=optarg; break;
37     case 'u': uppercase=1; break;
38     case 'h':
39     case '?': usage=1; break;
40   }
41
42   if (optind>=(argc-1)) usage=1;
43   else image=argv[optind++];
44
45   if (usage)
46   {
47     fprintf(stderr,"Usage: %s [-f format] [-T dsktype] [-u] image pattern ...\n",cmd);
48     exit(1);
49   }
50   /*}}}*/
51   /* open image */ /*{{{*/
52   if ((err=Device_open(&drive.dev, image, O_RDWR, devopts)))
53   {
54     fprintf(stderr,"%s: cannot open %s (%s)\n",cmd,image,err);
55     exit(1);
56   }
57   if (cpmReadSuper(&drive,&root,format,uppercase)==-1)
58   {
59     fprintf(stderr,"%s: cannot read superblock (%s)\n",cmd,boo);
60     exit(1);
61   }
62   /*}}}*/
63   cpmglob(optind,argc,argv,&root,&gargc,&gargv);
64   for (i=0; i<gargc; ++i)
65   {
66     if (cpmUnlink(&root,gargv[i])==-1)
67     {
68       fprintf(stderr,"%s: can not erase %s: %s\n",cmd,gargv[i],boo);
69       exitcode=1;
70     }
71   }
72   cpmUmount(&drive);
73   exit(exitcode);
74 }
75 /*}}}*/