Annotation of coherent/e/bin/pax/append.c, revision 1.1

1.1     ! root        1: /* $Source: /src386/usr/bin/pax/append.c,v $
        !             2:  *
        !             3:  * $Revision: 1.1 $
        !             4:  *
        !             5:  * append.c - append to a tape archive. 
        !             6:  *
        !             7:  * DESCRIPTION
        !             8:  *
        !             9:  *     Routines to allow appending of archives
        !            10:  *
        !            11:  * AUTHORS
        !            12:  *
        !            13:  *             Mark H. Colburn, NAPS International ([email protected])
        !            14:  *
        !            15:  *
        !            16:  * Sponsored by The USENIX Association for public distribution. 
        !            17:  *
        !            18:  * Copyright (c) 1989 Mark H. Colburn.
        !            19:  * All rights reserved.
        !            20:  *
        !            21:  * Redistribution and use in source and binary forms are permitted
        !            22:  * provided that the above copyright notice is duplicated in all such 
        !            23:  * forms and that any documentation, advertising materials, and other 
        !            24:  * materials related to such distribution and use acknowledge that the 
        !            25:  * software was developed * by Mark H. Colburn and sponsored by The 
        !            26:  * USENIX Association. 
        !            27:  *
        !            28:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            29:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            30:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            31:  *
        !            32:  * $Log:       append.c,v $
        !            33:  * Revision 1.1  92/08/28  08:01:54  bin
        !            34:  * Initial revision
        !            35:  * 
        !            36:  * Revision 1.1  89/02/14  16:47:35  jep
        !            37:  * Initial revision
        !            38:  * 
        !            39:  * Revision 1.1  88/12/23  18:02:00  mark
        !            40:  * Initial revision
        !            41:  * 
        !            42:  */
        !            43: 
        !            44: #ifndef lint
        !            45: static char *ident = "$Id: append.c,v 1.1 92/08/28 08:01:54 bin Exp Locker: bin $";
        !            46: static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";
        !            47: #endif /* ! lint */
        !            48: 
        !            49: 
        !            50: /* Headers */
        !            51: 
        !            52: #include "pax.h"
        !            53: 
        !            54: 
        !            55: /* append_archive - main loop for appending to a tar archive
        !            56:  *
        !            57:  * DESCRIPTION
        !            58:  *
        !            59:  *     Append_archive reads an archive until the end of the archive is
        !            60:  *     reached once the archive is reached, the buffers are reset and the
        !            61:  *     create_archive function is called to handle the actual writing of
        !            62:  *     the appended archive data.  This is quite similar to the
        !            63:  *     read_archive function, however, it does not do all the processing.
        !            64:  */
        !            65: 
        !            66: #if __STDC__
        !            67: 
        !            68: void append_archive(void)
        !            69: 
        !            70: #else
        !            71: 
        !            72: void append_archive()
        !            73: 
        !            74: #endif
        !            75: {
        !            76:     Stat            sb;
        !            77:     char            name[PATH_MAX + 1];
        !            78: 
        !            79:     name[0] = '\0';
        !            80:     while (get_header(name, &sb) == 0) {
        !            81:        if (((ar_format == TAR)
        !            82:             ? buf_skip(ROUNDUP((OFFSET) sb.sb_size, BLOCKSIZE))
        !            83:             : buf_skip((OFFSET) sb.sb_size)) < 0) {
        !            84:            warn(name, "File data is corrupt");
        !            85:        }
        !            86:     }
        !            87:     /* we have now gotten to the end of the archive... */
        !            88: 
        !            89:     /* reset the buffer now that we have read the entire archive */
        !            90:     bufend = bufidx = bufstart;
        !            91:     lseek(archivefd, -((OFFSET) blocksize), 1); /* VLAD. duncing arround bugs */
        !            92:     create_archive();
        !            93: }

unix.superglobalmegacorp.com

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