|
|
1.1 ! root 1: #include "ar.h" ! 2: #include <stddef.h> ! 3: #include <stdio.h> ! 4: #include <stdlib.h> ! 5: #include <sys/types.h> ! 6: #include <sys/stat.h> ! 7: #include <signal.h> ! 8: #include <ctype.h> ! 9: #include <errno.h> ! 10: ! 11: #if 0 ! 12: /* system-dependent stuff */ ! 13: #ifdef unix ! 14: #ifndef major ! 15: #include <sys/sysmacros.h> ! 16: #endif ! 17: #endif ! 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: /* some systems define SIG_TYP, others don't, so we make our own */ ! 27: #ifdef __STDC__ ! 28: typedef void (*Sig_typ)(int); ! 29: #else ! 30: typedef int (*Sig_typ)(); ! 31: #endif ! 32: ! 33: struct replist { ! 34: char *source; ! 35: char *dest; ! 36: struct replist *link; ! 37: }; ! 38: ! 39: extern struct replist *replist; ! 40: ! 41: /* structures to deal with archive headers */ ! 42: struct ar_hdr ar_hdr; ! 43: struct hdr { ! 44: long size; ! 45: int mode; ! 46: long date; ! 47: }; ! 48: extern struct hdr hdr; ! 49: ! 50: /* alloc.c */ ! 51: extern void *alloc(size_t); ! 52: extern void *ralloc(void *, size_t); ! 53: extern char *copy(char *); ! 54: ! 55: /* args.c */ ! 56: extern int bflag; ! 57: extern int kflag; ! 58: extern int Kflag; ! 59: extern int nflag; ! 60: extern int vflag; ! 61: extern char *xstr; ! 62: extern char *Xstr; ! 63: extern int getargs(int, char **, char *, int (*)(FILE *, char *)); ! 64: ! 65: /* chk.c */ ! 66: extern void nchk(int); ! 67: extern void schk(void *); ! 68: ! 69: /* crypt.c */ ! 70: extern void resetN12(void); ! 71: extern void setup(char *); ! 72: extern void mangle(char *, char *); ! 73: ! 74: /* data.c */ ! 75: extern char *hextab; ! 76: extern char *instr; ! 77: ! 78: /* fullname.c */ ! 79: extern char *fullname(char *); ! 80: ! 81: /* gid.c */ ! 82: extern char *gidstr(gid_t); ! 83: extern gid_t gidnum(char *); ! 84: ! 85: /* header.c */ ! 86: extern long cvlong(char *, size_t, int); ! 87: extern long read_header(char *, FILE *); ! 88: extern void next_header(FILE *); ! 89: extern char *getfield(FILE *); ! 90: extern void geteol(FILE *); ! 91: ! 92: /* mkdir.c */ ! 93: extern int mkd(char *); ! 94: extern int rmdir(char *); ! 95: extern int rmall(char *); ! 96: ! 97: /* package.c */ ! 98: extern void pkgstart(void); ! 99: extern void pkgfile(char *); ! 100: extern int pkgend(void); ! 101: ! 102: /* path.c */ ! 103: extern char *getpath(FILE *); ! 104: extern void putpath(FILE *, char *); ! 105: ! 106: /* pwd.c */ ! 107: extern char *pwd(void); ! 108: ! 109: /* transname.c */ ! 110: extern char *transname(char *); ! 111: ! 112: /* uid.c */ ! 113: extern char *uidstr(uid_t); ! 114: extern uid_t uidnum(char *);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.