Annotation of coherent/g/usr/bin/pax/misc/patch2, revision 1.1

1.1     ! root        1: 
        !             2: Index: list.c
        !             3: *** /tmp/,RCSt1a17078  Sun Feb 12 14:07:03 1989
        !             4: --- list.c     Sun Feb 12 14:02:13 1989
        !             5: ***************
        !             6: *** 1,6
        !             7:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !             8:    *
        !             9: !  * $Revision: 1.1 $
        !            10:    *
        !            11:    * list.c - List all files on an archive
        !            12:    *
        !            13: 
        !            14: --- 1,6 -----
        !            15:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !            16:    *
        !            17: !  * $Revision: 1.1 $
        !            18:    *
        !            19:    * list.c - List all files on an archive
        !            20:    *
        !            21: ***************
        !            22: *** 27,33
        !            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:     patch2,v $
        !            29: # Revision 1.1  92/08/28  08:02:34  bin
        !            30: # Initial revision
        !            31: # 
        !            32:    * Revision 1.1  88/12/23  18:02:14  mark
        !            33: 
        !            34: --- 27,33 -----
        !            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:     patch2,v $
        !            41: # Revision 1.1  92/08/28  08:02:34  bin
        !            42: # Initial revision
        !            43: # 
        !            44:    * Revision 1.2  89/02/12  10:04:43  mark
        !            45: ***************
        !            46: *** 30,35
        !            47:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            48:    *
        !            49:    * $Log:     patch2,v $
        !            50: # Revision 1.1  92/08/28  08:02:34  bin
        !            51: # Initial revision
        !            52: # 
        !            53:    * Revision 1.1  88/12/23  18:02:14  mark
        !            54:    * Initial revision
        !            55:    * 
        !            56: 
        !            57: --- 30,38 -----
        !            58:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            59:    *
        !            60:    * $Log:     patch2,v $
        !            61: # Revision 1.1  92/08/28  08:02:34  bin
        !            62: # Initial revision
        !            63: # 
        !            64: +  * Revision 1.2  89/02/12  10:04:43  mark
        !            65: +  * 1.2 release fixes
        !            66: +  * 
        !            67:    * Revision 1.1  88/12/23  18:02:14  mark
        !            68:    * Initial revision
        !            69:    * 
        !            70: ***************
        !            71: *** 36,42
        !            72:    */
        !            73:   
        !            74:   #ifndef lint
        !            75: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !            76:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !            77:   #endif /* ! lint */
        !            78:   
        !            79: 
        !            80: --- 39,45 -----
        !            81:    */
        !            82:   
        !            83:   #ifndef lint
        !            84: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !            85:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !            86:   #endif /* ! lint */
        !            87:   
        !            88: ***************
        !            89: *** 384,390
        !            90:        case S_IFLNK:   /* This file is a symbolic link */
        !            91:            i = readlink(name, symnam, PATH_MAX - 1);
        !            92:            if (i < 0) {                /* Could not find symbolic link */
        !            93: !              warn("can't read symbolic link", syserr());
        !            94:            } else {            /* Found symbolic link filename */
        !            95:                symnam[i] = '\0';
        !            96:                fprintf(msgfile, "x %s symbolic link to %s\n", name, symnam);
        !            97: 
        !            98: --- 387,393 -----
        !            99:        case S_IFLNK:   /* This file is a symbolic link */
        !           100:            i = readlink(name, symnam, PATH_MAX - 1);
        !           101:            if (i < 0) {                /* Could not find symbolic link */
        !           102: !              warn("can't read symbolic link", strerror());
        !           103:            } else {            /* Found symbolic link filename */
        !           104:                symnam[i] = '\0';
        !           105:                fprintf(msgfile, "x %s symbolic link to %s\n", name, symnam);
        !           106: ***************
        !           107: *** 395,401
        !           108:            if ((asb->sb_nlink > 1) && (link = islink(name, asb))) {
        !           109:                fprintf(msgfile, "%s linked to %s\n", name, link->l_name); 
        !           110:            } else {
        !           111: !              fprintf(msgfile, "x %s, %d bytes, %d tape blocks\n", 
        !           112:                        name, asb->sb_size, ROUNDUP(asb->sb_size, 
        !           113:                        BLOCKSIZE) / BLOCKSIZE);
        !           114:            }
        !           115: 
        !           116: --- 398,404 -----
        !           117:            if ((asb->sb_nlink > 1) && (link = islink(name, asb))) {
        !           118:                fprintf(msgfile, "%s linked to %s\n", name, link->l_name); 
        !           119:            } else {
        !           120: !              fprintf(msgfile, "x %s, %ld bytes, %d tape blocks\n", 
        !           121:                        name, asb->sb_size, ROUNDUP(asb->sb_size, 
        !           122:                        BLOCKSIZE) / BLOCKSIZE);
        !           123:            }
        !           124: ***************
        !           125: *** 406,412
        !           126:        case S_IFLNK:   /* This file is a symbolic link */
        !           127:            i = readlink(name, symnam, PATH_MAX - 1);
        !           128:            if (i < 0) {                /* Could not find symbolic link */
        !           129: !              warn("can't read symbolic link", syserr());
        !           130:            } else {            /* Found symbolic link filename */
        !           131:                symnam[i] = '\0';
        !           132:                fprintf(msgfile, "a %s symbolic link to %s\n", name, symnam);
        !           133: 
        !           134: --- 409,415 -----
        !           135:        case S_IFLNK:   /* This file is a symbolic link */
        !           136:            i = readlink(name, symnam, PATH_MAX - 1);
        !           137:            if (i < 0) {                /* Could not find symbolic link */
        !           138: !              warn("can't read symbolic link", strerror());
        !           139:            } else {            /* Found symbolic link filename */
        !           140:                symnam[i] = '\0';
        !           141:                fprintf(msgfile, "a %s symbolic link to %s\n", name, symnam);
        !           142: ***************
        !           143: *** 418,424
        !           144:            if ((asb->sb_nlink > 1) && (link = islink(name, asb))) {
        !           145:                fprintf(msgfile, "link to %s\n", link->l_name); 
        !           146:            } else {
        !           147: !              fprintf(msgfile, "%d Blocks\n", 
        !           148:                        ROUNDUP(asb->sb_size, BLOCKSIZE) / BLOCKSIZE);
        !           149:            }
        !           150:            break;
        !           151: 
        !           152: --- 421,427 -----
        !           153:            if ((asb->sb_nlink > 1) && (link = islink(name, asb))) {
        !           154:                fprintf(msgfile, "link to %s\n", link->l_name); 
        !           155:            } else {
        !           156: !              fprintf(msgfile, "%ld Blocks\n", 
        !           157:                        ROUNDUP(asb->sb_size, BLOCKSIZE) / BLOCKSIZE);
        !           158:            }
        !           159:            break;
        !           160: ***************
        !           161: *** 439,445
        !           162:        case S_IFLNK:   /* This file is a symbolic link */
        !           163:            i = readlink(name, symnam, PATH_MAX - 1);
        !           164:            if (i < 0) {                /* Could not find symbolic link */
        !           165: !              warn("can't read symbolic link", syserr());
        !           166:            } else {            /* Found symbolic link filename */
        !           167:                symnam[i] = '\0';
        !           168:                fprintf(msgfile, " symbolic link to %s", name, symnam);
        !           169: 
        !           170: --- 442,448 -----
        !           171:        case S_IFLNK:   /* This file is a symbolic link */
        !           172:            i = readlink(name, symnam, PATH_MAX - 1);
        !           173:            if (i < 0) {                /* Could not find symbolic link */
        !           174: !              warn("can't read symbolic link", strerror());
        !           175:            } else {            /* Found symbolic link filename */
        !           176:                symnam[i] = '\0';
        !           177:                fprintf(msgfile, " symbolic link to %s", symnam);
        !           178: ***************
        !           179: *** 442,448
        !           180:                warn("can't read symbolic link", syserr());
        !           181:            } else {            /* Found symbolic link filename */
        !           182:                symnam[i] = '\0';
        !           183: !              fprintf(msgfile, " symbolic link to %s", name, symnam);
        !           184:            }
        !           185:            break;
        !           186:   #endif
        !           187: 
        !           188: --- 445,451 -----
        !           189:                warn("can't read symbolic link", strerror());
        !           190:            } else {            /* Found symbolic link filename */
        !           191:                symnam[i] = '\0';
        !           192: !              fprintf(msgfile, " symbolic link to %s", symnam);
        !           193:            }
        !           194:            break;
        !           195:   #endif
        !           196: ***************
        !           197: *** 454,460
        !           198:        }
        !           199:        fputc('\n', msgfile);
        !           200:       } else {
        !           201: !      fprintf(msgfile, "? %s %d blocks\n", name,
        !           202:                ROUNDUP(asb->sb_size, BLOCKSIZE) / BLOCKSIZE);
        !           203:       }
        !           204:   }
        !           205: 
        !           206: --- 457,463 -----
        !           207:        }
        !           208:        fputc('\n', msgfile);
        !           209:       } else {
        !           210: !      fprintf(msgfile, "? %s %ld blocks\n", name,
        !           211:                ROUNDUP(asb->sb_size, BLOCKSIZE) / BLOCKSIZE);
        !           212:       }
        !           213:   }
        !           214: ***************
        !           215: *** 518,525
        !           216:            fprintf(msgfile, "\t        ");
        !           217:        }
        !           218:        fprintf(msgfile," %3s %2d %02d:%02d ",
        !           219: !                     monnames[atm->tm_mon], atm->tm_mday, 
        !           220: !                     atm->tm_hour, atm->tm_min);
        !           221:       }
        !           222:       fprintf(msgfile, "%s", name);
        !           223:       if ((asb->sb_nlink > 1) && (from = islink(name, asb))) {
        !           224: 
        !           225: --- 521,528 -----
        !           226:            fprintf(msgfile, "\t        ");
        !           227:        }
        !           228:        fprintf(msgfile," %3s %2d %02d:%02d ",
        !           229: !              monnames[atm->tm_mon], atm->tm_mday, 
        !           230: !              atm->tm_hour, atm->tm_min);
        !           231:       }
        !           232:       fprintf(msgfile, "%s", name);
        !           233:       if ((asb->sb_nlink > 1) && (from = islink(name, asb))) {
        !           234: ***************
        !           235: *** 532,539
        !           236:   #endif       /* S_IFLNK */
        !           237:       putc('\n', msgfile);
        !           238:   }
        !           239: - 
        !           240: - 
        !           241:   
        !           242:   
        !           243:   /* print_mode - fancy file mode display
        !           244: 
        !           245: --- 535,540 -----
        !           246:   #endif       /* S_IFLNK */
        !           247:       putc('\n', msgfile);
        !           248:   }
        !           249:   
        !           250:   
        !           251:   /* print_mode - fancy file mode display
        !           252: Index: mem.c
        !           253: *** /tmp/,RCSt1a17083  Sun Feb 12 14:07:14 1989
        !           254: --- mem.c      Sun Feb 12 14:02:14 1989
        !           255: ***************
        !           256: *** 1,6
        !           257:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           258:    *
        !           259: !  * $Revision: 1.1 $
        !           260:    *
        !           261:    * mem.c - memory allocation and manipulation functions
        !           262:    *
        !           263: 
        !           264: --- 1,6 -----
        !           265:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           266:    *
        !           267: !  * $Revision: 1.1 $
        !           268:    *
        !           269:    * mem.c - memory allocation and manipulation functions
        !           270:    *
        !           271: ***************
        !           272: *** 28,34
        !           273:    *
        !           274:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           275:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           276: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           277:    *
        !           278:    * $Log:     patch2,v $
        !           279: # Revision 1.1  92/08/28  08:02:34  bin
        !           280: # Initial revision
        !           281: # 
        !           282:    * Revision 1.1  88/12/23  18:02:17  mark
        !           283: 
        !           284: --- 28,34 -----
        !           285:    *
        !           286:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           287:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           288: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           289:    *
        !           290:    * $Log:     patch2,v $
        !           291: # Revision 1.1  92/08/28  08:02:34  bin
        !           292: # Initial revision
        !           293: # 
        !           294:    * Revision 1.2  89/02/12  10:04:53  mark
        !           295: ***************
        !           296: *** 31,36
        !           297:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           298:    *
        !           299:    * $Log:     patch2,v $
        !           300: # Revision 1.1  92/08/28  08:02:34  bin
        !           301: # Initial revision
        !           302: # 
        !           303:    * Revision 1.1  88/12/23  18:02:17  mark
        !           304:    * Initial revision
        !           305:    * 
        !           306: 
        !           307: --- 31,39 -----
        !           308:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           309:    *
        !           310:    * $Log:     patch2,v $
        !           311: # Revision 1.1  92/08/28  08:02:34  bin
        !           312: # Initial revision
        !           313: # 
        !           314: +  * Revision 1.2  89/02/12  10:04:53  mark
        !           315: +  * 1.2 release fixes
        !           316: +  * 
        !           317:    * Revision 1.1  88/12/23  18:02:17  mark
        !           318:    * Initial revision
        !           319:    * 
        !           320: ***************
        !           321: *** 37,43
        !           322:    */
        !           323:   
        !           324:   #ifndef lint
        !           325: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           326:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           327:   #endif /* ! lint */
        !           328:   
        !           329: 
        !           330: --- 40,46 -----
        !           331:    */
        !           332:   
        !           333:   #ifndef lint
        !           334: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           335:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           336:   #endif /* ! lint */
        !           337:   
        !           338: ***************
        !           339: *** 65,71
        !           340:    * RETURNS
        !           341:    *
        !           342:    *   Normally returns the pointer to the newly allocated memory.  If
        !           343: !  *   an error occurss, NULL is returned, and an error message is
        !           344:    *   printed.
        !           345:    *
        !           346:    * ERRORS
        !           347: 
        !           348: --- 68,74 -----
        !           349:    * RETURNS
        !           350:    *
        !           351:    *   Normally returns the pointer to the newly allocated memory.  If
        !           352: !  *   an error occurs, NULL is returned, and an error message is
        !           353:    *   printed.
        !           354:    *
        !           355:    * ERRORS
        !           356: ***************
        !           357: *** 87,93
        !           358:       char           *mem;
        !           359:       static short    outofmem = 0;
        !           360:   
        !           361: !     if ((mem = (char *)malloc(len)) == NULL && !outofmem) {
        !           362:        outofmem++;
        !           363:        warn("mem_get()", "Out of memory");
        !           364:       }
        !           365: 
        !           366: --- 90,96 -----
        !           367:       char           *mem;
        !           368:       static short    outofmem = 0;
        !           369:   
        !           370: !     if ((mem = (char *)malloc(len)) == (char *)NULL && !outofmem) {
        !           371:        outofmem++;
        !           372:        warn("mem_get()", "Out of memory");
        !           373:       }
        !           374: Index: namelist.c
        !           375: *** /tmp/,RCSt1a19493  Mon Feb 13 09:15:28 1989
        !           376: --- namelist.c Mon Feb 13 09:14:57 1989
        !           377: ***************
        !           378: *** 1,6
        !           379:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           380:    *
        !           381: !  * $Revision: 1.1 $
        !           382:    *
        !           383:    * namelist.c - track filenames given as arguments to tar/cpio/pax
        !           384:    *
        !           385: 
        !           386: --- 1,6 -----
        !           387:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           388:    *
        !           389: !  * $Revision: 1.1 $
        !           390:    *
        !           391:    * namelist.c - track filenames given as arguments to tar/cpio/pax
        !           392:    *
        !           393: ***************
        !           394: *** 23,29
        !           395:    * provided that the above copyright notice is duplicated in all such 
        !           396:    * forms and that any documentation, advertising materials, and other 
        !           397:    * materials related to such distribution and use acknowledge that the 
        !           398: !  * software was developed * by Mark H. Colburn and sponsored by The 
        !           399:    * USENIX Association. 
        !           400:    *
        !           401:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           402: 
        !           403: --- 23,29 -----
        !           404:    * provided that the above copyright notice is duplicated in all such 
        !           405:    * forms and that any documentation, advertising materials, and other 
        !           406:    * materials related to such distribution and use acknowledge that the 
        !           407: !  * software was developed by Mark H. Colburn and sponsored by The 
        !           408:    * USENIX Association. 
        !           409:    *
        !           410:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           411: ***************
        !           412: *** 28,34
        !           413:    *
        !           414:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           415:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           416: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           417:    *
        !           418:    * $Log:     patch2,v $
        !           419: # Revision 1.1  92/08/28  08:02:34  bin
        !           420: # Initial revision
        !           421: # 
        !           422:    * Revision 1.1  88/12/23  18:02:17  mark
        !           423: 
        !           424: --- 28,34 -----
        !           425:    *
        !           426:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           427:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           428: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           429:    *
        !           430:    * $Log:     patch2,v $
        !           431: # Revision 1.1  92/08/28  08:02:34  bin
        !           432: # Initial revision
        !           433: # 
        !           434:    * Revision 1.6  89/02/13  09:14:48  mark
        !           435: ***************
        !           436: *** 31,36
        !           437:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           438:    *
        !           439:    * $Log:     patch2,v $
        !           440: # Revision 1.1  92/08/28  08:02:34  bin
        !           441: # Initial revision
        !           442: # 
        !           443:    * Revision 1.1  88/12/23  18:02:17  mark
        !           444:    * Initial revision
        !           445:    * 
        !           446: 
        !           447: --- 31,51 -----
        !           448:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           449:    *
        !           450:    * $Log:     patch2,v $
        !           451: # Revision 1.1  92/08/28  08:02:34  bin
        !           452: # Initial revision
        !           453: # 
        !           454: +  * Revision 1.6  89/02/13  09:14:48  mark
        !           455: +  * Fixed problem with directory errors
        !           456: +  * 
        !           457: +  * Revision 1.5  89/02/12  12:14:00  mark
        !           458: +  * Fixed misspellings
        !           459: +  * 
        !           460: +  * Revision 1.4  89/02/12  11:25:19  mark
        !           461: +  * Modifications to compile and link cleanly under USG
        !           462: +  * 
        !           463: +  * Revision 1.3  89/02/12  10:40:23  mark
        !           464: +  * Fixed casting problems
        !           465: +  * 
        !           466: +  * Revision 1.2  89/02/12  10:04:57  mark
        !           467: +  * 1.2 release fixes
        !           468: +  * 
        !           469:    * Revision 1.1  88/12/23  18:02:17  mark
        !           470:    * Initial revision
        !           471:    * 
        !           472: ***************
        !           473: *** 37,43
        !           474:    */
        !           475:   
        !           476:   #ifndef lint
        !           477: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           478:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           479:   #endif /* ! lint */
        !           480:   
        !           481: 
        !           482: --- 52,58 -----
        !           483:    */
        !           484:   
        !           485:   #ifndef lint
        !           486: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           487:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           488:   #endif /* ! lint */
        !           489:   
        !           490: ***************
        !           491: *** 68,73
        !           492:   };
        !           493:   
        !           494:   
        !           495:   /* Function Prototypes */
        !           496:   
        !           497:   #ifndef __STDC__
        !           498: 
        !           499: --- 83,93 -----
        !           500:   };
        !           501:   
        !           502:   
        !           503: + /* Static Variables */
        !           504: + 
        !           505: + static struct dirinfo *stack_head = (struct dirinfo *)NULL;
        !           506: + 
        !           507: + 
        !           508:   /* Function Prototypes */
        !           509:   
        !           510:   #ifndef __STDC__
        !           511: ***************
        !           512: *** 123,129
        !           513:       if (!p) {
        !           514:        fatal("cannot allocate memory for namelist entry\n");
        !           515:       }
        !           516: !     p->next = (struct nm_list *) NULL;
        !           517:       p->length = i;
        !           518:       strncpy(p->name, name, i);
        !           519:       p->name[i] = '\0';               /* Null term */
        !           520: 
        !           521: --- 143,149 -----
        !           522:       if (!p) {
        !           523:        fatal("cannot allocate memory for namelist entry\n");
        !           524:       }
        !           525: !     p->next = (struct nm_list *)NULL;
        !           526:       p->length = i;
        !           527:       strncpy(p->name, name, i);
        !           528:       p->name[i] = '\0';               /* Null term */
        !           529: ***************
        !           530: *** 231,237
        !           531:       for (nlp = namelist; nlp != 0; nlp = nlp->next) {
        !           532:        if (!nlp->found) {
        !           533:            fprintf(stderr, "%s: %s not found in archive\n",
        !           534: !                         myname, nlp->name);
        !           535:        }
        !           536:        free(nlp);
        !           537:       }
        !           538: 
        !           539: --- 251,257 -----
        !           540:       for (nlp = namelist; nlp != 0; nlp = nlp->next) {
        !           541:        if (!nlp->found) {
        !           542:            fprintf(stderr, "%s: %s not found in archive\n",
        !           543: !                  myname, nlp->name);
        !           544:        }
        !           545:        free(nlp);
        !           546:       }
        !           547: ***************
        !           548: *** 235,242
        !           549:        }
        !           550:        free(nlp);
        !           551:       }
        !           552: !     namelist = (struct nm_list *) NULL;
        !           553: !     namelast = (struct nm_list *) NULL;
        !           554:   }
        !           555:   
        !           556:   
        !           557: 
        !           558: --- 255,262 -----
        !           559:        }
        !           560:        free(nlp);
        !           561:       }
        !           562: !     namelist = (struct nm_list *)NULL;
        !           563: !     namelast = (struct nm_list *)NULL;
        !           564:   }
        !           565:   
        !           566:   
        !           567: ***************
        !           568: *** 326,332
        !           569:            }
        !           570:        } else {
        !           571:            if (in_subdir) {
        !           572: !              if ((d = readdir(dirp)) != NULL) {
        !           573:                    /* Skip . and .. */
        !           574:                    if (strcmp(d->d_name, ".") == 0 ||
        !           575:                        strcmp(d->d_name, "..") == 0) {
        !           576: 
        !           577: --- 346,352 -----
        !           578:            }
        !           579:        } else {
        !           580:            if (in_subdir) {
        !           581: !              if ((d = readdir(dirp)) != (struct dirent *)NULL) {
        !           582:                    /* Skip . and .. */
        !           583:                    if (strcmp(d->d_name, ".") == 0 ||
        !           584:                        strcmp(d->d_name, "..") == 0) {
        !           585: ***************
        !           586: *** 345,351
        !           587:                    curr_dir = popdir();
        !           588:                    if (in_subdir) {
        !           589:                        errno = 0;
        !           590: !                      if ((dirp = opendir(curr_dir->dirname)) == NULL) {
        !           591:                            warn(curr_dir->dirname, "error opening directory (1)");
        !           592:                            in_subdir--;
        !           593:                        }
        !           594: 
        !           595: --- 365,371 -----
        !           596:                    curr_dir = popdir();
        !           597:                    if (in_subdir) {
        !           598:                        errno = 0;
        !           599: !                      if ((dirp=opendir(curr_dir->dirname)) == (DIR *)NULL) {
        !           600:                            warn(curr_dir->dirname, "error opening directory (1)");
        !           601:                            in_subdir--;
        !           602:                        }
        !           603: ***************
        !           604: *** 360,366
        !           605:            }
        !           606:        }
        !           607:        if ((err = LSTAT(name, statbuf)) < 0) {
        !           608: !          warn(name, syserr());
        !           609:            continue;
        !           610:        }
        !           611:        if (!names_from_stdin && (statbuf->sb_mode & S_IFMT) == S_IFDIR) {
        !           612: 
        !           613: --- 380,386 -----
        !           614:            }
        !           615:        }
        !           616:        if ((err = LSTAT(name, statbuf)) < 0) {
        !           617: !          warn(name, strerror());
        !           618:            continue;
        !           619:        }
        !           620:        if (!names_from_stdin && (statbuf->sb_mode & S_IFMT) == S_IFDIR) {
        !           621: ***************
        !           622: *** 367,373
        !           623:            if (in_subdir) {
        !           624:                curr_dir->where = telldir(dirp);
        !           625:                pushdir(curr_dir);
        !           626: !              close(dirp);
        !           627:            } 
        !           628:            in_subdir++;
        !           629:   
        !           630: 
        !           631: --- 387,393 -----
        !           632:            if (in_subdir) {
        !           633:                curr_dir->where = telldir(dirp);
        !           634:                pushdir(curr_dir);
        !           635: !              closedir(dirp);
        !           636:            } 
        !           637:            in_subdir++;
        !           638:   
        !           639: ***************
        !           640: *** 372,379
        !           641:            in_subdir++;
        !           642:   
        !           643:            /* Build new prototype name */
        !           644: !          if ((curr_dir = (struct dirinfo *) 
        !           645: !                  mem_get(sizeof(struct dirinfo))) == NULL) {
        !           646:                exit(2);
        !           647:            }
        !           648:            strcpy(curr_dir->dirname, name);
        !           649: 
        !           650: --- 392,399 -----
        !           651:            in_subdir++;
        !           652:   
        !           653:            /* Build new prototype name */
        !           654: !          if ((curr_dir = (struct dirinfo *) mem_get(sizeof(struct dirinfo))) 
        !           655: !                        == (struct dirinfo *)NULL) {
        !           656:                exit(2);
        !           657:            }
        !           658:            strcpy(curr_dir->dirname, name);
        !           659: ***************
        !           660: *** 383,393
        !           661:            }
        !           662:            curr_dir->dirname[len++] = '/';     /* Now add exactly one back */
        !           663:            curr_dir->dirname[len] = '\0';/* Make sure null-terminated */
        !           664: ! 
        !           665: !          errno = 0;
        !           666: !          if ((dirp = opendir(curr_dir->dirname)) == NULL) {
        !           667: !              warn(curr_dir->dirname, "error opening directory (2)");
        !           668: !          }
        !           669:        }
        !           670:       } while (err < 0);
        !           671:       return (0);
        !           672: 
        !           673: --- 403,424 -----
        !           674:            }
        !           675:            curr_dir->dirname[len++] = '/';     /* Now add exactly one back */
        !           676:            curr_dir->dirname[len] = '\0';/* Make sure null-terminated */
        !           677: !             curr_dir->where = 0;
        !           678: !            
        !           679: !             errno = 0;
        !           680: !             do {
        !           681: !                 if ((dirp = opendir(curr_dir->dirname)) == (DIR *)NULL) {
        !           682: !                      warn(curr_dir->dirname, "error opening directory (2)");
        !           683: !                      if (in_subdir > 1) {
        !           684: !                           curr_dir = popdir();
        !           685: !                      }
        !           686: !                      in_subdir--;
        !           687: !                      err = -1;
        !           688: !                      continue;
        !           689: !                 } else {
        !           690: !                      seekdir(dirp, curr_dir->where);
        !           691: !              }
        !           692: !          } while (in_subdir && (! dirp));
        !           693:        }
        !           694:       } while (err < 0);
        !           695:       return (0);
        !           696: ***************
        !           697: *** 422,430
        !           698:   }
        !           699:   
        !           700:   
        !           701: - static struct dirinfo *stack_head = NULL;
        !           702: - 
        !           703: - 
        !           704:   /* pushdir - pushes a directory name on the directory stack
        !           705:    *
        !           706:    * DESCRIPTION
        !           707: 
        !           708: --- 453,458 -----
        !           709:   }
        !           710:   
        !           711:   
        !           712:   /* pushdir - pushes a directory name on the directory stack
        !           713:    *
        !           714:    * DESCRIPTION
        !           715: ***************
        !           716: *** 449,455
        !           717:   
        !           718:   #endif
        !           719:   {
        !           720: !     if  (stack_head == NULL) {
        !           721:        stack_head = info;
        !           722:        stack_head->next = NULL;
        !           723:       } else {
        !           724: 
        !           725: --- 477,483 -----
        !           726:   
        !           727:   #endif
        !           728:   {
        !           729: !     if  (stack_head == (struct dirinfo *)NULL) {
        !           730:        stack_head = info;
        !           731:        stack_head->next = (struct dirinfo *)NULL;
        !           732:       } else {
        !           733: ***************
        !           734: *** 451,457
        !           735:   {
        !           736:       if  (stack_head == NULL) {
        !           737:        stack_head = info;
        !           738: !      stack_head->next = NULL;
        !           739:       } else {
        !           740:        info->next = stack_head;
        !           741:        stack_head = info;
        !           742: 
        !           743: --- 479,485 -----
        !           744:   {
        !           745:       if  (stack_head == (struct dirinfo *)NULL) {
        !           746:        stack_head = info;
        !           747: !      stack_head->next = (struct dirinfo *)NULL;
        !           748:       } else {
        !           749:        info->next = stack_head;
        !           750:        stack_head = info;
        !           751: ***************
        !           752: *** 485,492
        !           753:   {
        !           754:       struct dirinfo   *tmp;
        !           755:   
        !           756: !     if (stack_head == NULL) {
        !           757: !      return(NULL);
        !           758:       } else {
        !           759:        tmp = stack_head;
        !           760:        stack_head = stack_head->next;
        !           761: 
        !           762: --- 513,520 -----
        !           763:   {
        !           764:       struct dirinfo   *tmp;
        !           765:   
        !           766: !     if (stack_head == (struct dirinfo *)NULL) {
        !           767: !      return((struct dirinfo *)NULL);
        !           768:       } else {
        !           769:        tmp = stack_head;
        !           770:        stack_head = stack_head->next;
        !           771: Index: names.c
        !           772: *** /tmp/,RCSt1a17093  Sun Feb 12 14:07:34 1989
        !           773: --- names.c    Sun Feb 12 14:02:17 1989
        !           774: ***************
        !           775: *** 1,6
        !           776:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           777:    *
        !           778: !  * $Revision: 1.1 $
        !           779:    *
        !           780:    * names.c - Look up user and/or group names. 
        !           781:    *
        !           782: 
        !           783: --- 1,6 -----
        !           784:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           785:    *
        !           786: !  * $Revision: 1.1 $
        !           787:    *
        !           788:    * names.c - Look up user and/or group names. 
        !           789:    *
        !           790: ***************
        !           791: *** 27,33
        !           792:    *
        !           793:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           794:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           795: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           796:    *
        !           797:    * $Log:     patch2,v $
        !           798: # Revision 1.1  92/08/28  08:02:34  bin
        !           799: # Initial revision
        !           800: # 
        !           801:    * Revision 1.1  88/12/23  18:02:19  mark
        !           802: 
        !           803: --- 27,33 -----
        !           804:    *
        !           805:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           806:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           807: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           808:    *
        !           809:    * $Log:     patch2,v $
        !           810: # Revision 1.1  92/08/28  08:02:34  bin
        !           811: # Initial revision
        !           812: # 
        !           813:    * Revision 1.2  89/02/12  10:05:05  mark
        !           814: ***************
        !           815: *** 30,35
        !           816:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           817:    *
        !           818:    * $Log:     patch2,v $
        !           819: # Revision 1.1  92/08/28  08:02:34  bin
        !           820: # Initial revision
        !           821: # 
        !           822:    * Revision 1.1  88/12/23  18:02:19  mark
        !           823:    * Initial revision
        !           824:    * 
        !           825: 
        !           826: --- 30,38 -----
        !           827:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           828:    *
        !           829:    * $Log:     patch2,v $
        !           830: # Revision 1.1  92/08/28  08:02:34  bin
        !           831: # Initial revision
        !           832: # 
        !           833: +  * Revision 1.2  89/02/12  10:05:05  mark
        !           834: +  * 1.2 release fixes
        !           835: +  * 
        !           836:    * Revision 1.1  88/12/23  18:02:19  mark
        !           837:    * Initial revision
        !           838:    * 
        !           839: ***************
        !           840: *** 36,42
        !           841:    */
        !           842:   
        !           843:   #ifndef lint
        !           844: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           845:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           846:   #endif /* ! lint */
        !           847:   
        !           848: 
        !           849: --- 39,45 -----
        !           850:    */
        !           851:   
        !           852:   #ifndef lint
        !           853: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           854:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           855:   #endif /* ! lint */
        !           856:   
        !           857: Index: pass.c
        !           858: *** /tmp/,RCSt1a17098  Sun Feb 12 14:07:40 1989
        !           859: --- pass.c     Sun Feb 12 14:02:19 1989
        !           860: ***************
        !           861: *** 1,6
        !           862:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           863:    *
        !           864: !  * $Revision: 1.1 $
        !           865:    *
        !           866:    * pass.c - handle the pass option of cpio
        !           867:    *
        !           868: 
        !           869: --- 1,6 -----
        !           870:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !           871:    *
        !           872: !  * $Revision: 1.1 $
        !           873:    *
        !           874:    * pass.c - handle the pass option of cpio
        !           875:    *
        !           876: ***************
        !           877: *** 27,33
        !           878:    *
        !           879:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           880:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           881: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           882:    *
        !           883:    * $Log:     patch2,v $
        !           884: # Revision 1.1  92/08/28  08:02:34  bin
        !           885: # Initial revision
        !           886: # 
        !           887:    * Revision 1.1  88/12/23  18:02:20  mark
        !           888: 
        !           889: --- 27,33 -----
        !           890:    *
        !           891:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !           892:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !           893: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           894:    *
        !           895:    * $Log:     patch2,v $
        !           896: # Revision 1.1  92/08/28  08:02:34  bin
        !           897: # Initial revision
        !           898: # 
        !           899:    * Revision 1.3  89/02/12  10:29:51  mark
        !           900: ***************
        !           901: *** 30,35
        !           902:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           903:    *
        !           904:    * $Log:     patch2,v $
        !           905: # Revision 1.1  92/08/28  08:02:34  bin
        !           906: # Initial revision
        !           907: # 
        !           908:    * Revision 1.1  88/12/23  18:02:20  mark
        !           909:    * Initial revision
        !           910:    * 
        !           911: 
        !           912: --- 30,41 -----
        !           913:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !           914:    *
        !           915:    * $Log:     patch2,v $
        !           916: # Revision 1.1  92/08/28  08:02:34  bin
        !           917: # Initial revision
        !           918: # 
        !           919: +  * Revision 1.3  89/02/12  10:29:51  mark
        !           920: +  * Fixed misspelling of Replstr
        !           921: +  * 
        !           922: +  * Revision 1.2  89/02/12  10:05:09  mark
        !           923: +  * 1.2 release fixes
        !           924: +  * 
        !           925:    * Revision 1.1  88/12/23  18:02:20  mark
        !           926:    * Initial revision
        !           927:    * 
        !           928: ***************
        !           929: *** 36,42
        !           930:    */
        !           931:   
        !           932:   #ifndef lint
        !           933: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           934:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           935:   #endif /* ! lint */
        !           936:   
        !           937: 
        !           938: --- 42,48 -----
        !           939:    */
        !           940:   
        !           941:   #ifndef lint
        !           942: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !           943:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !           944:   #endif /* ! lint */
        !           945:   
        !           946: ***************
        !           947: *** 74,80
        !           948:       int             fd;
        !           949:       Stat            sb;
        !           950:   
        !           951: !     while (name_next(name, &sb) >= 0 && (fd = openi(name, &sb)) >= 0) {
        !           952:   
        !           953:        if (rplhead != NULL) {
        !           954:            rpl_name(name);
        !           955: 
        !           956: --- 80,86 -----
        !           957:       int             fd;
        !           958:       Stat            sb;
        !           959:   
        !           960: !     while (name_next(name, &sb) >= 0 && (fd = openin(name, &sb)) >= 0) {
        !           961:   
        !           962:        if (rplhead != (Replstr *)NULL) {
        !           963:            rpl_name(name);
        !           964: ***************
        !           965: *** 76,82
        !           966:   
        !           967:       while (name_next(name, &sb) >= 0 && (fd = openi(name, &sb)) >= 0) {
        !           968:   
        !           969: !      if (rplhead != NULL) {
        !           970:            rpl_name(name);
        !           971:        }
        !           972:        if (get_disposition("pass", name) || get_newname(name, sizeof(name))) {
        !           973: 
        !           974: --- 82,88 -----
        !           975:   
        !           976:       while (name_next(name, &sb) >= 0 && (fd = openin(name, &sb)) >= 0) {
        !           977:   
        !           978: !      if (rplhead != (Replstr *)NULL) {
        !           979:            rpl_name(name);
        !           980:        }
        !           981:        if (get_disposition("pass", name) || get_newname(name, sizeof(name))) {
        !           982: ***************
        !           983: *** 139,147
        !           984:        return (-1);
        !           985:       }
        !           986:       if (asb->sb_nlink > 1) {
        !           987: -      if (f_link && islink(from, asb) == (Link *) NULL) {
        !           988: -          linkto(from, asb);
        !           989: -      }
        !           990:        linkto(to, asb);
        !           991:       }
        !           992:       if ((ofd = openo(to, asb, islink(to, asb), 1)) < 0) {
        !           993: 
        !           994: --- 145,150 -----
        !           995:        return (-1);
        !           996:       }
        !           997:       if (asb->sb_nlink > 1) {
        !           998:        linkto(to, asb);
        !           999:       }
        !          1000:       if (f_link && islink(from, asb) == (Link *)NULL) {
        !          1001: ***************
        !          1002: *** 144,150
        !          1003:        }
        !          1004:        linkto(to, asb);
        !          1005:       }
        !          1006: !     if ((ofd = openo(to, asb, islink(to, asb), 1)) < 0) {
        !          1007:        return (-1);
        !          1008:       }
        !          1009:       if (ofd > 0) {
        !          1010: 
        !          1011: --- 147,156 -----
        !          1012:       if (asb->sb_nlink > 1) {
        !          1013:        linkto(to, asb);
        !          1014:       }
        !          1015: !     if (f_link && islink(from, asb) == (Link *)NULL) {
        !          1016: !      linkto(from, asb);
        !          1017: !     }
        !          1018: !     if ((ofd = openout(to, asb, islink(to, asb), 1)) < 0) {
        !          1019:        return (-1);
        !          1020:       }
        !          1021:       if (ofd > 0) {
        !          1022: ***************
        !          1023: *** 151,157
        !          1024:        passdata(from, ifd, to, ofd);
        !          1025:       }
        !          1026:       tstamp[0] = asb->sb_atime;
        !          1027: !     tstamp[1] = f_modification_time ? asb->sb_mtime : time((time_t *) 0);
        !          1028:       utime(to, tstamp);
        !          1029:       return (ifd);
        !          1030:   }
        !          1031: 
        !          1032: --- 157,163 -----
        !          1033:        passdata(from, ifd, to, ofd);
        !          1034:       }
        !          1035:       tstamp[0] = asb->sb_atime;
        !          1036: !     tstamp[1] = f_mtime ? asb->sb_mtime : time((time_t *) 0);
        !          1037:       utime(to, tstamp);
        !          1038:       return (ifd);
        !          1039:   }
        !          1040: Index: pathname.c
        !          1041: *** /tmp/,RCSt1a17103  Sun Feb 12 14:07:46 1989
        !          1042: --- pathname.c Sun Feb 12 14:02:21 1989
        !          1043: ***************
        !          1044: *** 1,6
        !          1045:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1046:    *
        !          1047: !  * $Revision: 1.1 $
        !          1048:    *
        !          1049:    * pathname.c - directory/pathname support functions 
        !          1050:    *
        !          1051: 
        !          1052: --- 1,6 -----
        !          1053:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1054:    *
        !          1055: !  * $Revision: 1.1 $
        !          1056:    *
        !          1057:    * pathname.c - directory/pathname support functions 
        !          1058:    *
        !          1059: ***************
        !          1060: *** 26,32
        !          1061:    *
        !          1062:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1063:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1064: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1065:    *
        !          1066:    * $Log:     patch2,v $
        !          1067: # Revision 1.1  92/08/28  08:02:34  bin
        !          1068: # Initial revision
        !          1069: # 
        !          1070:    * Revision 1.1  88/12/23  18:02:21  mark
        !          1071: 
        !          1072: --- 26,32 -----
        !          1073:    *
        !          1074:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1075:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1076: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1077:    *
        !          1078:    * $Log:     patch2,v $
        !          1079: # Revision 1.1  92/08/28  08:02:34  bin
        !          1080: # Initial revision
        !          1081: # 
        !          1082:    * Revision 1.2  89/02/12  10:05:13  mark
        !          1083: ***************
        !          1084: *** 29,34
        !          1085:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1086:    *
        !          1087:    * $Log:     patch2,v $
        !          1088: # Revision 1.1  92/08/28  08:02:34  bin
        !          1089: # Initial revision
        !          1090: # 
        !          1091:    * Revision 1.1  88/12/23  18:02:21  mark
        !          1092:    * Initial revision
        !          1093:    * 
        !          1094: 
        !          1095: --- 29,37 -----
        !          1096:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1097:    *
        !          1098:    * $Log:     patch2,v $
        !          1099: # Revision 1.1  92/08/28  08:02:34  bin
        !          1100: # Initial revision
        !          1101: # 
        !          1102: +  * Revision 1.2  89/02/12  10:05:13  mark
        !          1103: +  * 1.2 release fixes
        !          1104: +  * 
        !          1105:    * Revision 1.1  88/12/23  18:02:21  mark
        !          1106:    * Initial revision
        !          1107:    * 
        !          1108: ***************
        !          1109: *** 35,41
        !          1110:    */
        !          1111:   
        !          1112:   #ifndef lint
        !          1113: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !          1114:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !          1115:   #endif /* ! lint */
        !          1116:   
        !          1117: 
        !          1118: --- 38,44 -----
        !          1119:    */
        !          1120:   
        !          1121:   #ifndef lint
        !          1122: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !          1123:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !          1124:   #endif /* ! lint */
        !          1125:   
        !          1126: ***************
        !          1127: *** 51,57
        !          1128:    *
        !          1129:    *   Dirneed checks to see if a directory of the name pointed to by name
        !          1130:    *   exists.  If the directory does exist, then dirneed returns 0.  If
        !          1131: !  *   the directory does not exist and the f_create_dirs flag is set,
        !          1132:    *   then dirneed will create the needed directory, recursively creating
        !          1133:    *   any needed intermediate directory.
        !          1134:    *
        !          1135: 
        !          1136: --- 54,60 -----
        !          1137:    *
        !          1138:    *   Dirneed checks to see if a directory of the name pointed to by name
        !          1139:    *   exists.  If the directory does exist, then dirneed returns 0.  If
        !          1140: !  *   the directory does not exist and the f_dir_create flag is set,
        !          1141:    *   then dirneed will create the needed directory, recursively creating
        !          1142:    *   any needed intermediate directory.
        !          1143:    *
        !          1144: ***************
        !          1145: *** 55,61
        !          1146:    *   then dirneed will create the needed directory, recursively creating
        !          1147:    *   any needed intermediate directory.
        !          1148:    *
        !          1149: !  *   If f_create_dirs is not set, then no directories will be created
        !          1150:    *   and a value of -1 will be returned if the directory does not
        !          1151:    *   exist.
        !          1152:    *
        !          1153: 
        !          1154: --- 58,64 -----
        !          1155:    *   then dirneed will create the needed directory, recursively creating
        !          1156:    *   any needed intermediate directory.
        !          1157:    *
        !          1158: !  *   If f_dir_create is not set, then no directories will be created
        !          1159:    *   and a value of -1 will be returned if the directory does not
        !          1160:    *   exist.
        !          1161:    *
        !          1162: ***************
        !          1163: *** 66,72
        !          1164:    * RETURNS
        !          1165:    *
        !          1166:    *   Returns a 0 if the creation of the directory succeeded or if the
        !          1167: !  *   directory already existed.  If the f_create_dirs flag was not set
        !          1168:    *   and the named directory does not exist, or the directory creation 
        !          1169:    *   failed, a -1 will be returned to the calling routine.
        !          1170:    */
        !          1171: 
        !          1172: --- 69,75 -----
        !          1173:    * RETURNS
        !          1174:    *
        !          1175:    *   Returns a 0 if the creation of the directory succeeded or if the
        !          1176: !  *   directory already existed.  If the f_dir_create flag was not set
        !          1177:    *   and the named directory does not exist, or the directory creation 
        !          1178:    *   failed, a -1 will be returned to the calling routine.
        !          1179:    */
        !          1180: ***************
        !          1181: *** 87,93
        !          1182:       int             ok;
        !          1183:       static Stat     sb;
        !          1184:   
        !          1185: !     last = NULL;
        !          1186:       for (cp = name; *cp;) {
        !          1187:        if (*cp++ == '/') {
        !          1188:            last = cp;
        !          1189: 
        !          1190: --- 90,96 -----
        !          1191:       int             ok;
        !          1192:       static Stat     sb;
        !          1193:   
        !          1194: !     last = (char *)NULL;
        !          1195:       for (cp = name; *cp;) {
        !          1196:        if (*cp++ == '/') {
        !          1197:            last = cp;
        !          1198: ***************
        !          1199: *** 93,99
        !          1200:            last = cp;
        !          1201:        }
        !          1202:       }
        !          1203: !     if (last == NULL) {
        !          1204:        return (STAT(".", &sb));
        !          1205:       }
        !          1206:       *--last = '\0';
        !          1207: 
        !          1208: --- 96,102 -----
        !          1209:            last = cp;
        !          1210:        }
        !          1211:       }
        !          1212: !     if (last == (char *)NULL) {
        !          1213:        return (STAT(".", &sb));
        !          1214:       }
        !          1215:       *--last = '\0';
        !          1216: ***************
        !          1217: *** 99,105
        !          1218:       *--last = '\0';
        !          1219:       ok = STAT(*name ? name : ".", &sb) == 0
        !          1220:        ? ((sb.sb_mode & S_IFMT) == S_IFDIR)
        !          1221: !      : (f_create_dirs && dirneed(name) == 0 && dirmake(name, &sb) == 0);
        !          1222:       *last = '/';
        !          1223:       return (ok ? 0 : -1);
        !          1224:   }
        !          1225: 
        !          1226: --- 102,108 -----
        !          1227:       *--last = '\0';
        !          1228:       ok = STAT(*name ? name : ".", &sb) == 0
        !          1229:        ? ((sb.sb_mode & S_IFMT) == S_IFDIR)
        !          1230: !      : (f_dir_create && dirneed(name) == 0 && dirmake(name, &sb) == 0);
        !          1231:       *last = '/';
        !          1232:       return (ok ? 0 : -1);
        !          1233:   }
        !          1234: ***************
        !          1235: *** 176,182
        !          1236:       if (idx == 0) {
        !          1237:        element[idx++] = absolute ? "" : "."; 
        !          1238:       }
        !          1239: !     element[idx] = NULL;
        !          1240:       name = begin;
        !          1241:       if (absolute) {
        !          1242:        *name++ = '/';
        !          1243: 
        !          1244: --- 179,185 -----
        !          1245:       if (idx == 0) {
        !          1246:        element[idx++] = absolute ? "" : "."; 
        !          1247:       }
        !          1248: !     element[idx] = (char *)NULL;
        !          1249:       name = begin;
        !          1250:       if (absolute) {
        !          1251:        *name++ = '/';
        !          1252: Index: pax.1
        !          1253: *** /tmp/,RCSt1a17108  Sun Feb 12 14:07:54 1989
        !          1254: --- pax.1      Sun Feb 12 14:02:22 1989
        !          1255: ***************
        !          1256: *** 1,4
        !          1257: ! .\" $Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $
        !          1258:   .TH PAX 1 "USENIX Association" ""
        !          1259:   .SH NAME
        !          1260:   pax \- portable archive exchange 
        !          1261: 
        !          1262: --- 1,4 -----
        !          1263: ! .\" $Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $
        !          1264:   .TH PAX 1 "USENIX Association" ""
        !          1265:   .SH NAME
        !          1266:   pax \- portable archive exchange 
        !          1267: ***************
        !          1268: *** 213,218
        !          1269:   suffix multiplies 
        !          1270:   .I blocking 
        !          1271:   by 1048576 (1 megabyte).
        !          1272:   If not specified,
        !          1273:   .I blocking 
        !          1274:   is automatically determined on input and is ignored for 
        !          1275: 
        !          1276: --- 213,220 -----
        !          1277:   suffix multiplies 
        !          1278:   .I blocking 
        !          1279:   by 1048576 (1 megabyte).
        !          1280: + For machines with 16-bit int's (VAXen, XENIX-286, etc.), 
        !          1281: + the maximum buffer size is 32k-1.
        !          1282:   If not specified,
        !          1283:   .I blocking 
        !          1284:   is automatically determined on input and is ignored for 
        !          1285: ***************
        !          1286: *** 219,225
        !          1287:   .B \-rw.
        !          1288:   .TP 1i
        !          1289:   .B \-c
        !          1290: ! Complement the match sense of the the 
        !          1291:   .I pattern
        !          1292:   operands.
        !          1293:   .TP 1i
        !          1294: 
        !          1295: --- 221,227 -----
        !          1296:   .B \-rw.
        !          1297:   .TP 1i
        !          1298:   .B \-c
        !          1299: ! Complement the match sense of the 
        !          1300:   .I pattern
        !          1301:   operands.
        !          1302:   .TP 1i
        !          1303: ***************
        !          1304: *** 352,358
        !          1305:   .B \-r 
        !          1306:   option is used.
        !          1307:   The supported formats are:
        !          1308: ! .TP 1i
        !          1309:   .I cpio
        !          1310:   The extended 
        !          1311:   .I CPIO
        !          1312: 
        !          1313: --- 354,361 -----
        !          1314:   .B \-r 
        !          1315:   option is used.
        !          1316:   The supported formats are:
        !          1317: ! .RS 1i
        !          1318: ! .TP 0.75i
        !          1319:   .I cpio
        !          1320:   The extended 
        !          1321:   .I CPIO
        !          1322: ***************
        !          1323: *** 359,365
        !          1324:   interchange format specified in
        !          1325:   .B "Extended CPIO Format" in 
        !          1326:   .I "IEEE Std. 1003.1-1988."
        !          1327: ! .TP 1i
        !          1328:   .I ustar
        !          1329:   The extended 
        !          1330:   .I TAR
        !          1331: 
        !          1332: --- 362,368 -----
        !          1333:   interchange format specified in
        !          1334:   .B "Extended CPIO Format" in 
        !          1335:   .I "IEEE Std. 1003.1-1988."
        !          1336: ! .TP 0.75i
        !          1337:   .I ustar
        !          1338:   The extended 
        !          1339:   .I TAR
        !          1340: ***************
        !          1341: *** 540,545
        !          1342:   format archives, link counts are listed as zero since the 
        !          1343:   .I ustar
        !          1344:   archive format does not keep link count information.
        !          1345:   .SH COPYRIGHT
        !          1346:   Copyright (c) 1989 Mark H. Colburn.  
        !          1347:   .br
        !          1348: 
        !          1349: --- 543,553 -----
        !          1350:   format archives, link counts are listed as zero since the 
        !          1351:   .I ustar
        !          1352:   archive format does not keep link count information.
        !          1353: + .PP
        !          1354: + On 16 bit architectures, the largest buffer size is 32k-1.
        !          1355: + This is due, in part, to using integers in the buffer allocation schemes,
        !          1356: + however, on many of these machines, it is not possible to allocate blocks
        !          1357: + of memory larger than 32k.
        !          1358:   .SH COPYRIGHT
        !          1359:   Copyright (c) 1989 Mark H. Colburn.  
        !          1360:   .br
        !          1361: ***************
        !          1362: *** 554,560
        !          1363:   .PP
        !          1364:   THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1365:   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1366: ! WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1367:   .SH AUTHOR
        !          1368:   Mark H. Colburn
        !          1369:   .br
        !          1370: 
        !          1371: --- 562,568 -----
        !          1372:   .PP
        !          1373:   THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1374:   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1375: ! WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1376:   .SH AUTHOR
        !          1377:   Mark H. Colburn
        !          1378:   .br
        !          1379: ***************
        !          1380: *** 558,564
        !          1381:   .SH AUTHOR
        !          1382:   Mark H. Colburn
        !          1383:   .br
        !          1384: ! NAPS International
        !          1385:   .br
        !          1386:   117 Mackubin Street, Suite 1
        !          1387:   .br
        !          1388: 
        !          1389: --- 566,572 -----
        !          1390:   .SH AUTHOR
        !          1391:   Mark H. Colburn
        !          1392:   .br
        !          1393: ! Minnetech Consulting, Inc.
        !          1394:   .br
        !          1395:   117 Mackubin Street, Suite 1
        !          1396:   .br
        !          1397: Index: pax.c
        !          1398: *** /tmp/,RCSt1a17113  Sun Feb 12 14:08:07 1989
        !          1399: --- pax.c      Sun Feb 12 14:02:25 1989
        !          1400: ***************
        !          1401: *** 1,6
        !          1402:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1403:    *
        !          1404: !  * $Revision: 1.1 $
        !          1405:    *
        !          1406:    * DESCRIPTION
        !          1407:    *
        !          1408: 
        !          1409: --- 1,6 -----
        !          1410:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1411:    *
        !          1412: !  * $Revision: 1.1 $
        !          1413:    *
        !          1414:    * DESCRIPTION
        !          1415:    *
        !          1416: ***************
        !          1417: *** 46,52
        !          1418:    *
        !          1419:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1420:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1421: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1422:    *
        !          1423:    * $Log:     patch2,v $
        !          1424: # Revision 1.1  92/08/28  08:02:34  bin
        !          1425: # Initial revision
        !          1426: # 
        !          1427:    * Revision 1.1  88/12/23  18:02:23  mark
        !          1428: 
        !          1429: --- 46,52 -----
        !          1430:    *
        !          1431:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1432:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1433: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1434:    *
        !          1435:    * $Log:     patch2,v $
        !          1436: # Revision 1.1  92/08/28  08:02:34  bin
        !          1437: # Initial revision
        !          1438: # 
        !          1439:    * Revision 1.2  89/02/12  10:05:17  mark
        !          1440: ***************
        !          1441: *** 49,54
        !          1442:    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1443:    *
        !          1444:    * $Log:     patch2,v $
        !          1445: # Revision 1.1  92/08/28  08:02:34  bin
        !          1446: # Initial revision
        !          1447: # 
        !          1448:    * Revision 1.1  88/12/23  18:02:23  mark
        !          1449:    * Initial revision
        !          1450:    * 
        !          1451: 
        !          1452: --- 49,57 -----
        !          1453:    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1454:    *
        !          1455:    * $Log:     patch2,v $
        !          1456: # Revision 1.1  92/08/28  08:02:34  bin
        !          1457: # Initial revision
        !          1458: # 
        !          1459: +  * Revision 1.2  89/02/12  10:05:17  mark
        !          1460: +  * 1.2 release fixes
        !          1461: +  * 
        !          1462:    * Revision 1.1  88/12/23  18:02:23  mark
        !          1463:    * Initial revision
        !          1464:    * 
        !          1465: ***************
        !          1466: *** 55,61
        !          1467:    */
        !          1468:   
        !          1469:   #ifndef lint
        !          1470: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !          1471:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !          1472:   #endif /* ! lint */
        !          1473:   
        !          1474: 
        !          1475: --- 58,64 -----
        !          1476:    */
        !          1477:   
        !          1478:   #ifndef lint
        !          1479: ! static char *ident = "$Id: patch2,v 1.1 92/08/28 08:02:34 bin Exp Locker: bin $";
        !          1480:   static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !          1481:   #endif /* ! lint */
        !          1482:   
        !          1483: ***************
        !          1484: *** 88,94
        !          1485:   OFFSET          total;                       /* Total number of bytes transferred */
        !          1486:   short           f_access_time;               /* Reset access times of input files */
        !          1487:   short           areof;                       /* End of input volume reached */
        !          1488: ! short           f_create_dirs;               /* Create missing directories */
        !          1489:   short           f_append;            /* Add named files to end of archive */
        !          1490:   short           f_create;            /* create a new archive */
        !          1491:   short           f_extract;           /* Extract named files from archive */
        !          1492: 
        !          1493: --- 91,97 -----
        !          1494:   OFFSET          total;                       /* Total number of bytes transferred */
        !          1495:   short           f_access_time;               /* Reset access times of input files */
        !          1496:   short           areof;                       /* End of input volume reached */
        !          1497: ! short           f_dir_create;                /* Create missing directories */
        !          1498:   short           f_append;            /* Add named files to end of archive */
        !          1499:   short           f_create;            /* create a new archive */
        !          1500:   short           f_extract;           /* Extract named files from archive */
        !          1501: ***************
        !          1502: *** 104,110
        !          1503:   short           f_newer;             /* append files to archive if newer */
        !          1504:   short                f_disposition;          /* ask for file disposition */
        !          1505:   short           f_reverse_match;     /* Reverse sense of pattern match */
        !          1506: ! short           f_modification_time; /* Retain file modification time */
        !          1507:   short           f_unconditional;     /* Copy unconditionally */
        !          1508:   time_t          now = 0;             /* Current time */
        !          1509:   uint            arvolume;            /* Volume number */
        !          1510: 
        !          1511: --- 107,113 -----
        !          1512:   short           f_newer;             /* append files to archive if newer */
        !          1513:   short                f_disposition;          /* ask for file disposition */
        !          1514:   short           f_reverse_match;     /* Reverse sense of pattern match */
        !          1515: ! short           f_mtime;             /* Retain file modification time */
        !          1516:   short           f_unconditional;     /* Copy unconditionally */
        !          1517:   time_t          now = 0;             /* Current time */
        !          1518:   uint            arvolume;            /* Volume number */
        !          1519: ***************
        !          1520: *** 110,116
        !          1521:   uint            arvolume;            /* Volume number */
        !          1522:   uint            blocksize = BLOCKSIZE;       /* Archive block size */
        !          1523:   FILE        *msgfile;                /* message outpu file stdout/stderr */
        !          1524: ! Replstr        *rplhead = NULL;              /* pointer to head of replstr list */
        !          1525:   Replstr        *rpltail;             /* pointer to tail of replstr list */
        !          1526:   
        !          1527:   
        !          1528: 
        !          1529: --- 113,119 -----
        !          1530:   uint            arvolume;            /* Volume number */
        !          1531:   uint            blocksize = BLOCKSIZE;       /* Archive block size */
        !          1532:   FILE        *msgfile;                /* message outpu file stdout/stderr */
        !          1533: ! Replstr        *rplhead = (Replstr *)NULL;   /*  head of replstr list */
        !          1534:   Replstr        *rpltail;             /* pointer to tail of replstr list */
        !          1535:   
        !          1536:   
        !          1537: ***************
        !          1538: *** 234,241
        !          1539:        * of the tar and/or cpio interfaces...
        !          1540:        */
        !          1541:       f_unconditional = 1;
        !          1542: !     f_modification_time = 1;
        !          1543: !     f_create_dirs = 1;
        !          1544:       f_list = 1;
        !          1545:       blocksize = 0;
        !          1546:       blocking = 0;
        !          1547: 
        !          1548: --- 237,244 -----
        !          1549:        * of the tar and/or cpio interfaces...
        !          1550:        */
        !          1551:       f_unconditional = 1;
        !          1552: !     f_mtime = 1;
        !          1553: !     f_dir_create = 1;
        !          1554:       f_list = 1;
        !          1555:       blocksize = 0;
        !          1556:       blocking = 0;
        !          1557: ***************
        !          1558: *** 258,264
        !          1559:            f_reverse_match = 1;
        !          1560:            break;
        !          1561:        case 'd':
        !          1562: !          f_create_dirs = 0;
        !          1563:            break;
        !          1564:        case 'f':
        !          1565:            if (blocksize == 0) {
        !          1566: 
        !          1567: --- 261,267 -----
        !          1568:            f_reverse_match = 1;
        !          1569:            break;
        !          1570:        case 'd':
        !          1571: !          f_dir_create = 0;
        !          1572:            break;
        !          1573:        case 'f':
        !          1574:            if (blocksize == 0) {
        !          1575: ***************
        !          1576: *** 274,280
        !          1577:            f_link = 1;
        !          1578:            break;
        !          1579:        case 'm':
        !          1580: !          f_modification_time = 0;
        !          1581:            break;
        !          1582:        case 'o':
        !          1583:            f_owner = 1;
        !          1584: 
        !          1585: --- 277,283 -----
        !          1586:            f_link = 1;
        !          1587:            break;
        !          1588:        case 'm':
        !          1589: !          f_mtime = 0;
        !          1590:            break;
        !          1591:        case 'o':
        !          1592:            f_owner = 1;
        !          1593: ***************
        !          1594: *** 358,364
        !          1595:       } else if (f_pass && optind < n_argc) {
        !          1596:        dirname = n_argv[--n_argc];
        !          1597:        if (LSTAT(dirname, &st) < 0) {
        !          1598: !          fatal(syserr());
        !          1599:        }
        !          1600:        if ((st.sb_mode & S_IFMT) != S_IFDIR) {
        !          1601:            fatal("Not a directory");
        !          1602: 
        !          1603: --- 361,367 -----
        !          1604:       } else if (f_pass && optind < n_argc) {
        !          1605:        dirname = n_argv[--n_argc];
        !          1606:        if (LSTAT(dirname, &st) < 0) {
        !          1607: !          fatal(strerror());
        !          1608:        }
        !          1609:        if ((st.sb_mode & S_IFMT) != S_IFDIR) {
        !          1610:            fatal("Not a directory");
        !          1611: ***************
        !          1612: *** 465,471
        !          1613:            number = number * 10 + *idx++ - '0';
        !          1614:        switch (*idx++) {
        !          1615:        case 'b':
        !          1616: !          result += number * 512;
        !          1617:            continue;
        !          1618:        case 'k':
        !          1619:            result += number * 1024;
        !          1620: 
        !          1621: --- 468,474 -----
        !          1622:            number = number * 10 + *idx++ - '0';
        !          1623:        switch (*idx++) {
        !          1624:        case 'b':
        !          1625: !          result += number * 512L;
        !          1626:            continue;
        !          1627:        case 'k':
        !          1628:            result += number * 1024L;
        !          1629: ***************
        !          1630: *** 468,474
        !          1631:            result += number * 512;
        !          1632:            continue;
        !          1633:        case 'k':
        !          1634: !          result += number * 1024;
        !          1635:            continue;
        !          1636:        case 'm':
        !          1637:            result += number * 1024 * 1024;
        !          1638: 
        !          1639: --- 471,477 -----
        !          1640:            result += number * 512L;
        !          1641:            continue;
        !          1642:        case 'k':
        !          1643: !          result += number * 1024L;
        !          1644:            continue;
        !          1645:        case 'm':
        !          1646:            result += number * 1024L * 1024L;
        !          1647: ***************
        !          1648: *** 471,477
        !          1649:            result += number * 1024;
        !          1650:            continue;
        !          1651:        case 'm':
        !          1652: !          result += number * 1024 * 1024;
        !          1653:            continue;
        !          1654:        case '+':
        !          1655:            result += number;
        !          1656: 
        !          1657: --- 474,480 -----
        !          1658:            result += number * 1024L;
        !          1659:            continue;
        !          1660:        case 'm':
        !          1661: !          result += number * 1024L * 1024L;
        !          1662:            continue;
        !          1663:        case '+':
        !          1664:            result += number;
        !          1665: ***************
        !          1666: *** 515,522
        !          1667:   
        !          1668:   #endif
        !          1669:   {
        !          1670: !     fprintf(stderr, "\
        !          1671: ! Usage: %s -[cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1672:        myname);
        !          1673:       fprintf(stderr, "\
        !          1674:          %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1675: 
        !          1676: --- 518,524 -----
        !          1677:   
        !          1678:   #endif
        !          1679:   {
        !          1680: !     fprintf(stderr, "Usage: %s -[cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1681:        myname);
        !          1682:       fprintf(stderr, "       %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1683:        myname);
        !          1684: ***************
        !          1685: *** 518,525
        !          1686:       fprintf(stderr, "\
        !          1687:   Usage: %s -[cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1688:        myname);
        !          1689: !     fprintf(stderr, "\
        !          1690: !        %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1691:        myname);
        !          1692:       fprintf(stderr, "\
        !          1693:          %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n\
        !          1694: 
        !          1695: --- 520,526 -----
        !          1696:   {
        !          1697:       fprintf(stderr, "Usage: %s -[cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1698:        myname);
        !          1699: !     fprintf(stderr, "       %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1700:        myname);
        !          1701:       fprintf(stderr, "       %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n              [-t device] [-x format] [pathname...]\n",
        !          1702:        myname);
        !          1703: ***************
        !          1704: *** 521,529
        !          1705:       fprintf(stderr, "\
        !          1706:          %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1707:        myname);
        !          1708: !     fprintf(stderr, "\
        !          1709: !        %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n\
        !          1710: !         [-t device] [-x format] [pathname...]\n",
        !          1711:        myname);
        !          1712:       fprintf(stderr, "\
        !          1713:          %s -r -w [-ilmopuvy] [-s replstr] [pathname...] directory\n",
        !          1714: 
        !          1715: --- 522,528 -----
        !          1716:        myname);
        !          1717:       fprintf(stderr, "       %s -r [-cimopuvy] [-f archive] [-s replstr] [-t device] [pattern...]\n",
        !          1718:        myname);
        !          1719: !     fprintf(stderr, "       %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n              [-t device] [-x format] [pathname...]\n",
        !          1720:        myname);
        !          1721:       fprintf(stderr, "       %s -r -w [-ilmopuvy] [-s replstr] [pathname...] directory\n",
        !          1722:        myname);
        !          1723: ***************
        !          1724: *** 525,532
        !          1725:          %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n\
        !          1726:           [-t device] [-x format] [pathname...]\n",
        !          1727:        myname);
        !          1728: !     fprintf(stderr, "\
        !          1729: !        %s -r -w [-ilmopuvy] [-s replstr] [pathname...] directory\n",
        !          1730:        myname);
        !          1731:       exit(1);
        !          1732:   }
        !          1733: 
        !          1734: --- 524,530 -----
        !          1735:        myname);
        !          1736:       fprintf(stderr, "       %s -w [-adimuvy] [-b blocking] [-f archive] [-s replstr]\n              [-t device] [-x format] [pathname...]\n",
        !          1737:        myname);
        !          1738: !     fprintf(stderr, "       %s -r -w [-ilmopuvy] [-s replstr] [pathname...] directory\n",
        !          1739:        myname);
        !          1740:       exit(1);
        !          1741:   }
        !          1742: Index: pax.h
        !          1743: *** /tmp/,RCSt1a17118  Sun Feb 12 14:08:18 1989
        !          1744: --- pax.h      Sun Feb 12 14:02:26 1989
        !          1745: ***************
        !          1746: *** 1,6
        !          1747:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1748:    *
        !          1749: !  * $Revision: 1.1 $
        !          1750:    *
        !          1751:    * pax.h - defnitions for entire program
        !          1752:    *
        !          1753: 
        !          1754: --- 1,6 -----
        !          1755:   /* $Source: /src386/usr/bin/pax/patch2,v $
        !          1756:    *
        !          1757: !  * $Revision: 1.1 $
        !          1758:    *
        !          1759:    * pax.h - defnitions for entire program
        !          1760:    *
        !          1761: ***************
        !          1762: *** 27,33
        !          1763:    *
        !          1764:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1765:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1766: !  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1767:    */
        !          1768:   
        !          1769:   #ifndef _PAX_H
        !          1770: 
        !          1771: --- 27,33 -----
        !          1772:    *
        !          1773:    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !          1774:    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !          1775: !  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !          1776:    */
        !          1777:   
        !          1778:   #ifndef _PAX_H
        !          1779: ***************
        !          1780: *** 53,59
        !          1781:   #  include <dirent.h>
        !          1782:   # endif
        !          1783:   #else
        !          1784: ! # include <sys/dir.h>
        !          1785:   # define dirent direct
        !          1786:   #endif
        !          1787:   
        !          1788: 
        !          1789: --- 53,67 -----
        !          1790:   #  include <dirent.h>
        !          1791:   # endif
        !          1792:   #else
        !          1793: ! # ifdef hpux
        !          1794: ! #  include <ndir.h>
        !          1795: ! # else
        !          1796: ! #  ifdef XENIX_286
        !          1797: ! #   include <sys/ndir.h>
        !          1798: ! #  else XENIX_286
        !          1799: ! #   include <sys/dir.h>
        !          1800: ! #  endif XENIX_286
        !          1801: ! # endif /* hpux */
        !          1802:   # define dirent direct
        !          1803:   #endif
        !          1804:   
        !          1805: ***************
        !          1806: *** 74,79
        !          1807:   #ifdef XENIX
        !          1808:   #   include <sys/inode.h>
        !          1809:   #endif
        !          1810:   
        !          1811:   #include <pwd.h>
        !          1812:   #include <grp.h>
        !          1813: 
        !          1814: --- 82,90 -----
        !          1815:   #ifdef XENIX
        !          1816:   #   include <sys/inode.h>
        !          1817:   #endif
        !          1818: + #ifdef XENIX_286
        !          1819: + #include <sys/param.h>
        !          1820: + #endif XENIX_286
        !          1821:   
        !          1822:   #include <pwd.h>
        !          1823:   #include <grp.h>
        !          1824: ***************
        !          1825: *** 77,82
        !          1826:   
        !          1827:   #include <pwd.h>
        !          1828:   #include <grp.h>
        !          1829:   #include <sys/file.h>
        !          1830:   
        !          1831:   /* Defines */
        !          1832: 
        !          1833: --- 88,94 -----
        !          1834:   
        !          1835:   #include <pwd.h>
        !          1836:   #include <grp.h>
        !          1837: + #ifndef XENIX_286
        !          1838:   #include <sys/file.h>
        !          1839:   #endif XENIX_286
        !          1840:   
        !          1841: ***************
        !          1842: *** 78,83
        !          1843:   #include <pwd.h>
        !          1844:   #include <grp.h>
        !          1845:   #include <sys/file.h>
        !          1846:   
        !          1847:   /* Defines */
        !          1848:   
        !          1849: 
        !          1850: --- 90,96 -----
        !          1851:   #include <grp.h>
        !          1852:   #ifndef XENIX_286
        !          1853:   #include <sys/file.h>
        !          1854: + #endif XENIX_286
        !          1855:   
        !          1856:   /* Defines */
        !          1857:   
        !          1858: ***************
        !          1859: *** 331,338
        !          1860:   extern short f_pass;
        !          1861:   extern short f_disposition;
        !          1862:   extern short    f_reverse_match;
        !          1863: ! extern short    f_modification_time;
        !          1864: ! extern short    f_create_dirs;
        !          1865:   extern short    f_unconditional;
        !          1866:   extern short    f_newer;
        !          1867:   extern time_t   now;
        !          1868: 
        !          1869: --- 344,351 -----
        !          1870:   extern short f_pass;
        !          1871:   extern short f_disposition;
        !          1872:   extern short    f_reverse_match;
        !          1873: ! extern short    f_mtime;
        !          1874: ! extern short    f_dir_create;
        !          1875:   extern short    f_unconditional;
        !          1876:   extern short    f_newer;
        !          1877:   extern time_t   now;
        !          1878: Index: paxdir.c
        !          1879: *** /tmp/,RCSt1a17123  Sun Feb 12 14:08:27 1989
        !          1880: --- paxdir.c   Sun Feb 12 14:02:28 1989
        !          1881: ***************
        !          1882: *** 213,219
        !          1883:       struct stat     sbuf;    /* result of fstat() */
        !          1884:   
        !          1885:       if ((fd = open(dirname, O_RDONLY)) < 0)
        !          1886: !      return NULL;            /* errno set by open() */
        !          1887:   
        !          1888:       if (fstat(fd, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
        !          1889:        close(fd);
        !          1890: 
        !          1891: --- 213,219 -----
        !          1892:       struct stat     sbuf;    /* result of fstat() */
        !          1893:   
        !          1894:       if ((fd = open(dirname, O_RDONLY)) < 0)
        !          1895: !      return ((DIR *)NULL);           /* errno set by open() */
        !          1896:   
        !          1897:       if (fstat(fd, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
        !          1898:        close(fd);
        !          1899: ***************
        !          1900: *** 218,224
        !          1901:       if (fstat(fd, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
        !          1902:        close(fd);
        !          1903:        errno = ENOTDIR;
        !          1904: !      return NULL;            /* not a directory */
        !          1905:       }
        !          1906:       if ((dirp = (DIR *) malloc(sizeof(DIR))) == NULL
        !          1907:        || (dirp->dd_buf = (char *) malloc((unsigned) DIRBUF)) == NULL
        !          1908: 
        !          1909: --- 218,224 -----
        !          1910:       if (fstat(fd, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
        !          1911:        close(fd);
        !          1912:        errno = ENOTDIR;
        !          1913: !      return ((DIR *)NULL);           /* not a directory */
        !          1914:       }
        !          1915:       if ((dirp = (DIR *) malloc(sizeof(DIR))) == (DIR *)NULL
        !          1916:        || (dirp->dd_buf = (char *) malloc((unsigned) DIRBUF)) == (char *)NULL
        !          1917: ***************
        !          1918: *** 220,227
        !          1919:        errno = ENOTDIR;
        !          1920:        return NULL;            /* not a directory */
        !          1921:       }
        !          1922: !     if ((dirp = (DIR *) malloc(sizeof(DIR))) == NULL
        !          1923: !      || (dirp->dd_buf = (char *) malloc((unsigned) DIRBUF)) == NULL
        !          1924:        ) {
        !          1925:        register int    serrno = errno;
        !          1926:        /* errno set to ENOMEM by sbrk() */
        !          1927: 
        !          1928: --- 220,227 -----
        !          1929:        errno = ENOTDIR;
        !          1930:        return ((DIR *)NULL);           /* not a directory */
        !          1931:       }
        !          1932: !     if ((dirp = (DIR *) malloc(sizeof(DIR))) == (DIR *)NULL
        !          1933: !      || (dirp->dd_buf = (char *) malloc((unsigned) DIRBUF)) == (char *)NULL
        !          1934:        ) {
        !          1935:        register int    serrno = errno;
        !          1936:        /* errno set to ENOMEM by sbrk() */
        !          1937: ***************
        !          1938: *** 226,232
        !          1939:        register int    serrno = errno;
        !          1940:        /* errno set to ENOMEM by sbrk() */
        !          1941:   
        !          1942: !      if (dirp != NULL)
        !          1943:            free((pointer) dirp);
        !          1944:   
        !          1945:        close(fd);
        !          1946: 
        !          1947: --- 226,232 -----
        !          1948:        register int    serrno = errno;
        !          1949:        /* errno set to ENOMEM by sbrk() */
        !          1950:   
        !          1951: !      if (dirp != (DIR *)NULL)
        !          1952:            free((pointer) dirp);
        !          1953:   
        !          1954:        close(fd);
        !          1955: ***************
        !          1956: *** 231,237
        !          1957:   
        !          1958:        close(fd);
        !          1959:        errno = serrno;
        !          1960: !      return NULL;            /* not enough memory */
        !          1961:       }
        !          1962:       dirp->dd_fd = fd;
        !          1963:       dirp->dd_loc = dirp->dd_size = 0;        /* refill needed */
        !          1964: 
        !          1965: --- 231,237 -----
        !          1966:   
        !          1967:        close(fd);
        !          1968:        errno = serrno;
        !          1969: !      return ((DIR *)NULL);           /* not enough memory */
        !          1970:       }
        !          1971:       dirp->dd_fd = fd;
        !          1972:       dirp->dd_loc = dirp->dd_size = 0;        /* refill needed */
        !          1973: ***************
        !          1974: *** 259,265
        !          1975:   {
        !          1976:       register int     fd;
        !          1977:   
        !          1978: !     if ( dirp == NULL || dirp->dd_buf == NULL ) {
        !          1979:        errno = EFAULT;
        !          1980:        return -1;                      /* invalid pointer */
        !          1981:       }
        !          1982: 
        !          1983: --- 259,265 -----
        !          1984:   {
        !          1985:       register int     fd;
        !          1986:   
        !          1987: !     if ( dirp == (DIR *)NULL || dirp->dd_buf == (char *)NULL ) {
        !          1988:        errno = EFAULT;
        !          1989:        return -1;                      /* invalid pointer */
        !          1990:       }
        !          1991: ***************
        !          1992: *** 290,296
        !          1993:   {
        !          1994:       register struct dirent *dp;      /* -> directory data */
        !          1995:   
        !          1996: !     if (dirp == NULL || dirp->dd_buf == NULL) {
        !          1997:        errno = EFAULT;
        !          1998:        return NULL;            /* invalid pointer */
        !          1999:       }
        !          2000: 
        !          2001: --- 290,296 -----
        !          2002:   {
        !          2003:       register struct dirent *dp;      /* -> directory data */
        !          2004:   
        !          2005: !     if (dirp == (DIR *)NULL || dirp->dd_buf == (char *)NULL) {
        !          2006:        errno = EFAULT;
        !          2007:        return (struct dirent *)NULL;           /* invalid pointer */
        !          2008:       }
        !          2009: ***************
        !          2010: *** 292,298
        !          2011:   
        !          2012:       if (dirp == NULL || dirp->dd_buf == NULL) {
        !          2013:        errno = EFAULT;
        !          2014: !      return NULL;            /* invalid pointer */
        !          2015:       }
        !          2016:       do {
        !          2017:        if (dirp->dd_loc >= dirp->dd_size)      /* empty or obsolete */
        !          2018: 
        !          2019: --- 292,298 -----
        !          2020:   
        !          2021:       if (dirp == (DIR *)NULL || dirp->dd_buf == (char *)NULL) {
        !          2022:        errno = EFAULT;
        !          2023: !      return (struct dirent *)NULL;           /* invalid pointer */
        !          2024:       }
        !          2025:       do {
        !          2026:        if (dirp->dd_loc >= dirp->dd_size)      /* empty or obsolete */
        !          2027: ***************
        !          2028: *** 303,309
        !          2029:                getdents(dirp->dd_fd, dirp->dd_buf, (unsigned) DIRBUF)
        !          2030:                ) <= 0
        !          2031:            )
        !          2032: !          return NULL;        /* EOF or error */
        !          2033:   
        !          2034:        dp = (struct dirent *) & dirp->dd_buf[dirp->dd_loc];
        !          2035:        dirp->dd_loc += dp->d_reclen;
        !          2036: 
        !          2037: --- 303,309 -----
        !          2038:                getdents(dirp->dd_fd, dirp->dd_buf, (unsigned) DIRBUF)
        !          2039:                ) <= 0
        !          2040:            )
        !          2041: !          return ((struct dirent *)NULL);     /* EOF or error */
        !          2042:   
        !          2043:        dp = (struct dirent *) & dirp->dd_buf[dirp->dd_loc];
        !          2044:        dirp->dd_loc += dp->d_reclen;
        !          2045: ***************
        !          2046: *** 340,346
        !          2047:   {
        !          2048:       register bool   rewind;  /* "start over when stymied" flag */
        !          2049:   
        !          2050: !     if (dirp == NULL || dirp->dd_buf == NULL) {
        !          2051:        errno = EFAULT;
        !          2052:        return;                 /* invalid pointer */
        !          2053:       }
        !          2054: 
        !          2055: --- 340,346 -----
        !          2056:   {
        !          2057:       register bool   rewind;  /* "start over when stymied" flag */
        !          2058:   
        !          2059: !     if (dirp == (DIR *)NULL || dirp->dd_buf == (char *)NULL) {
        !          2060:        errno = EFAULT;
        !          2061:        return;                 /* invalid pointer */
        !          2062:       }
        !          2063: ***************
        !          2064: *** 372,378
        !          2065:        /* See whether the matching entry is in the current buffer. */
        !          2066:   
        !          2067:        if ((dirp->dd_loc < dirp->dd_size       /* valid index */
        !          2068: !           || readdir(dirp) != NULL   /* next buffer read */
        !          2069:             && (dirp->dd_loc = 0, true)        /* beginning of buffer set */
        !          2070:             )
        !          2071:            && (dp = (struct dirent *) & dirp->dd_buf[dirp->dd_loc])->d_off
        !          2072: 
        !          2073: --- 372,378 -----
        !          2074:        /* See whether the matching entry is in the current buffer. */
        !          2075:   
        !          2076:        if ((dirp->dd_loc < dirp->dd_size       /* valid index */
        !          2077: !           || readdir(dirp) != (struct dirent *)NULL  /* next buffer read */
        !          2078:             && (dirp->dd_loc = 0, true)        /* beginning of buffer set */
        !          2079:             )
        !          2080:            && (dp = (struct dirent *) & dirp->dd_buf[dirp->dd_loc])->d_off
        !          2081: ***************
        !          2082: *** 442,448
        !          2083:   
        !          2084:   #endif
        !          2085:   {
        !          2086: !     if (dirp == NULL || dirp->dd_buf == NULL) {
        !          2087:        errno = EFAULT;
        !          2088:        return -1;              /* invalid pointer */
        !          2089:       }
        !          2090: 
        !          2091: --- 442,448 -----
        !          2092:   
        !          2093:   #endif
        !          2094:   {
        !          2095: !     if (dirp == (DIR *)NULL || dirp->dd_buf == (char *)NULL) {
        !          2096:        errno = EFAULT;
        !          2097:        return -1;              /* invalid pointer */
        !          2098:       }
        !          2099: ***************
        !          2100: *** 593,599
        !          2101:       }
        !          2102:   #endif
        !          2103:   
        !          2104: !     if (buf == NULL
        !          2105:   #ifdef ATT_SPEC
        !          2106:        || (unsigned long) buf % sizeof(long) != 0      /* ugh */
        !          2107:   #endif
        !          2108: 
        !          2109: --- 593,599 -----
        !          2110:       }
        !          2111:   #endif
        !          2112:   
        !          2113: !     if (buf == (char *)NULL
        !          2114:   #ifdef ATT_SPEC
        !          2115:        || (unsigned long) buf % sizeof(long) != 0      /* ugh */
        !          2116:   #endif

unix.superglobalmegacorp.com

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