Allow for cumulative -V flags.
authorceriel <none@none>
Fri, 10 Apr 1987 18:03:12 +0000 (18:03 +0000)
committerceriel <none@none>
Fri, 10 Apr 1987 18:03:12 +0000 (18:03 +0000)
util/ack/pc/em_pc.c

index 6b75a99..11a87ce 100644 (file)
@@ -31,7 +31,6 @@ int     toterr;
 int     parent;
 
 char    *eeflag;
-char    *vvflag = "-V";
 int    no_pemflag = 0 ;
 char    *pemflag[MAX_FLAG];
 char    *eflag;
@@ -146,7 +145,7 @@ char *flag(f) char *f; {
                wflag = f;
                break;
        case 'V':
-               vvflag = f;
+               initsizes(f+2);
                return(0);
        case '{':
                if ( no_pemflag>=MAX_FLAG ) {
@@ -169,11 +168,10 @@ char *flag(f) char *f; {
        return(0);
 }
 
-initsizes(f) FILE *f; {
+initsizes(vvflag) char *vvflag; {
        register c, i;
-       register char *p;
+       register char *p = vvflag;
 
-       p = vvflag + 2;
        while (c = *p++) {
                i = atoi(p);
                while (*p >= '0' && *p <= '9')
@@ -196,10 +194,6 @@ initsizes(f) FILE *f; {
            (sz_long != 4)) {
                fatal("bad V-flag %s",vvflag);
        }
-       if (sz_head == 0)
-               sz_head = 6*sz_word + 2*sz_addr;
-       for (i = 0; i <= sz_last; i++)
-               fprintf(f, "%d\n",sizes[i]);
 }
 
 /* ------------------ calling sequences -------------------- */
@@ -214,7 +208,10 @@ pem(p,q) char *p,*q; {
        d = tempfile('d');
        if ((erfil = fopen(d,"w")) == NULL)
                syserr(d);
-       initsizes(erfil);
+       if (sz_head == 0)
+               sz_head = 6*sz_word + 2*sz_addr;
+       for (i = 0; i <= sz_last; i++)
+               fprintf(erfil, "%d\n",sizes[i]);
        fprintf(erfil,"%s\n",basename(source));
        for ( i=0 ; i<no_pemflag ; i++ ) fprintf(erfil,"%s\n",pemflag[i]);
        fclose(erfil);