|
|
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.