Annotation of researchv10no/cmd/asd/asd.h, revision 1.1

1.1     ! root        1: #include "ar.h"
        !             2: #include "config.h"
        !             3: #include <stdio.h>
        !             4: #include <sys/types.h>
        !             5: #include <sys/stat.h>
        !             6: #include <signal.h>
        !             7: #include <ctype.h>
        !             8: #include <errno.h>
        !             9: 
        !            10: /* system-dependent stuff */
        !            11: #ifndef major
        !            12: #include <sys/sysmacros.h>
        !            13: #endif
        !            14: 
        !            15: #ifdef FCNTL
        !            16: #include <fcntl.h>
        !            17: #define dup2(x,y) (close(y),fcntl(x,F_DUPFD,y))
        !            18: #endif
        !            19: 
        !            20: /* longest archive component name we will generate */
        !            21: #define MAXCOMP 14
        !            22: 
        !            23: /* macro to allocate storage of a given type */
        !            24: #define new(t) ((t *) alloc (sizeof (t)))
        !            25: 
        !            26: /* constants for tmpname function */
        !            27: #define TMPDIR "/tmp/"
        !            28: #define TMPNAML        (sizeof(TMPDIR) + 15)
        !            29: 
        !            30: /* some systems define SIG_TYP, others don't, so we make our own */
        !            31: typedef int    (*Sig_typ)();
        !            32: 
        !            33: struct replist {
        !            34:        char *source;
        !            35:        char *dest;
        !            36:        struct replist *link;
        !            37: } *replist;
        !            38: 
        !            39: /* structures to deal with archive headers */
        !            40: struct ar_hdr ar_hdr;
        !            41: struct {
        !            42:        long size;
        !            43:        int mode;
        !            44:        long date;
        !            45: } hdr;
        !            46: 
        !            47: /*
        !            48:  *     This stat buffer makes it easy to check that none of the
        !            49:  *     input files is the same as the output.  This will avoid
        !            50:  *     filling up the entire file system by inadvertently saying
        !            51:  *
        !            52:  *             mkpkg . > foo
        !            53:  */
        !            54: struct stat outsb;
        !            55: 
        !            56: /*
        !            57:  *     The following structure helps keep track of things being packaged.
        !            58:  *     iname is the internal name of the component -- in other words,
        !            59:  *     the archive element name.  ename is the (short) pathname of the
        !            60:  *     file.  The structures are chained by the "link" field.  All the
        !            61:  *     other fields are copies of things returned by "stat" and are
        !            62:  *     used mostly to make sure nothing changed while we were packaging.
        !            63:  *     head and tail point to the first and last items in the chain.
        !            64:  *     The first item is known to refer to the "Instructions" component.
        !            65:  */
        !            66: struct pack {
        !            67:        char *iname;
        !            68:        char *ename;
        !            69:        struct pack *link;
        !            70:        dev_t dev;
        !            71:        ino_t ino;
        !            72:        int uid, gid, mode;
        !            73:        time_t time;
        !            74:        off_t size;
        !            75: };
        !            76: 
        !            77: struct pack *pkhead, *pktail;
        !            78: 
        !            79: 
        !            80: FILE *popen();
        !            81: char *Xstr;
        !            82: char *alloc();
        !            83: char *copy();
        !            84: char *fgets();
        !            85: char *fullname();
        !            86: char *getfield();
        !            87: char *getpass();
        !            88: char *getpath();
        !            89: extern char *hextab;
        !            90: char *iname();
        !            91: extern char *instr;
        !            92: char *keyfile;
        !            93: char *mktemp();
        !            94: extern char *optarg;
        !            95: char *pwd();
        !            96: char *ralloc();
        !            97: char *strcat();
        !            98: char *strchr();
        !            99: char *strcpy();
        !           100: char *strrchr();
        !           101: char *strgid();
        !           102: char *struid();
        !           103: char *tmpname();
        !           104: char *transname();
        !           105: char *xstr;
        !           106: int Kflag;
        !           107: int bflag;
        !           108: int consider();
        !           109: int dflag;
        !           110: int errno;
        !           111: int kflag;
        !           112: int nflag;
        !           113: int install();
        !           114: int numgid();
        !           115: int numuid();
        !           116: extern int optind;
        !           117: int package();
        !           118: int pkgend();
        !           119: int retcode;
        !           120: int seal();
        !           121: int unseal();
        !           122: int vflag;
        !           123: long cvlong();
        !           124: long read_header();
        !           125: void delete();
        !           126: void geteol();
        !           127: void next_header();
        !           128: void pkgstart();
        !           129: void pkgfile();
        !           130: void putpath();

unix.superglobalmegacorp.com

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