Annotation of coherent/g/usr/bin/pax/misc/patch3, revision 1.1.1.1

1.1       root        1: 
                      2: Index: port.c
                      3: *** /tmp/,RCSt1a17133  Sun Feb 12 14:08:42 1989
                      4: --- port.c     Sun Feb 12 14:02:30 1989
                      5: ***************
                      6: *** 1,6
                      7:   /* $Source: /src386/usr/bin/pax/patch3,v $
                      8:    *
                      9: !  * $Revision: 1.1 $
                     10:    *
                     11:    * port.c - These are routines not available in all environments. 
                     12:    *
                     13: 
                     14: --- 1,6 -----
                     15:   /* $Source: /src386/usr/bin/pax/patch3,v $
                     16:    *
                     17: !  * $Revision: 1.1 $
                     18:    *
                     19:    * port.c - These are routines not available in all environments. 
                     20:    *
                     21: ***************
                     22: *** 30,36
                     23:    *
                     24:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     25:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     26: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     27:    *
                     28:    * $Log:     patch3,v $
                     29: # Revision 1.1  92/08/28  08:02:40  bin
                     30: # Initial revision
                     31: # 
                     32:    * Revision 1.1  88/12/23  18:02:29  mark
                     33: 
                     34: --- 30,36 -----
                     35:    *
                     36:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     37:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     38: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     39:    *
                     40:    * $Log:     patch3,v $
                     41: # Revision 1.1  92/08/28  08:02:40  bin
                     42: # Initial revision
                     43: # 
                     44:    * Revision 1.2  89/02/12  10:05:35  mark
                     45: ***************
                     46: *** 33,38
                     47:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     48:    *
                     49:    * $Log:     patch3,v $
                     50: # Revision 1.1  92/08/28  08:02:40  bin
                     51: # Initial revision
                     52: # 
                     53:    * Revision 1.1  88/12/23  18:02:29  mark
                     54:    * Initial revision
                     55:    * 
                     56: 
                     57: --- 33,41 -----
                     58:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     59:    *
                     60:    * $Log:     patch3,v $
                     61: # Revision 1.1  92/08/28  08:02:40  bin
                     62: # Initial revision
                     63: # 
                     64: +  * Revision 1.2  89/02/12  10:05:35  mark
                     65: +  * 1.2 release fixes
                     66: +  * 
                     67:    * Revision 1.1  88/12/23  18:02:29  mark
                     68:    * Initial revision
                     69:    * 
                     70: ***************
                     71: *** 39,45
                     72:    */
                     73:   
                     74:   #ifndef lint
                     75: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                     76:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                     77:   #endif /* ! lint */
                     78:   
                     79: 
                     80: --- 42,48 -----
                     81:    */
                     82:   
                     83:   #ifndef lint
                     84: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                     85:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                     86:   #endif /* ! lint */
                     87:   
                     88: ***************
                     89: *** 55,62
                     90:    * the list in the #if !defined()'s below and it'll all be skipped. 
                     91:    */
                     92:   
                     93: ! #if !defined(mc300) && !defined(mc500) && !defined(mc700) && \
                     94: !     !defined(BSD)
                     95:   
                     96:   /* mkdir - make a directory
                     97:    *
                     98: 
                     99: --- 58,64 -----
                    100:    * the list in the #if !defined()'s below and it'll all be skipped. 
                    101:    */
                    102:   
                    103: ! #if !defined(mc300) && !defined(mc500) && !defined(mc700) && !defined(BSD)
                    104:   
                    105:   /* mkdir - make a directory
                    106:    *
                    107: Index: port.h
                    108: *** /tmp/,RCSt1a17138  Sun Feb 12 14:08:49 1989
                    109: --- port.h     Sun Feb 12 14:02:31 1989
                    110: ***************
                    111: *** 1,6
                    112:   /* $Source: /src386/usr/bin/pax/patch3,v $
                    113:    *
                    114: !  * $Revision: 1.1 $
                    115:    *
                    116:    * port.h - defnitions for portability library
                    117:    *
                    118: 
                    119: --- 1,6 -----
                    120:   /* $Source: /src386/usr/bin/pax/patch3,v $
                    121:    *
                    122: !  * $Revision: 1.1 $
                    123:    *
                    124:    * port.h - defnitions for portability library
                    125:    *
                    126: ***************
                    127: *** 30,36
                    128:    *
                    129:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                    130:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                    131: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                    132:    */
                    133:   
                    134:   #ifndef _PAX_PORT_H
                    135: 
                    136: --- 30,36 -----
                    137:    *
                    138:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                    139:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                    140: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                    141:    */
                    142:   
                    143:   #ifndef _PAX_PORT_H
                    144: Index: regexp.c
                    145: *** /tmp/,RCSt1a17143  Sun Feb 12 14:08:58 1989
                    146: --- regexp.c   Sun Feb 12 14:02:34 1989
                    147: ***************
                    148: *** 1,6
                    149:   /* $Source: /src386/usr/bin/pax/patch3,v $
                    150:    *
                    151: !  * $Revision: 1.1 $
                    152:    *
                    153:    * regexp.c - regular expression matching
                    154:    *
                    155: 
                    156: --- 1,6 -----
                    157:   /* $Source: /src386/usr/bin/pax/patch3,v $
                    158:    *
                    159: !  * $Revision: 1.1 $
                    160:    *
                    161:    * regexp.c - regular expression matching
                    162:    *
                    163: ***************
                    164: *** 43,48
                    165:    * Sponsored by The USENIX Association for public distribution. 
                    166:    *
                    167:    * $Log:     patch3,v $
                    168: # Revision 1.1  92/08/28  08:02:40  bin
                    169: # Initial revision
                    170: # 
                    171:    * Revision 1.1  88/12/23  18:02:32  mark
                    172:    * Initial revision
                    173:    * 
                    174: 
                    175: --- 43,51 -----
                    176:    * Sponsored by The USENIX Association for public distribution. 
                    177:    *
                    178:    * $Log:     patch3,v $
                    179: # Revision 1.1  92/08/28  08:02:40  bin
                    180: # Initial revision
                    181: # 
                    182: +  * Revision 1.2  89/02/12  10:05:39  mark
                    183: +  * 1.2 release fixes
                    184: +  * 
                    185:    * Revision 1.1  88/12/23  18:02:32  mark
                    186:    * Initial revision
                    187:    * 
                    188: ***************
                    189: *** 53,59
                    190:   #include "pax.h"
                    191:   
                    192:   #ifndef lint
                    193: ! static char    *Ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                    194:   #endif
                    195:   
                    196:   
                    197: 
                    198: --- 56,62 -----
                    199:   #include "pax.h"
                    200:   
                    201:   #ifndef lint
                    202: ! static char    *Ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                    203:   #endif
                    204:   
                    205:   
                    206: ***************
                    207: *** 224,230
                    208:       int             flags;
                    209:       extern char    *malloc();
                    210:   
                    211: !     if (exp == NULL)
                    212:        FAIL("NULL argument");
                    213:   
                    214:       /* First pass: determine size, legality. */
                    215: 
                    216: --- 227,233 -----
                    217:       int             flags;
                    218:       extern char    *malloc();
                    219:   
                    220: !     if (exp == (char *)NULL)
                    221:        FAIL("NULL argument");
                    222:   
                    223:       /* First pass: determine size, legality. */
                    224: ***************
                    225: *** 233,240
                    226:       regsize = 0L;
                    227:       regcode = &regdummy;
                    228:       regc(MAGIC);
                    229: !     if (reg(0, &flags) == NULL)
                    230: !      return (NULL);
                    231:   
                    232:       /* Small enough for pointer-storage convention? */
                    233:       if (regsize >= 32767L)   /* Probably could be 65535L. */
                    234: 
                    235: --- 236,243 -----
                    236:       regsize = 0L;
                    237:       regcode = &regdummy;
                    238:       regc(MAGIC);
                    239: !     if (reg(0, &flags) == (char *)NULL)
                    240: !      return ((regexp *)NULL);
                    241:   
                    242:       /* Small enough for pointer-storage convention? */
                    243:       if (regsize >= 32767L)   /* Probably could be 65535L. */
                    244: ***************
                    245: *** 242,248
                    246:   
                    247:       /* Allocate space. */
                    248:       r = (regexp *) malloc(sizeof(regexp) + (unsigned) regsize);
                    249: !     if (r == NULL)
                    250:        FAIL("out of space");
                    251:   
                    252:       /* Second pass: emit code. */
                    253: 
                    254: --- 245,251 -----
                    255:   
                    256:       /* Allocate space. */
                    257:       r = (regexp *) malloc(sizeof(regexp) + (unsigned) regsize);
                    258: !     if (r == (regexp *) NULL)
                    259:        FAIL("out of space");
                    260:   
                    261:       /* Second pass: emit code. */
                    262: ***************
                    263: *** 251,257
                    264:       regcode = r->program;
                    265:       regc(MAGIC);
                    266:       if (reg(0, &flags) == NULL)
                    267: !      return (NULL);
                    268:   
                    269:       /* Dig out information for optimizations. */
                    270:       r->regstart = '\0';              /* Worst-case defaults. */
                    271: 
                    272: --- 254,260 -----
                    273:       regcode = r->program;
                    274:       regc(MAGIC);
                    275:       if (reg(0, &flags) == NULL)
                    276: !      return ((regexp *) NULL);
                    277:   
                    278:       /* Dig out information for optimizations. */
                    279:       r->regstart = '\0';              /* Worst-case defaults. */
                    280: ***************
                    281: *** 320,326
                    282:        regnpar++;
                    283:        ret = regnode(OPEN + parno);
                    284:       } else
                    285: !      ret = NULL;
                    286:   
                    287:       /* Pick up the branches, linking them together. */
                    288:       br = regbranch(&flags);
                    289: 
                    290: --- 323,329 -----
                    291:        regnpar++;
                    292:        ret = regnode(OPEN + parno);
                    293:       } else
                    294: !      ret = (char *)NULL;
                    295:   
                    296:       /* Pick up the branches, linking them together. */
                    297:       br = regbranch(&flags);
                    298: ***************
                    299: *** 324,332
                    300:   
                    301:       /* Pick up the branches, linking them together. */
                    302:       br = regbranch(&flags);
                    303: !     if (br == NULL)
                    304: !      return (NULL);
                    305: !     if (ret != NULL)
                    306:        regtail(ret, br);       /* OPEN -> first. */
                    307:       else
                    308:        ret = br;
                    309: 
                    310: --- 327,335 -----
                    311:   
                    312:       /* Pick up the branches, linking them together. */
                    313:       br = regbranch(&flags);
                    314: !     if (br == (char *)NULL)
                    315: !      return ((char *)NULL);
                    316: !     if (ret != (char *)NULL)
                    317:        regtail(ret, br);       /* OPEN -> first. */
                    318:       else
                    319:        ret = br;
                    320: ***************
                    321: *** 336,343
                    322:       while (*regparse == '|') {
                    323:        regparse++;
                    324:        br = regbranch(&flags);
                    325: !      if (br == NULL)
                    326: !          return (NULL);
                    327:        regtail(ret, br);       /* BRANCH -> BRANCH. */
                    328:        if (!(flags & HASWIDTH))
                    329:            *flagp &= ~HASWIDTH;
                    330: 
                    331: --- 339,346 -----
                    332:       while (*regparse == '|') {
                    333:        regparse++;
                    334:        br = regbranch(&flags);
                    335: !      if (br == (char *)NULL)
                    336: !          return ((char *)NULL);
                    337:        regtail(ret, br);       /* BRANCH -> BRANCH. */
                    338:        if (!(flags & HASWIDTH))
                    339:            *flagp &= ~HASWIDTH;
                    340: ***************
                    341: *** 349,355
                    342:       regtail(ret, ender);
                    343:   
                    344:       /* Hook the tails of the branches to the closing node. */
                    345: !     for (br = ret; br != NULL; br = regnext(br))
                    346:        regoptail(br, ender);
                    347:   
                    348:       /* Check for proper termination. */
                    349: 
                    350: --- 352,358 -----
                    351:       regtail(ret, ender);
                    352:   
                    353:       /* Hook the tails of the branches to the closing node. */
                    354: !     for (br = ret; br != (char *)NULL; br = regnext(br))
                    355:        regoptail(br, ender);
                    356:   
                    357:       /* Check for proper termination. */
                    358: ***************
                    359: *** 381,387
                    360:       *flagp = WORST;          /* Tentatively. */
                    361:   
                    362:       ret = regnode(BRANCH);
                    363: !     chain = NULL;
                    364:       while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
                    365:        latest = regpiece(&flags);
                    366:        if (latest == NULL)
                    367: 
                    368: --- 384,390 -----
                    369:       *flagp = WORST;          /* Tentatively. */
                    370:   
                    371:       ret = regnode(BRANCH);
                    372: !     chain = (char *)NULL;
                    373:       while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
                    374:        latest = regpiece(&flags);
                    375:        if (latest == (char *)NULL)
                    376: ***************
                    377: *** 384,391
                    378:       chain = NULL;
                    379:       while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
                    380:        latest = regpiece(&flags);
                    381: !      if (latest == NULL)
                    382: !          return (NULL);
                    383:        *flagp |= flags & HASWIDTH;
                    384:        if (chain == NULL)      /* First piece. */
                    385:            *flagp |= flags & SPSTART;
                    386: 
                    387: --- 387,394 -----
                    388:       chain = (char *)NULL;
                    389:       while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
                    390:        latest = regpiece(&flags);
                    391: !      if (latest == (char *)NULL)
                    392: !          return ((char *)NULL);
                    393:        *flagp |= flags & HASWIDTH;
                    394:        if (chain == (char *)NULL)      /* First piece. */
                    395:            *flagp |= flags & SPSTART;
                    396: ***************
                    397: *** 387,393
                    398:        if (latest == NULL)
                    399:            return (NULL);
                    400:        *flagp |= flags & HASWIDTH;
                    401: !      if (chain == NULL)      /* First piece. */
                    402:            *flagp |= flags & SPSTART;
                    403:        else
                    404:            regtail(chain, latest);
                    405: 
                    406: --- 390,396 -----
                    407:        if (latest == (char *)NULL)
                    408:            return ((char *)NULL);
                    409:        *flagp |= flags & HASWIDTH;
                    410: !      if (chain == (char *)NULL)      /* First piece. */
                    411:            *flagp |= flags & SPSTART;
                    412:        else
                    413:            regtail(chain, latest);
                    414: ***************
                    415: *** 393,399
                    416:            regtail(chain, latest);
                    417:        chain = latest;
                    418:       }
                    419: !     if (chain == NULL)               /* Loop ran zero times. */
                    420:        regnode(NOTHING);
                    421:   
                    422:       return (ret);
                    423: 
                    424: --- 396,402 -----
                    425:            regtail(chain, latest);
                    426:        chain = latest;
                    427:       }
                    428: !     if (chain == (char *)NULL)               /* Loop ran zero times. */
                    429:        regnode(NOTHING);
                    430:   
                    431:       return (ret);
                    432: ***************
                    433: *** 416,423
                    434:       int             flags;
                    435:   
                    436:       ret = regatom(&flags);
                    437: !     if (ret == NULL)
                    438: !      return (NULL);
                    439:   
                    440:       op = *regparse;
                    441:       if (!ISMULT(op)) {
                    442: 
                    443: --- 419,426 -----
                    444:       int             flags;
                    445:   
                    446:       ret = regatom(&flags);
                    447: !     if (ret == (char *)NULL)
                    448: !      return ((char *)NULL);
                    449:   
                    450:       op = *regparse;
                    451:       if (!ISMULT(op)) {
                    452: ***************
                    453: *** 509,516
                    454:        break;
                    455:       case '(':
                    456:        ret = reg(1, &flags);
                    457: !      if (ret == NULL)
                    458: !          return (NULL);
                    459:        *flagp |= flags & (HASWIDTH | SPSTART);
                    460:        break;
                    461:       case '\0':
                    462: 
                    463: --- 512,519 -----
                    464:        break;
                    465:       case '(':
                    466:        ret = reg(1, &flags);
                    467: !      if (ret == (char *)NULL)
                    468: !          return ((char *)NULL);
                    469:        *flagp |= flags & (HASWIDTH | SPSTART);
                    470:        break;
                    471:       case '\0':
                    472: ***************
                    473: *** 638,644
                    474:       scan = p;
                    475:       for (;;) {
                    476:        temp = regnext(scan);
                    477: !      if (temp == NULL)
                    478:            break;
                    479:        scan = temp;
                    480:       }
                    481: 
                    482: --- 641,647 -----
                    483:       scan = p;
                    484:       for (;;) {
                    485:        temp = regnext(scan);
                    486: !      if (temp == (char *)NULL)
                    487:            break;
                    488:        scan = temp;
                    489:       }
                    490: ***************
                    491: *** 659,665
                    492:   char           *val;
                    493:   {
                    494:       /* "Operandless" and "op != BRANCH" are synonymous in practice. */
                    495: !     if (p == NULL || p == &regdummy || OP(p) != BRANCH)
                    496:        return;
                    497:       regtail(OPERAND(p), val);
                    498:   }
                    499: 
                    500: --- 662,668 -----
                    501:   char           *val;
                    502:   {
                    503:       /* "Operandless" and "op != BRANCH" are synonymous in practice. */
                    504: !     if (p == (char *)NULL || p == &regdummy || OP(p) != BRANCH)
                    505:        return;
                    506:       regtail(OPERAND(p), val);
                    507:   }
                    508: ***************
                    509: *** 699,705
                    510:       register char  *s;
                    511:   
                    512:       /* Be paranoid... */
                    513: !     if (prog == NULL || string == NULL) {
                    514:        regerror("NULL parameter");
                    515:        return (0);
                    516:       }
                    517: 
                    518: --- 702,708 -----
                    519:       register char  *s;
                    520:   
                    521:       /* Be paranoid... */
                    522: !     if (prog == (regexp *)NULL || string == (char *)NULL) {
                    523:        regerror("NULL parameter");
                    524:        return (0);
                    525:       }
                    526: ***************
                    527: *** 709,715
                    528:        return (0);
                    529:       }
                    530:       /* If there is a "must appear" string, look for it. */
                    531: !     if (prog->regmust != NULL) {
                    532:        s = string;
                    533:        while ((s = strchr(s, prog->regmust[0])) != NULL) {
                    534:            if (strncmp(s, prog->regmust, prog->regmlen) == 0)
                    535: 
                    536: --- 712,718 -----
                    537:        return (0);
                    538:       }
                    539:       /* If there is a "must appear" string, look for it. */
                    540: !     if (prog->regmust != (char *)NULL) {
                    541:        s = string;
                    542:        while ((s = strchr(s, prog->regmust[0])) != (char *)NULL) {
                    543:            if (strncmp(s, prog->regmust, prog->regmlen) == 0)
                    544: ***************
                    545: *** 711,717
                    546:       /* If there is a "must appear" string, look for it. */
                    547:       if (prog->regmust != NULL) {
                    548:        s = string;
                    549: !      while ((s = strchr(s, prog->regmust[0])) != NULL) {
                    550:            if (strncmp(s, prog->regmust, prog->regmlen) == 0)
                    551:                break;          /* Found it. */
                    552:            s++;
                    553: 
                    554: --- 714,720 -----
                    555:       /* If there is a "must appear" string, look for it. */
                    556:       if (prog->regmust != (char *)NULL) {
                    557:        s = string;
                    558: !      while ((s = strchr(s, prog->regmust[0])) != (char *)NULL) {
                    559:            if (strncmp(s, prog->regmust, prog->regmlen) == 0)
                    560:                break;          /* Found it. */
                    561:            s++;
                    562: ***************
                    563: *** 716,722
                    564:                break;          /* Found it. */
                    565:            s++;
                    566:        }
                    567: !      if (s == NULL)          /* Not present. */
                    568:            return (0);
                    569:       }
                    570:       /* Mark beginning of line for ^ . */
                    571: 
                    572: --- 719,725 -----
                    573:                break;          /* Found it. */
                    574:            s++;
                    575:        }
                    576: !      if (s == (char *)NULL)          /* Not present. */
                    577:            return (0);
                    578:       }
                    579:       /* Mark beginning of line for ^ . */
                    580: ***************
                    581: *** 730,736
                    582:       s = string;
                    583:       if (prog->regstart != '\0')
                    584:        /* We know what char it must start with. */
                    585: !      while ((s = strchr(s, prog->regstart)) != NULL) {
                    586:            if (regtry(prog, s))
                    587:                return (1);
                    588:            s++;
                    589: 
                    590: --- 733,739 -----
                    591:       s = string;
                    592:       if (prog->regstart != '\0')
                    593:        /* We know what char it must start with. */
                    594: !      while ((s = strchr(s, prog->regstart)) != (char *)NULL) {
                    595:            if (regtry(prog, s))
                    596:                return (1);
                    597:            s++;
                    598: ***************
                    599: *** 772,779
                    600:       sp = prog->startp;
                    601:       ep = prog->endp;
                    602:       for (i = NSUBEXP; i > 0; i--) {
                    603: !      *sp++ = NULL;
                    604: !      *ep++ = NULL;
                    605:       }
                    606:       if (regmatch(prog->program + 1)) {
                    607:        prog->startp[0] = string;
                    608: 
                    609: --- 775,782 -----
                    610:       sp = prog->startp;
                    611:       ep = prog->endp;
                    612:       for (i = NSUBEXP; i > 0; i--) {
                    613: !      *sp++ = (char *)NULL;
                    614: !      *ep++ = (char *)NULL;
                    615:       }
                    616:       if (regmatch(prog->program + 1)) {
                    617:        prog->startp[0] = string;
                    618: ***************
                    619: *** 809,815
                    620:   
                    621:       scan = prog;
                    622:   #ifdef DEBUG
                    623: !     if (scan != NULL && regnarrate)
                    624:        fprintf(stderr, "%s(\n", regprop(scan));
                    625:   #endif
                    626:       while (scan != NULL) {
                    627: 
                    628: --- 812,818 -----
                    629:   
                    630:       scan = prog;
                    631:   #ifdef DEBUG
                    632: !     if (scan != (char *)NULL && regnarrate)
                    633:        fprintf(stderr, "%s(\n", regprop(scan));
                    634:   #endif
                    635:       while (scan != (char *)NULL) {
                    636: ***************
                    637: *** 812,818
                    638:       if (scan != NULL && regnarrate)
                    639:        fprintf(stderr, "%s(\n", regprop(scan));
                    640:   #endif
                    641: !     while (scan != NULL) {
                    642:   #ifdef DEBUG
                    643:        if (regnarrate)
                    644:            fprintf(stderr, "%s...\n", regprop(scan));
                    645: 
                    646: --- 815,821 -----
                    647:       if (scan != (char *)NULL && regnarrate)
                    648:        fprintf(stderr, "%s(\n", regprop(scan));
                    649:   #endif
                    650: !     while (scan != (char *)NULL) {
                    651:   #ifdef DEBUG
                    652:        if (regnarrate)
                    653:            fprintf(stderr, "%s...\n", regprop(scan));
                    654: ***************
                    655: *** 848,854
                    656:            }
                    657:            break;
                    658:        case ANYOF:
                    659: !          if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) == NULL)
                    660:                return (0);
                    661:            reginput++;
                    662:            break;
                    663: 
                    664: --- 851,858 -----
                    665:            }
                    666:            break;
                    667:        case ANYOF:
                    668: !          if (*reginput == '\0' || 
                    669: !               strchr(OPERAND(scan), *reginput) == (char *)NULL)
                    670:                return (0);
                    671:            reginput++;
                    672:            break;
                    673: ***************
                    674: *** 853,859
                    675:            reginput++;
                    676:            break;
                    677:        case ANYBUT:
                    678: !          if (*reginput == '\0' || strchr(OPERAND(scan), *reginput) != NULL)
                    679:                return (0);
                    680:            reginput++;
                    681:            break;
                    682: 
                    683: --- 857,864 -----
                    684:            reginput++;
                    685:            break;
                    686:        case ANYBUT:
                    687: !          if (*reginput == '\0' || 
                    688: !               strchr(OPERAND(scan), *reginput) != (char *)NULL)
                    689:                return (0);
                    690:            reginput++;
                    691:            break;
                    692: ***************
                    693: *** 881,887
                    694:                     * Don't set startp if some later invocation of the same
                    695:                     * parentheses already has. 
                    696:                     */
                    697: !                  if (regstartp[no] == NULL)
                    698:                        regstartp[no] = save;
                    699:                    return (1);
                    700:                } else
                    701: 
                    702: --- 886,892 -----
                    703:                     * Don't set startp if some later invocation of the same
                    704:                     * parentheses already has. 
                    705:                     */
                    706: !                  if (regstartp[no] == (char *)NULL)
                    707:                        regstartp[no] = save;
                    708:                    return (1);
                    709:                } else
                    710: ***************
                    711: *** 908,914
                    712:                     * Don't set endp if some later invocation of the same
                    713:                     * parentheses already has. 
                    714:                     */
                    715: !                  if (regendp[no] == NULL)
                    716:                        regendp[no] = save;
                    717:                    return (1);
                    718:                } else
                    719: 
                    720: --- 913,919 -----
                    721:                     * Don't set endp if some later invocation of the same
                    722:                     * parentheses already has. 
                    723:                     */
                    724: !                  if (regendp[no] == (char *)NULL)
                    725:                        regendp[no] = save;
                    726:                    return (1);
                    727:                } else
                    728: ***************
                    729: *** 927,933
                    730:                            return (1);
                    731:                        reginput = save;
                    732:                        scan = regnext(scan);
                    733: !                  } while (scan != NULL && OP(scan) == BRANCH);
                    734:                    return (0);
                    735:                    /* NOTREACHED */
                    736:                }
                    737: 
                    738: --- 932,938 -----
                    739:                            return (1);
                    740:                        reginput = save;
                    741:                        scan = regnext(scan);
                    742: !                  } while (scan != (char *)NULL && OP(scan) == BRANCH);
                    743:                    return (0);
                    744:                    /* NOTREACHED */
                    745:                }
                    746: ***************
                    747: *** 937,943
                    748:                register char   nextch;
                    749:                register int    no;
                    750:                register char  *save;
                    751: !              register int    min;
                    752:   
                    753:                /*
                    754:                 * Lookahead to avoid useless match attempts when we know
                    755: 
                    756: --- 942,948 -----
                    757:                register char   nextch;
                    758:                register int    no;
                    759:                register char  *save;
                    760: !              register int    minimum;
                    761:   
                    762:                /*
                    763:                 * Lookahead to avoid useless match attempts when we know
                    764: ***************
                    765: *** 946,952
                    766:                nextch = '\0';
                    767:                if (OP(nxt) == EXACTLY)
                    768:                    nextch = *OPERAND(nxt);
                    769: !              min = (OP(scan) == STAR) ? 0 : 1;
                    770:                save = reginput;
                    771:                no = regrepeat(OPERAND(scan));
                    772:                while (no >= min) {
                    773: 
                    774: --- 951,957 -----
                    775:                nextch = '\0';
                    776:                if (OP(nxt) == EXACTLY)
                    777:                    nextch = *OPERAND(nxt);
                    778: !              minimum = (OP(scan) == STAR) ? 0 : 1;
                    779:                save = reginput;
                    780:                no = regrepeat(OPERAND(scan));
                    781:                while (no >= minimum) {
                    782: ***************
                    783: *** 949,955
                    784:                min = (OP(scan) == STAR) ? 0 : 1;
                    785:                save = reginput;
                    786:                no = regrepeat(OPERAND(scan));
                    787: !              while (no >= min) {
                    788:                    /* If it could work, try it. */
                    789:                    if (nextch == '\0' || *reginput == nextch)
                    790:                        if (regmatch(nxt))
                    791: 
                    792: --- 954,960 -----
                    793:                minimum = (OP(scan) == STAR) ? 0 : 1;
                    794:                save = reginput;
                    795:                no = regrepeat(OPERAND(scan));
                    796: !              while (no >= minimum) {
                    797:                    /* If it could work, try it. */
                    798:                    if (nextch == '\0' || *reginput == nextch)
                    799:                        if (regmatch(nxt))
                    800: ***************
                    801: *** 1013,1019
                    802:        }
                    803:        break;
                    804:       case ANYOF:
                    805: !      while (*scan != '\0' && strchr(opnd, *scan) != NULL) {
                    806:            count++;
                    807:            scan++;
                    808:        }
                    809: 
                    810: --- 1018,1024 -----
                    811:        }
                    812:        break;
                    813:       case ANYOF:
                    814: !      while (*scan != '\0' && strchr(opnd, *scan) != (char *)NULL) {
                    815:            count++;
                    816:            scan++;
                    817:        }
                    818: ***************
                    819: *** 1019,1025
                    820:        }
                    821:        break;
                    822:       case ANYBUT:
                    823: !      while (*scan != '\0' && strchr(opnd, *scan) == NULL) {
                    824:            count++;
                    825:            scan++;
                    826:        }
                    827: 
                    828: --- 1024,1030 -----
                    829:        }
                    830:        break;
                    831:       case ANYBUT:
                    832: !      while (*scan != '\0' && strchr(opnd, *scan) == (char *)NULL) {
                    833:            count++;
                    834:            scan++;
                    835:        }
                    836: ***************
                    837: *** 1052,1058
                    838:       register int    offset;
                    839:   
                    840:       if (p == &regdummy)
                    841: !      return (NULL);
                    842:   
                    843:       offset = NEXT(p);
                    844:       if (offset == 0)
                    845: 
                    846: --- 1057,1063 -----
                    847:       register int    offset;
                    848:   
                    849:       if (p == &regdummy)
                    850: !      return ((char *)NULL);
                    851:   
                    852:       offset = NEXT(p);
                    853:       if (offset == 0)
                    854: ***************
                    855: *** 1056,1062
                    856:   
                    857:       offset = NEXT(p);
                    858:       if (offset == 0)
                    859: !      return (NULL);
                    860:   
                    861:       if (OP(p) == BACK)
                    862:        return (p - offset);
                    863: 
                    864: --- 1061,1067 -----
                    865:   
                    866:       offset = NEXT(p);
                    867:       if (offset == 0)
                    868: !      return ((char *)NULL);
                    869:   
                    870:       if (OP(p) == BACK)
                    871:        return (p - offset);
                    872: ***************
                    873: *** 1093,1099
                    874:        op = OP(s);
                    875:        printf("%2d%s", s - r->program, regprop(s));    /* Where, what. */
                    876:        nxt = regnext(s);
                    877: !      if (nxt == NULL)        /* nxt ptr. */
                    878:            printf("(0)");
                    879:        else
                    880:            printf("(%d)", (s - r->program) + (nxt - s));
                    881: 
                    882: --- 1098,1104 -----
                    883:        op = OP(s);
                    884:        printf("%2d%s", s - r->program, regprop(s));    /* Where, what. */
                    885:        nxt = regnext(s);
                    886: !      if (nxt == (char *)NULL)        /* nxt ptr. */
                    887:            printf("(0)");
                    888:        else
                    889:            printf("(%d)", (s - r->program) + (nxt - s));
                    890: ***************
                    891: *** 1114,1120
                    892:        printf("start `%c' ", r->regstart);
                    893:       if (r->reganch)
                    894:        printf("anchored ");
                    895: !     if (r->regmust != NULL)
                    896:        printf("must have \"%s\"", r->regmust);
                    897:       printf("\n");
                    898:   }
                    899: 
                    900: --- 1119,1125 -----
                    901:        printf("start `%c' ", r->regstart);
                    902:       if (r->reganch)
                    903:        printf("anchored ");
                    904: !     if (r->regmust != (char *)NULL)
                    905:        printf("must have \"%s\"", r->regmust);
                    906:       printf("\n");
                    907:   }
                    908: ***************
                    909: *** 1179,1185
                    910:       case OPEN + 8:
                    911:       case OPEN + 9:
                    912:        sprintf(buf + strlen(buf), "OPEN%d", OP(op) - OPEN);
                    913: !      p = NULL;
                    914:        break;
                    915:       case CLOSE + 1:
                    916:       case CLOSE + 2:
                    917: 
                    918: --- 1184,1190 -----
                    919:       case OPEN + 8:
                    920:       case OPEN + 9:
                    921:        sprintf(buf + strlen(buf), "OPEN%d", OP(op) - OPEN);
                    922: !      p = (char *)NULL;
                    923:        break;
                    924:       case CLOSE + 1:
                    925:       case CLOSE + 2:
                    926: ***************
                    927: *** 1191,1197
                    928:       case CLOSE + 8:
                    929:       case CLOSE + 9:
                    930:        sprintf(buf + strlen(buf), "CLOSE%d", OP(op) - CLOSE);
                    931: !      p = NULL;
                    932:        break;
                    933:       case STAR:
                    934:        p = "STAR";
                    935: 
                    936: --- 1196,1202 -----
                    937:       case CLOSE + 8:
                    938:       case CLOSE + 9:
                    939:        sprintf(buf + strlen(buf), "CLOSE%d", OP(op) - CLOSE);
                    940: !      p = (char *)NULL;
                    941:        break;
                    942:       case STAR:
                    943:        p = "STAR";
                    944: ***************
                    945: *** 1200,1206
                    946:        regerror("corrupted opcode");
                    947:        break;
                    948:       }
                    949: !     if (p != NULL)
                    950:        strcat(buf, p);
                    951:       return (buf);
                    952:   }
                    953: 
                    954: --- 1205,1211 -----
                    955:        regerror("corrupted opcode");
                    956:        break;
                    957:       }
                    958: !     if (p != (char *)NULL)
                    959:        strcat(buf, p);
                    960:       return (buf);
                    961:   }
                    962: ***************
                    963: *** 1269,1275
                    964:       register int    len;
                    965:       extern char    *strncpy();
                    966:   
                    967: !     if (prog == NULL || source == NULL || dest == NULL) {
                    968:        regerror("NULL parm to regsub");
                    969:        return;
                    970:       }
                    971: 
                    972: --- 1274,1281 -----
                    973:       register int    len;
                    974:       extern char    *strncpy();
                    975:   
                    976: !     if (prog == (regexp *)NULL || 
                    977: !      source == (char *)NULL || dest == (char *)NULL) {
                    978:        regerror("NULL parm to regsub");
                    979:        return;
                    980:       }
                    981: ***************
                    982: *** 1291,1297
                    983:            if (c == '\\' && (*src == '\\' || *src == '&'))
                    984:                c = *src++;
                    985:            *dst++ = c;
                    986: !      } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
                    987:            len = prog->endp[no] - prog->startp[no];
                    988:            strncpy(dst, prog->startp[no], len);
                    989:            dst += len;
                    990: 
                    991: --- 1297,1304 -----
                    992:            if (c == '\\' && (*src == '\\' || *src == '&'))
                    993:                c = *src++;
                    994:            *dst++ = c;
                    995: !      } else if (prog->startp[no] != (char *)NULL && 
                    996: !                 prog->endp[no] != (char *)NULL) {
                    997:            len = prog->endp[no] - prog->startp[no];
                    998:            strncpy(dst, prog->startp[no], len);
                    999:            dst += len;
                   1000: Index: replace.c
                   1001: *** /tmp/,RCSt1a17153  Sun Feb 12 14:09:24 1989
                   1002: --- replace.c  Sun Feb 12 14:02:36 1989
                   1003: ***************
                   1004: *** 1,6
                   1005:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1006:    *
                   1007: !  * $Revision: 1.1 $
                   1008:    *
                   1009:    * replace.c - regular expression pattern replacement functions
                   1010:    *
                   1011: 
                   1012: --- 1,6 -----
                   1013:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1014:    *
                   1015: !  * $Revision: 1.1 $
                   1016:    *
                   1017:    * replace.c - regular expression pattern replacement functions
                   1018:    *
                   1019: ***************
                   1020: *** 27,33
                   1021:    *
                   1022:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1023:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1024: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1025:    *
                   1026:    * $Log:     patch3,v $
                   1027: # Revision 1.1  92/08/28  08:02:40  bin
                   1028: # Initial revision
                   1029: # 
                   1030:    * Revision 1.1  88/12/23  18:02:36  mark
                   1031: 
                   1032: --- 27,33 -----
                   1033:    *
                   1034:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1035:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1036: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1037:    *
                   1038:    * $Log:     patch3,v $
                   1039: # Revision 1.1  92/08/28  08:02:40  bin
                   1040: # Initial revision
                   1041: # 
                   1042:    * Revision 1.2  89/02/12  10:05:59  mark
                   1043: ***************
                   1044: *** 30,35
                   1045:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1046:    *
                   1047:    * $Log:     patch3,v $
                   1048: # Revision 1.1  92/08/28  08:02:40  bin
                   1049: # Initial revision
                   1050: # 
                   1051:    * Revision 1.1  88/12/23  18:02:36  mark
                   1052:    * Initial revision
                   1053:    * 
                   1054: 
                   1055: --- 30,38 -----
                   1056:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1057:    *
                   1058:    * $Log:     patch3,v $
                   1059: # Revision 1.1  92/08/28  08:02:40  bin
                   1060: # Initial revision
                   1061: # 
                   1062: +  * Revision 1.2  89/02/12  10:05:59  mark
                   1063: +  * 1.2 release fixes
                   1064: +  * 
                   1065:    * Revision 1.1  88/12/23  18:02:36  mark
                   1066:    * Initial revision
                   1067:    * 
                   1068: ***************
                   1069: *** 36,42
                   1070:    */
                   1071:   
                   1072:   #ifndef lint
                   1073: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1074:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1075:   #endif /* not lint */
                   1076:   
                   1077: 
                   1078: --- 39,45 -----
                   1079:    */
                   1080:   
                   1081:   #ifndef lint
                   1082: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1083:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1084:   #endif /* not lint */
                   1085:   
                   1086: ***************
                   1087: *** 78,84
                   1088:                 "Malformed substitution syntax");
                   1089:        return;
                   1090:       }
                   1091: !     if ((rptr = (Replstr *) malloc(sizeof(Replstr))) == NULL) {
                   1092:        warn("Replacement string not added", "No space");
                   1093:        return;
                   1094:       }
                   1095: 
                   1096: --- 81,87 -----
                   1097:                 "Malformed substitution syntax");
                   1098:        return;
                   1099:       }
                   1100: !     if ((rptr = (Replstr *) malloc(sizeof(Replstr))) == (Replstr *)NULL) {
                   1101:        warn("Replacement string not added", "No space");
                   1102:        return;
                   1103:       }
                   1104: ***************
                   1105: *** 130,136
                   1106:        * Now pattern points to 'old' and p points to 'new' and both are '\0'
                   1107:        * terminated 
                   1108:        */
                   1109: !     if ((rptr->comp = regcomp(pattern)) == NULL) {
                   1110:        warn("Replacement string not added", "Invalid RE");
                   1111:        free(rptr);
                   1112:        return;
                   1113: 
                   1114: --- 133,139 -----
                   1115:        * Now pattern points to 'old' and p points to 'new' and both are '\0'
                   1116:        * terminated 
                   1117:        */
                   1118: !     if ((rptr->comp = regcomp(pattern)) == (regexp *)NULL) {
                   1119:        warn("Replacement string not added", "Invalid RE");
                   1120:        free(rptr);
                   1121:        return;
                   1122: ***************
                   1123: *** 136,143
                   1124:        return;
                   1125:       }
                   1126:       rptr->replace = p;
                   1127: !     rptr->next = NULL;
                   1128: !     if (rplhead == NULL) {
                   1129:        rplhead = rptr;
                   1130:        rpltail = rptr;
                   1131:       } else {
                   1132: 
                   1133: --- 139,146 -----
                   1134:        return;
                   1135:       }
                   1136:       rptr->replace = p;
                   1137: !     rptr->next = (Replstr *)NULL;
                   1138: !     if (rplhead == (Replstr *)NULL) {
                   1139:        rplhead = rptr;
                   1140:        rpltail = rptr;
                   1141:       } else {
                   1142: ***************
                   1143: *** 182,188
                   1144:       char           *b;
                   1145:   
                   1146:       strcpy(buff, name);
                   1147: !     for (rptr = rplhead; !found && rptr != NULL; rptr = rptr->next) {
                   1148:        do {
                   1149:            if ((ret = regexec(rptr->comp, buff)) != 0) {
                   1150:                p = buff;
                   1151: 
                   1152: --- 185,191 -----
                   1153:       char           *b;
                   1154:   
                   1155:       strcpy(buff, name);
                   1156: !     for (rptr = rplhead; !found && rptr != (Replstr *)NULL; rptr = rptr->next) {
                   1157:        do {
                   1158:            if ((ret = regexec(rptr->comp, buff)) != 0) {
                   1159:                p = buff;
                   1160: Index: tar.1
                   1161: *** /tmp/,RCSt1a17158  Sun Feb 12 14:09:31 1989
                   1162: --- tar.1      Sun Feb 12 14:02:37 1989
                   1163: ***************
                   1164: *** 1,4
                   1165: ! .\" $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   1166:   .TH TAR 1 "USENIX Association" ""
                   1167:   .SH NAME
                   1168:   tar \- process tape archives
                   1169: 
                   1170: --- 1,4 -----
                   1171: ! .\" $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   1172:   .TH TAR 1 "USENIX Association" ""
                   1173:   .SH NAME
                   1174:   tar \- process tape archives
                   1175: ***************
                   1176: *** 178,184
                   1177:   .PP
                   1178:   THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1179:   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1180: ! WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1181:   .SH AUTHOR
                   1182:   Mark H. Colburn
                   1183:   .br
                   1184: 
                   1185: --- 178,184 -----
                   1186:   .PP
                   1187:   THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1188:   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1189: ! WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1190:   .SH AUTHOR
                   1191:   Mark H. Colburn
                   1192:   .br
                   1193: Index: tar.c
                   1194: *** /tmp/,RCSt1a17163  Sun Feb 12 14:09:37 1989
                   1195: --- tar.c      Sun Feb 12 14:02:38 1989
                   1196: ***************
                   1197: *** 1,6
                   1198:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1199:    *
                   1200: !  * $Revision: 1.1 $
                   1201:    *
                   1202:    * tar.c - tar specific functions for archive handling
                   1203:    *
                   1204: 
                   1205: --- 1,6 -----
                   1206:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1207:    *
                   1208: !  * $Revision: 1.1 $
                   1209:    *
                   1210:    * tar.c - tar specific functions for archive handling
                   1211:    *
                   1212: ***************
                   1213: *** 27,33
                   1214:    *
                   1215:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1216:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1217: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1218:    *
                   1219:    * $Log:     patch3,v $
                   1220: # Revision 1.1  92/08/28  08:02:40  bin
                   1221: # Initial revision
                   1222: # 
                   1223:    * Revision 1.1  88/12/23  18:02:38  mark
                   1224: 
                   1225: --- 27,33 -----
                   1226:    *
                   1227:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1228:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1229: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1230:    *
                   1231:    * $Log:     patch3,v $
                   1232: # Revision 1.1  92/08/28  08:02:40  bin
                   1233: # Initial revision
                   1234: # 
                   1235:    * Revision 1.2  89/02/12  10:06:05  mark
                   1236: ***************
                   1237: *** 30,35
                   1238:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1239:    *
                   1240:    * $Log:     patch3,v $
                   1241: # Revision 1.1  92/08/28  08:02:40  bin
                   1242: # Initial revision
                   1243: # 
                   1244:    * Revision 1.1  88/12/23  18:02:38  mark
                   1245:    * Initial revision
                   1246:    * 
                   1247: 
                   1248: --- 30,38 -----
                   1249:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1250:    *
                   1251:    * $Log:     patch3,v $
                   1252: # Revision 1.1  92/08/28  08:02:40  bin
                   1253: # Initial revision
                   1254: # 
                   1255: +  * Revision 1.2  89/02/12  10:06:05  mark
                   1256: +  * 1.2 release fixes
                   1257: +  * 
                   1258:    * Revision 1.1  88/12/23  18:02:38  mark
                   1259:    * Initial revision
                   1260:    * 
                   1261: ***************
                   1262: *** 36,42
                   1263:    */
                   1264:   
                   1265:   #ifndef lint
                   1266: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1267:   static char *copyright ="Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.";
                   1268:   #endif /* not lint */
                   1269:   
                   1270: 
                   1271: --- 39,45 -----
                   1272:    */
                   1273:   
                   1274:   #ifndef lint
                   1275: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1276:   static char *copyright ="Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.";
                   1277:   #endif /* not lint */
                   1278:   
                   1279: ***************
                   1280: *** 109,116
                   1281:        * of the tar and/or cpio interfaces...
                   1282:        */
                   1283:       f_unconditional = 1;
                   1284: !     f_modification_time = 1;
                   1285: !     f_create_dirs = 1;
                   1286:       blocking = 0;
                   1287:       ar_interface = TAR;
                   1288:       ar_format = TAR;
                   1289: 
                   1290: --- 112,119 -----
                   1291:        * of the tar and/or cpio interfaces...
                   1292:        */
                   1293:       f_unconditional = 1;
                   1294: !     f_mtime = 1;
                   1295: !     f_dir_create = 1;
                   1296:       blocking = 0;
                   1297:       ar_interface = TAR;
                   1298:       ar_format = TAR;
                   1299: ***************
                   1300: *** 114,120
                   1301:       blocking = 0;
                   1302:       ar_interface = TAR;
                   1303:       ar_format = TAR;
                   1304: !     msgfile=stdout;
                   1305:   
                   1306:       /* Parse options */
                   1307:       while ((c = taropt(argc, argv, "b:cf:hlmortuvwx")) != EOF) {
                   1308: 
                   1309: --- 117,123 -----
                   1310:       blocking = 0;
                   1311:       ar_interface = TAR;
                   1312:       ar_format = TAR;
                   1313: !     msgfile=stderr;
                   1314:   
                   1315:       /* Parse options */
                   1316:       while ((c = taropt(argc, argv, "b:cf:hlmortuvwx")) != EOF) {
                   1317: ***************
                   1318: *** 258,264
                   1319:       char            c;
                   1320:       char           *place;
                   1321:   
                   1322: !     optarg = NULL;
                   1323:   
                   1324:       if (key == NULL) {               /* First time */
                   1325:        if (argc < 2)
                   1326: 
                   1327: --- 261,267 -----
                   1328:       char            c;
                   1329:       char           *place;
                   1330:   
                   1331: !     optarg = (char *)NULL;
                   1332:   
                   1333:       if (key == (char *)NULL) {               /* First time */
                   1334:        if (argc < 2)
                   1335: ***************
                   1336: *** 260,266
                   1337:   
                   1338:       optarg = NULL;
                   1339:   
                   1340: !     if (key == NULL) {               /* First time */
                   1341:        if (argc < 2)
                   1342:            return EOF;
                   1343:        key = argv[1];
                   1344: 
                   1345: --- 263,269 -----
                   1346:   
                   1347:       optarg = (char *)NULL;
                   1348:   
                   1349: !     if (key == (char *)NULL) {               /* First time */
                   1350:        if (argc < 2)
                   1351:            return EOF;
                   1352:        key = argv[1];
                   1353: ***************
                   1354: *** 280,286
                   1355:       }
                   1356:       place = strchr(optstring, c);
                   1357:   
                   1358: !     if (place == NULL || c == ':') {
                   1359:        fprintf(stderr, "%s: unknown option %c\n", argv[0], c);
                   1360:        return ('?');
                   1361:       }
                   1362: 
                   1363: --- 283,289 -----
                   1364:       }
                   1365:       place = strchr(optstring, c);
                   1366:   
                   1367: !     if (place == (char *)NULL || c == ':') {
                   1368:        fprintf(stderr, "%s: unknown option %c\n", argv[0], c);
                   1369:        return ('?');
                   1370:       }
                   1371: ***************
                   1372: *** 323,337
                   1373:   
                   1374:   #endif
                   1375:   {
                   1376: !     fprintf(stderr, "\
                   1377: ! Usage: %s -c[bfvw] device block filename..\n", myname);
                   1378: !     fprintf(stderr, "\
                   1379: !        %s -r[bvw] device block [filename...]\n", myname);
                   1380: !     fprintf(stderr, "\
                   1381: !        %s -t[vf] device\n", myname);
                   1382: !     fprintf(stderr, "\
                   1383: !        %s -u[bvw] device block [filename...]\n", myname);
                   1384: !     fprintf(stderr, "\
                   1385: !        %s -x[flmovw] device [filename...]\n", myname);
                   1386:       exit(1);
                   1387:   }
                   1388: 
                   1389: --- 326,335 -----
                   1390:   
                   1391:   #endif
                   1392:   {
                   1393: !     fprintf(stderr, "Usage: %s -c[bfvw] device block filename..\n", myname);
                   1394: !     fprintf(stderr, "       %s -r[bvw] device block [filename...]\n", myname);
                   1395: !     fprintf(stderr, "       %s -t[vf] device\n", myname);
                   1396: !     fprintf(stderr, "       %s -u[bvw] device block [filename...]\n", myname);
                   1397: !     fprintf(stderr, "       %s -x[flmovw] device [filename...]\n", myname);
                   1398:       exit(1);
                   1399:   }
                   1400: Index: ttyio.c
                   1401: *** /tmp/,RCSt1a17168  Sun Feb 12 14:09:46 1989
                   1402: --- ttyio.c    Sun Feb 12 14:02:39 1989
                   1403: ***************
                   1404: *** 1,6
                   1405:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1406:    *
                   1407: !  * $Revision: 1.1 $
                   1408:    *
                   1409:    * ttyio.c - Terminal/Console I/O functions for all archive interfaces
                   1410:    *
                   1411: 
                   1412: --- 1,6 -----
                   1413:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1414:    *
                   1415: !  * $Revision: 1.1 $
                   1416:    *
                   1417:    * ttyio.c - Terminal/Console I/O functions for all archive interfaces
                   1418:    *
                   1419: ***************
                   1420: *** 28,34
                   1421:    *
                   1422:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1423:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1424: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1425:    *
                   1426:    * $Log:     patch3,v $
                   1427: # Revision 1.1  92/08/28  08:02:40  bin
                   1428: # Initial revision
                   1429: # 
                   1430:    * Revision 1.1  88/12/23  18:02:39  mark
                   1431: 
                   1432: --- 28,34 -----
                   1433:    *
                   1434:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1435:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1436: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1437:    *
                   1438:    * $Log:     patch3,v $
                   1439: # Revision 1.1  92/08/28  08:02:40  bin
                   1440: # Initial revision
                   1441: # 
                   1442:    * Revision 1.2  89/02/12  10:06:11  mark
                   1443: ***************
                   1444: *** 31,36
                   1445:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1446:    *
                   1447:    * $Log:     patch3,v $
                   1448: # Revision 1.1  92/08/28  08:02:40  bin
                   1449: # Initial revision
                   1450: # 
                   1451:    * Revision 1.1  88/12/23  18:02:39  mark
                   1452:    * Initial revision
                   1453:    * 
                   1454: 
                   1455: --- 31,39 -----
                   1456:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1457:    *
                   1458:    * $Log:     patch3,v $
                   1459: # Revision 1.1  92/08/28  08:02:40  bin
                   1460: # Initial revision
                   1461: # 
                   1462: +  * Revision 1.2  89/02/12  10:06:11  mark
                   1463: +  * 1.2 release fixes
                   1464: +  * 
                   1465:    * Revision 1.1  88/12/23  18:02:39  mark
                   1466:    * Initial revision
                   1467:    * 
                   1468: ***************
                   1469: *** 37,43
                   1470:    */
                   1471:   
                   1472:   #ifndef lint
                   1473: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1474:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1475:   #endif /* ! lint */
                   1476:   
                   1477: 
                   1478: --- 40,46 -----
                   1479:    */
                   1480:   
                   1481:   #ifndef lint
                   1482: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1483:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1484:   #endif /* ! lint */
                   1485:   
                   1486: ***************
                   1487: *** 158,164
                   1488:           return(-1);
                   1489:       }
                   1490:       if (got < 0) {
                   1491: !      fatal(syserr());
                   1492:       }
                   1493:       answer[idx] = '\0';
                   1494:       return(0);
                   1495: 
                   1496: --- 161,167 -----
                   1497:           return(-1);
                   1498:       }
                   1499:       if (got < 0) {
                   1500: !      fatal(strerror());
                   1501:       }
                   1502:       answer[idx] = '\0';
                   1503:       return(0);
                   1504: ***************
                   1505: *** 244,252
                   1506:   
                   1507:       close_archive();
                   1508:   
                   1509: !     sprintf(msg, "\
                   1510: ! %s: Ready for volume %u\n\
                   1511: ! %s: Type \"go\" when ready to proceed (or \"quit\" to abort): \07",
                   1512:                   myname, arvolume + 1, myname);
                   1513:       for (;;) {
                   1514:        ret = nextask(msg, answer, sizeof(answer));
                   1515: 
                   1516: --- 247,253 -----
                   1517:   
                   1518:       close_archive();
                   1519:   
                   1520: !     sprintf(msg, "
                   1521: %s: Ready for volume %u\n%s: Type \"go\" when ready to proceed 
                   1522: (or \"quit\" to abort): \07",
                   1523:                   myname, arvolume + 1, myname);
                   1524:       for (;;) {
                   1525:        ret = nextask(msg, answer, sizeof(answer));
                   1526: Index: warn.c
                   1527: *** /tmp/,RCSt1a17173  Sun Feb 12 14:09:53 1989
                   1528: --- warn.c     Sun Feb 12 14:02:41 1989
                   1529: ***************
                   1530: *** 1,6
                   1531:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1532:    *
                   1533: !  * $Revision: 1.1 $
                   1534:    *
                   1535:    * warn.c - miscellaneous user warning routines 
                   1536:    *
                   1537: 
                   1538: --- 1,6 -----
                   1539:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1540:    *
                   1541: !  * $Revision: 1.1 $
                   1542:    *
                   1543:    * warn.c - miscellaneous user warning routines 
                   1544:    *
                   1545: ***************
                   1546: *** 27,33
                   1547:    *
                   1548:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1549:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1550: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1551:    *
                   1552:    * $Log:     patch3,v $
                   1553: # Revision 1.1  92/08/28  08:02:40  bin
                   1554: # Initial revision
                   1555: # 
                   1556:    * Revision 1.1  88/12/23  18:02:40  mark
                   1557: 
                   1558: --- 27,33 -----
                   1559:    *
                   1560:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1561:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1562: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1563:    *
                   1564:    * $Log:     patch3,v $
                   1565: # Revision 1.1  92/08/28  08:02:40  bin
                   1566: # Initial revision
                   1567: # 
                   1568:    * Revision 1.2  89/02/12  10:06:15  mark
                   1569: ***************
                   1570: *** 30,35
                   1571:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1572:    *
                   1573:    * $Log:     patch3,v $
                   1574: # Revision 1.1  92/08/28  08:02:40  bin
                   1575: # Initial revision
                   1576: # 
                   1577:    * Revision 1.1  88/12/23  18:02:40  mark
                   1578:    * Initial revision
                   1579:    * 
                   1580: 
                   1581: --- 30,38 -----
                   1582:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1583:    *
                   1584:    * $Log:     patch3,v $
                   1585: # Revision 1.1  92/08/28  08:02:40  bin
                   1586: # Initial revision
                   1587: # 
                   1588: +  * Revision 1.2  89/02/12  10:06:15  mark
                   1589: +  * 1.2 release fixes
                   1590: +  * 
                   1591:    * Revision 1.1  88/12/23  18:02:40  mark
                   1592:    * Initial revision
                   1593:    * 
                   1594: ***************
                   1595: *** 36,42
                   1596:    */
                   1597:   
                   1598:   #ifndef lint
                   1599: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1600:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1601:   #endif /* ! lint */
                   1602:   
                   1603: 
                   1604: --- 39,45 -----
                   1605:    */
                   1606:   
                   1607:   #ifndef lint
                   1608: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1609:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1610:   #endif /* ! lint */
                   1611:   
                   1612: ***************
                   1613: *** 93,99
                   1614:   }
                   1615:   
                   1616:   
                   1617: ! /* syserr - return pointer to appropriate system error message
                   1618:    *
                   1619:    * DESCRIPTION
                   1620:    *
                   1621: 
                   1622: --- 96,102 -----
                   1623:   }
                   1624:   
                   1625:   
                   1626: ! /* strerror - return pointer to appropriate system error message
                   1627:    *
                   1628:    * DESCRIPTION
                   1629:    *
                   1630: ***************
                   1631: *** 112,118
                   1632:   
                   1633:   #ifdef __STDC__
                   1634:   
                   1635: ! char *syserr(void)
                   1636:   
                   1637:   #else
                   1638:   
                   1639: 
                   1640: --- 115,121 -----
                   1641:   
                   1642:   #ifdef __STDC__
                   1643:   
                   1644: ! char *strerror(void)
                   1645:   
                   1646:   #else
                   1647:   
                   1648: ***************
                   1649: *** 116,122
                   1650:   
                   1651:   #else
                   1652:   
                   1653: ! char *syserr()
                   1654:   
                   1655:   #endif
                   1656:   {
                   1657: 
                   1658: --- 119,125 -----
                   1659:   
                   1660:   #else
                   1661:   
                   1662: ! char *strerror()
                   1663:   
                   1664:   #endif
                   1665:   {
                   1666: ***************
                   1667: *** 162,168
                   1668:   {
                   1669:       OFFSET          n;
                   1670:   
                   1671: !     if (n = (size / (1024 * 1024))) {
                   1672:        fprintf(stream, "%ldm+", n);
                   1673:        size -= n * 1024 * 1024;
                   1674:       }
                   1675: 
                   1676: --- 165,171 -----
                   1677:   {
                   1678:       OFFSET          n;
                   1679:   
                   1680: !     if (n = (size / (1024L * 1024L))) {
                   1681:        fprintf(stream, "%ldm+", n);
                   1682:        size -= n * 1024L * 1024L;
                   1683:       }
                   1684: ***************
                   1685: *** 164,170
                   1686:   
                   1687:       if (n = (size / (1024 * 1024))) {
                   1688:        fprintf(stream, "%ldm+", n);
                   1689: !      size -= n * 1024 * 1024;
                   1690:       }
                   1691:       if (n = (size / 1024)) {
                   1692:        fprintf(stream, "%ldk+", n);
                   1693: 
                   1694: --- 167,173 -----
                   1695:   
                   1696:       if (n = (size / (1024L * 1024L))) {
                   1697:        fprintf(stream, "%ldm+", n);
                   1698: !      size -= n * 1024L * 1024L;
                   1699:       }
                   1700:       if (n = (size / 1024L)) {
                   1701:        fprintf(stream, "%ldk+", n);
                   1702: ***************
                   1703: *** 166,172
                   1704:        fprintf(stream, "%ldm+", n);
                   1705:        size -= n * 1024 * 1024;
                   1706:       }
                   1707: !     if (n = (size / 1024)) {
                   1708:        fprintf(stream, "%ldk+", n);
                   1709:        size -= n * 1024;
                   1710:       }
                   1711: 
                   1712: --- 169,175 -----
                   1713:        fprintf(stream, "%ldm+", n);
                   1714:        size -= n * 1024L * 1024L;
                   1715:       }
                   1716: !     if (n = (size / 1024L)) {
                   1717:        fprintf(stream, "%ldk+", n);
                   1718:        size -= n * 1024L;
                   1719:       }
                   1720: ***************
                   1721: *** 168,174
                   1722:       }
                   1723:       if (n = (size / 1024)) {
                   1724:        fprintf(stream, "%ldk+", n);
                   1725: !      size -= n * 1024;
                   1726:       }
                   1727:       fprintf(stream, "%ld", size);
                   1728:   }
                   1729: 
                   1730: --- 171,177 -----
                   1731:       }
                   1732:       if (n = (size / 1024L)) {
                   1733:        fprintf(stream, "%ldk+", n);
                   1734: !      size -= n * 1024L;
                   1735:       }
                   1736:       fprintf(stream, "%ld", size);
                   1737:   }
                   1738: Index: wildmat.c
                   1739: *** /tmp/,RCSt1a17178  Sun Feb 12 14:09:59 1989
                   1740: --- wildmat.c  Sun Feb 12 14:02:42 1989
                   1741: ***************
                   1742: *** 1,6
                   1743:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1744:    *
                   1745: !  * $Revision: 1.1 $
                   1746:    *
                   1747:    * wildmat.c - simple regular expression pattern matching routines 
                   1748:    *
                   1749: 
                   1750: --- 1,6 -----
                   1751:   /* $Source: /src386/usr/bin/pax/patch3,v $
                   1752:    *
                   1753: !  * $Revision: 1.1 $
                   1754:    *
                   1755:    * wildmat.c - simple regular expression pattern matching routines 
                   1756:    *
                   1757: ***************
                   1758: *** 33,39
                   1759:    *
                   1760:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1761:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1762: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1763:    *
                   1764:    * $Log:     patch3,v $
                   1765: # Revision 1.1  92/08/28  08:02:40  bin
                   1766: # Initial revision
                   1767: # 
                   1768:    * Revision 1.1  88/12/23  18:02:41  mark
                   1769: 
                   1770: --- 33,39 -----
                   1771:    *
                   1772:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   1773:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   1774: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1775:    *
                   1776:    * $Log:     patch3,v $
                   1777: # Revision 1.1  92/08/28  08:02:40  bin
                   1778: # Initial revision
                   1779: # 
                   1780:    * Revision 1.2  89/02/12  10:06:20  mark
                   1781: ***************
                   1782: *** 36,41
                   1783:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1784:    *
                   1785:    * $Log:     patch3,v $
                   1786: # Revision 1.1  92/08/28  08:02:40  bin
                   1787: # Initial revision
                   1788: # 
                   1789:    * Revision 1.1  88/12/23  18:02:41  mark
                   1790:    * Initial revision
                   1791:    * 
                   1792: 
                   1793: --- 36,44 -----
                   1794:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   1795:    *
                   1796:    * $Log:     patch3,v $
                   1797: # Revision 1.1  92/08/28  08:02:40  bin
                   1798: # Initial revision
                   1799: # 
                   1800: +  * Revision 1.2  89/02/12  10:06:20  mark
                   1801: +  * 1.2 release fixes
                   1802: +  * 
                   1803:    * Revision 1.1  88/12/23  18:02:41  mark
                   1804:    * Initial revision
                   1805:    * 
                   1806: ***************
                   1807: *** 42,48
                   1808:    */
                   1809:   
                   1810:   #ifndef lint
                   1811: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1812:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1813:   #endif /* ! lint */
                   1814:   
                   1815: 
                   1816: --- 45,51 -----
                   1817:    */
                   1818:   
                   1819:   #ifndef lint
                   1820: ! static char *ident = "$Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $";
                   1821:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
                   1822:   #endif /* ! lint */
                   1823:   
                   1824: ***************
                   1825: *** 97,103
                   1826:   
                   1827:   #endif
                   1828:   {
                   1829: !     while (!wildmat(source, pattern)) {
                   1830:        if (*++source == '\0') {
                   1831:            return (0);
                   1832:        }
                   1833: 
                   1834: --- 100,106 -----
                   1835:   
                   1836:   #endif
                   1837:   {
                   1838: !     while (!wildmat(pattern, source)) {
                   1839:        if (*++source == '\0') {
                   1840:            return (0);
                   1841:        }
                   1842: ***************
                   1843: *** 118,125
                   1844:    *
                   1845:    * PARAMETERS 
                   1846:    *
                   1847: -  *   char *source    - The source string which is to be compared to the 
                   1848: -  *                     regular expression pattern. 
                   1849:    *   char *pattern   - The regular expression which we are supposed to 
                   1850:    *                     match to. 
                   1851:    *
                   1852: 
                   1853: --- 121,126 -----
                   1854:    *
                   1855:    * PARAMETERS 
                   1856:    *
                   1857:    *   char *pattern   - The regular expression which we are supposed to 
                   1858:    *                     match to. 
                   1859:    *   char *source    - The source string which is to be compared to the 
                   1860: ***************
                   1861: *** 122,127
                   1862:    *                     regular expression pattern. 
                   1863:    *   char *pattern   - The regular expression which we are supposed to 
                   1864:    *                     match to. 
                   1865:    *
                   1866:    * RETURNS 
                   1867:    *
                   1868: 
                   1869: --- 123,130 -----
                   1870:    *
                   1871:    *   char *pattern   - The regular expression which we are supposed to 
                   1872:    *                     match to. 
                   1873: +  *   char *source    - The source string which is to be compared to the 
                   1874: +  *                     regular expression pattern. 
                   1875:    *
                   1876:    * RETURNS 
                   1877:    *
                   1878: Index: Makefile
                   1879: *** /tmp/,RCSt1a17183  Sun Feb 12 14:10:07 1989
                   1880: --- Makefile   Sun Feb 12 14:01:55 1989
                   1881: ***************
                   1882: *** 3,9
                   1883:   #
                   1884:   # Written by Mark H. Colburn ([email protected])
                   1885:   #
                   1886: ! # $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   1887:   #
                   1888:   
                   1889:   #
                   1890: 
                   1891: --- 3,9 -----
                   1892:   #
                   1893:   # Written by Mark H. Colburn ([email protected])
                   1894:   #
                   1895: ! # $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   1896:   #
                   1897:   
                   1898:   #
                   1899: ***************
                   1900: *** 30,35
                   1901:   CC = cc
                   1902:   
                   1903:   #
                   1904:   # Set LFLAGS to whatever makes your linker happy
                   1905:   #
                   1906:   #LDFLAGS = -s
                   1907: 
                   1908: --- 30,40 -----
                   1909:   CC = cc
                   1910:   
                   1911:   #
                   1912: + # Set LIBS to any additional libraries that you need linked in with pax.
                   1913: + #
                   1914: + LIBS=
                   1915: + 
                   1916: + #
                   1917:   # Set LFLAGS to whatever makes your linker happy
                   1918:   #
                   1919:   #LDFLAGS = -s
                   1920: ***************
                   1921: *** 36,41
                   1922:   LDFLAGS = 
                   1923:   
                   1924:   #
                   1925:   # Set LINTFLAGS to whatever makes your implementation of lint happy.  If
                   1926:   # you don't undef __STDC__ and you have an ANSI C compiler, lint will choke 
                   1927:   # on the function prototypes present in func.h
                   1928: 
                   1929: --- 41,52 -----
                   1930:   LDFLAGS = 
                   1931:   
                   1932:   #
                   1933: + # Set COPY to the name of the command to use to copy pax to cpio and
                   1934: + # tar.  Usually it is 'ln'.
                   1935: + #
                   1936: + COPY=ln
                   1937: + 
                   1938: + #
                   1939:   # Set LINTFLAGS to whatever makes your implementation of lint happy.  If
                   1940:   # you don't undef __STDC__ and you have an ANSI C compiler, lint will choke 
                   1941:   # on the function prototypes present in func.h.
                   1942: ***************
                   1943: *** 38,44
                   1944:   #
                   1945:   # Set LINTFLAGS to whatever makes your implementation of lint happy.  If
                   1946:   # you don't undef __STDC__ and you have an ANSI C compiler, lint will choke 
                   1947: ! # on the function prototypes present in func.h
                   1948:   #
                   1949:   LINTFLAGS = -U__STDC__ $(POSIX)
                   1950:   
                   1951: 
                   1952: --- 49,55 -----
                   1953:   #
                   1954:   # Set LINTFLAGS to whatever makes your implementation of lint happy.  If
                   1955:   # you don't undef __STDC__ and you have an ANSI C compiler, lint will choke 
                   1956: ! # on the function prototypes present in func.h.
                   1957:   #
                   1958:   LINTFLAGS = -U__STDC__ $(POSIX)
                   1959:   
                   1960: ***************
                   1961: *** 53,58
                   1962:   #
                   1963:   MAN5 = /usr/man/man5
                   1964:   MAN1 = /usr/man/man1
                   1965:   
                   1966:   #
                   1967:   # There are three different ways to get POSIX or BSD conformant directory 
                   1968: 
                   1969: --- 64,71 -----
                   1970:   #
                   1971:   MAN5 = /usr/man/man5
                   1972:   MAN1 = /usr/man/man1
                   1973: + MAN5EXT = 5
                   1974: + MAN1EXT = 1
                   1975:   
                   1976:   #
                   1977:   # There are three different ways to get POSIX or BSD conformant directory 
                   1978: ***************
                   1979: *** 80,86
                   1980:   # Nothing beyond this point should need to be changed.
                   1981:   #
                   1982:   
                   1983: ! MISC   = Makefile pax.1 tar.5 cpio.5 README PATCHLEVEL
                   1984:   HEADERS= config.h func.h limits.h port.h pax.h 
                   1985:   SOURCE= pax.c append.c buffer.c cpio.c create.c extract.c fileio.c\
                   1986:        link.c list.c mem.c namelist.c names.c pass.c pathname.c\
                   1987: 
                   1988: --- 93,100 -----
                   1989:   # Nothing beyond this point should need to be changed.
                   1990:   #
                   1991:   
                   1992: ! SHELL = /bin/sh
                   1993: ! MISC  = Makefile pax.1 tar.5 cpio.5 README PATCHLEVEL
                   1994:   HEADERS= config.h func.h limits.h port.h pax.h 
                   1995:   SOURCE= pax.c append.c buffer.c cpio.c create.c extract.c fileio.c\
                   1996:        link.c list.c mem.c namelist.c names.c pass.c pathname.c\
                   1997: ***************
                   1998: *** 95,101
                   1999:   all: $(PROGS)
                   2000:   
                   2001:   install: $(PROGS)
                   2002: !      mv $(PROGS) $(BINDIR)
                   2003:        cp $(PMAN1) $(MAN1)
                   2004:   #    cp $(PMAN5) $(MAN5)
                   2005:   
                   2006: 
                   2007: --- 109,119 -----
                   2008:   all: $(PROGS)
                   2009:   
                   2010:   install: $(PROGS)
                   2011: !      strip pax
                   2012: !      cp pax $(BINDIR)
                   2013: !      chmod 755 $(BINDIR)/pax
                   2014: !      ln $(BINDIR)/pax $(BINDIR)/tar
                   2015: !      ln $(BINDIR)/pax $(BINDIR)/cpio
                   2016:        cp $(PMAN1) $(MAN1)
                   2017:   #    cp $(PMAN5) $(MAN5)
                   2018:   
                   2019: ***************
                   2020: *** 107,113
                   2021:        lint $(LINTFLAGS) $(SOURCE)
                   2022:   
                   2023:   pax : $(OBJECT)
                   2024: !      $(CC) $(CFLAGS) -o pax $(OBJECT) $(DIRENT) 
                   2025:   
                   2026:   tar: pax
                   2027:        rm -f tar
                   2028: 
                   2029: --- 125,131 -----
                   2030:        lint $(LINTFLAGS) $(SOURCE)
                   2031:   
                   2032:   pax : $(OBJECT)
                   2033: !      $(CC) $(CFLAGS) $(LDFLAGS) -o pax $(OBJECT) $(DIRENT) $(LIBS)
                   2034:   
                   2035:   tar: pax
                   2036:        rm -f tar
                   2037: ***************
                   2038: *** 111,117
                   2039:   
                   2040:   tar: pax
                   2041:        rm -f tar
                   2042: !      ln pax tar
                   2043:   
                   2044:   cpio: pax
                   2045:        rm -f cpio
                   2046: 
                   2047: --- 129,135 -----
                   2048:   
                   2049:   tar: pax
                   2050:        rm -f tar
                   2051: !      $(COPY) pax tar
                   2052:   
                   2053:   cpio: pax
                   2054:        rm -f cpio
                   2055: ***************
                   2056: *** 115,120
                   2057:   
                   2058:   cpio: pax
                   2059:        rm -f cpio
                   2060: !      ln pax cpio
                   2061:   
                   2062:   $(OBJECT): $(HEADERS)
                   2063: 
                   2064: --- 133,138 -----
                   2065:   
                   2066:   cpio: pax
                   2067:        rm -f cpio
                   2068: !      $(COPY) pax cpio
                   2069:   
                   2070:   $(OBJECT): $(HEADERS)
                   2071: Index: README
                   2072: *** /tmp/,RCSt1a17188  Sun Feb 12 14:10:13 1989
                   2073: --- README     Sun Feb 12 14:01:56 1989
                   2074: ***************
                   2075: *** 6,12
                   2076:   
                   2077:   Introduction
                   2078:   
                   2079: !     This is version 1.1 of Pax, a public domain archiving utility.  
                   2080:       
                   2081:       Pax is an archiving utility that reads and writes tar and cpio formats, 
                   2082:       both the traditional ones and the extended formats specified in IEEE 
                   2083: 
                   2084: --- 6,12 -----
                   2085:   
                   2086:   Introduction
                   2087:   
                   2088: !     This is version 1.2 of Pax, an archiving utility.  
                   2089:       
                   2090:       Pax is an archiving utility that reads and writes tar and cpio formats, 
                   2091:       both the traditional ones and the extended formats specified in IEEE 
                   2092: ***************
                   2093: *** 16,25
                   2094:       1003.2 as a compromise in the chronic controversy over which of tar or 
                   2095:       cpio is best.
                   2096:   
                   2097: !     The USENIX Association provided some support for this implementation 
                   2098: !     project.  As a result, the Pax utility is being distributed free of 
                   2099: !     charge and may be redistributed by others in either source or binary 
                   2100: !     form.  (See the liscensing section for restrictions)
                   2101:   
                   2102:       The source for Pax is being posted to comp.sources.unix on USENET and 
                   2103:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2104: 
                   2105: --- 16,25 -----
                   2106:       1003.2 as a compromise in the chronic controversy over which of tar or 
                   2107:       cpio is best.
                   2108:   
                   2109: !     The USENIX Association provided some support for the initial 
                   2110: !     implementation of this product.  As a result, the Pax utility is being 
                   2111: !     distributed free of charge and may be redistributed by others in either 
                   2112: !     source or binary form.  (See the liscensing section for restrictions)
                   2113:   
                   2114:       The source for Pax has been posted to comp.sources.unix on USENET and 
                   2115:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2116: ***************
                   2117: *** 21,27
                   2118:       charge and may be redistributed by others in either source or binary 
                   2119:       form.  (See the liscensing section for restrictions)
                   2120:   
                   2121: !     The source for Pax is being posted to comp.sources.unix on USENET and 
                   2122:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2123:       moon.honeywell.com and from one of the Berkeley machines.  The source
                   2124:       to Pax will be available via anonymous UUCP from jhereg.mn.org, the 
                   2125: 
                   2126: --- 21,27 -----
                   2127:       distributed free of charge and may be redistributed by others in either 
                   2128:       source or binary form.  (See the liscensing section for restrictions)
                   2129:   
                   2130: !     The source for Pax has been posted to comp.sources.unix on USENET and 
                   2131:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2132:       moon.src.honeywell.com and from ucb-arpa.berkeley.edu.  The source
                   2133:       to Pax is also available via anonymous UUCP from jhereg.mn.org, the 
                   2134: ***************
                   2135: *** 23,30
                   2136:   
                   2137:       The source for Pax is being posted to comp.sources.unix on USENET and 
                   2138:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2139: !     moon.honeywell.com and from one of the Berkeley machines.  The source
                   2140: !     to Pax will be available via anonymous UUCP from jhereg.mn.org, the 
                   2141:       author's home machine and possibly other sites.
                   2142:   
                   2143:       The source for Pax will continue to change as long as the definition of 
                   2144: 
                   2145: --- 23,30 -----
                   2146:   
                   2147:       The source for Pax has been posted to comp.sources.unix on USENET and 
                   2148:       will also be available by anonymous FTP on the Internet from uunet.uu.net,
                   2149: !     moon.src.honeywell.com and from ucb-arpa.berkeley.edu.  The source
                   2150: !     to Pax is also available via anonymous UUCP from jhereg.mn.org, the 
                   2151:       author's home machine and possibly other sites.
                   2152:   
                   2153:       The source for Pax will continue to change as long as the definition of 
                   2154: ***************
                   2155: *** 56,62
                   2156:       machines:
                   2157:   
                   2158:           Machine                 Operating System/Release
                   2159: !      -------------------------------------------------------
                   2160:        Altos 586               System III (2.3)
                   2161:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2162:        Cray 2                  UNICOS
                   2163: 
                   2164: --- 56,62 -----
                   2165:       machines:
                   2166:   
                   2167:           Machine                 Operating System/Release
                   2168: !      ---------------------------------------------------
                   2169:        Altos 586               System III (2.3)
                   2170:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2171:           Convergent S/320     CTIX/68k 6.1, UNIX SysV 3.1
                   2172: ***************
                   2173: *** 59,64
                   2174:        -------------------------------------------------------
                   2175:        Altos 586               System III (2.3)
                   2176:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2177:        Cray 2                  UNICOS
                   2178:        HP 9000                 HP/UX 6.0.1
                   2179:        Mac II                  A/UX 1.0
                   2180: 
                   2181: --- 59,65 -----
                   2182:        ---------------------------------------------------
                   2183:        Altos 586               System III (2.3)
                   2184:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2185: +         Convergent S/320     CTIX/68k 6.1, UNIX SysV 3.1
                   2186:        Cray 2                  UNICOS
                   2187:        Encore CC               02.00.r088
                   2188:        HP 9000                 HP/UX 6.0.1
                   2189: ***************
                   2190: *** 60,65
                   2191:        Altos 586               System III (2.3)
                   2192:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2193:        Cray 2                  UNICOS
                   2194:        HP 9000                 HP/UX 6.0.1
                   2195:        Mac II                  A/UX 1.0
                   2196:        NCR Tower               System V.2
                   2197: 
                   2198: --- 61,67 -----
                   2199:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2200:           Convergent S/320     CTIX/68k 6.1, UNIX SysV 3.1
                   2201:        Cray 2                  UNICOS
                   2202: +      Encore CC               02.00.r088
                   2203:        HP 9000                 HP/UX 6.0.1
                   2204:           IBM PC/AT            Microport SV/AT V2.4
                   2205:        Mac II                  A/UX 1.0
                   2206: ***************
                   2207: *** 61,66
                   2208:        AT&T UNIX PC            System V.2 (Release 3.51)
                   2209:        Cray 2                  UNICOS
                   2210:        HP 9000                 HP/UX 6.0.1
                   2211:        Mac II                  A/UX 1.0
                   2212:        NCR Tower               System V.2
                   2213:        Pyramid                 AT&T and Berkeley universe
                   2214: 
                   2215: --- 63,69 -----
                   2216:        Cray 2                  UNICOS
                   2217:        Encore CC               02.00.r088
                   2218:        HP 9000                 HP/UX 6.0.1
                   2219: +         IBM PC/AT            Microport SV/AT V2.4
                   2220:        Mac II                  A/UX 1.0
                   2221:        NCR Tower               System V.2
                   2222:        Pyramid                 AT&T and Berkeley universe
                   2223: ***************
                   2224: *** 67,72
                   2225:        Sequent Symetry         Dynix 3.0
                   2226:        SGI Iris 4D/60G         UNIX 3.0
                   2227:        SGI Iris 4D/70G         UNIX 3.0
                   2228:        Sun 2                   SunOS 3.4
                   2229:        Sun 2                   SunOS 3.5
                   2230:        Sun 3                   SunOS 3.4
                   2231: 
                   2232: --- 70,77 -----
                   2233:        Sequent Symetry         Dynix 3.0
                   2234:        SGI Iris 4D/60G         UNIX 3.0
                   2235:        SGI Iris 4D/70G         UNIX 3.0
                   2236: +      SCO Xenix 386           2.3.2
                   2237: +      SCO Unix 386            3.2
                   2238:        Sun 2                   SunOS 3.4
                   2239:        Sun 2                   SunOS 3.5
                   2240:        Sun 3                   SunOS 3.4
                   2241: ***************
                   2242: *** 76,82
                   2243:        VAX 8750                BSD 4.3 (Mt. Xinu)
                   2244:        VAX 8650                BSD 4.3 (Mt. Xinu)
                   2245:        VAX 780                 BSD 4.3 (Berkeley)
                   2246: !      -------------------------------------------------------
                   2247:   
                   2248:       In future releases, the source will be moving toward ANSI C and POSIX 
                   2249:       compatibility.  This should allow for portability over any system 
                   2250: 
                   2251: --- 81,87 -----
                   2252:        VAX 8750                BSD 4.3 (Mt. Xinu)
                   2253:        VAX 8650                BSD 4.3 (Mt. Xinu)
                   2254:        VAX 780                 BSD 4.3 (Berkeley)
                   2255: !      ---------------------------------------------------
                   2256:   
                   2257:       In future releases, the source will be moving toward ANSI C and POSIX 
                   2258:       compatibility.  This should allow for portability over any system 
                   2259: ***************
                   2260: *** 110,116
                   2261:   
                   2262:       THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   2263:       IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   2264: !     WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   2265:   
                   2266:   Please report any bug or problems to:
                   2267:   
                   2268: 
                   2269: --- 115,121 -----
                   2270:   
                   2271:       THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                   2272:       IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                   2273: !     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                   2274:   
                   2275:   Please report any bug or problems to:
                   2276:   
                   2277: ***************
                   2278: *** 115,121
                   2279:   Please report any bug or problems to:
                   2280:   
                   2281:   Mark Colburn
                   2282: ! NAPS International
                   2283:   117 Mackubin St., Suite 1
                   2284:   St. Paul MN   55102
                   2285:   (612) 224-9108
                   2286: 
                   2287: --- 120,126 -----
                   2288:   Please report any bug or problems to:
                   2289:   
                   2290:   Mark Colburn
                   2291: ! Minnetech Consulting, Inc.
                   2292:   117 Mackubin St., Suite 1
                   2293:   St. Paul MN   55102
                   2294:   [email protected]
                   2295: ***************
                   2296: *** 118,122
                   2297:   NAPS International
                   2298:   117 Mackubin St., Suite 1
                   2299:   St. Paul MN   55102
                   2300: - (612) 224-9108
                   2301:   [email protected]
                   2302: 
                   2303: --- 123,126 -----
                   2304:   Minnetech Consulting, Inc.
                   2305:   117 Mackubin St., Suite 1
                   2306:   St. Paul MN   55102
                   2307:   [email protected]
                   2308: Index: PATCHLEVEL
                   2309: *** /tmp/,RCSt1a17193  Sun Feb 12 14:10:19 1989
                   2310: --- PATCHLEVEL Sun Feb 12 14:01:55 1989
                   2311: ***************
                   2312: *** 1,2
                   2313: ! Patchlevel 0
                   2314: ! $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   2315: 
                   2316: --- 1,2 -----
                   2317: ! Patchlevel 1
                   2318: ! $Id: patch3,v 1.1 92/08/28 08:02:40 bin Exp Locker: bin $
                   2319: 
                   2320: 
                   2321: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.