--- a/cpio/cpio.c +++ b/cpio/cpio.c @@ -748,6 +748,7 @@ static struct stat globst; */ #define SANELIMIT 0177777 +enum fmttype fmttype; char *progname; /* argv[0] to main() */ static struct dslot *devices; /* devices table */ static struct dslot *markeddevs; /* unusable device numbers */ @@ -826,6 +827,9 @@ static int compressed_bar; /* this is a compressed bar archive */ static int formatforced; /* -k -i -Hfmt forces a format */ static long long lineno; /* input line number */ +enum pax pax; +enum pax_preserve pax_preserve; + int pax_dflag; /* directory matches only itself */ int pax_kflag; /* do not overwrite files */ int pax_nflag; /* select first archive member only */ --- a/cpio/cpio.h +++ b/cpio/cpio.h @@ -31,7 +31,7 @@ #include #include -enum { +enum fmttype { FMT_NONE = 00000000, /* no format chosen yet */ TYP_PAX = 00000010, /* uses pax-like extended headers */ @@ -70,7 +70,8 @@ enum { FMT_BAR = 00400001, /* bar format type */ FMT_ZIP = 01000000 /* zip format */ -} fmttype; +}; +extern enum fmttype fmttype; /* * Zip compression method. @@ -173,11 +174,12 @@ extern int printsev; extern char *progname; extern struct glist *patterns; -enum { /* type of pax command this is */ +enum pax { /* type of pax command this is */ PAX_TYPE_CPIO = 0, /* not a pax command */ PAX_TYPE_PAX1992 = 1, /* POSIX.2 pax command */ PAX_TYPE_PAX2001 = 2 /* POSIX.1-2001 pax command */ -} pax; +}; +extern enum pax pax; extern int pax_dflag; extern int pax_kflag; extern int pax_nflag; @@ -185,14 +187,15 @@ extern int pax_sflag; extern int pax_uflag; extern int pax_Xflag; -enum { +enum pax_preserve { PAX_P_NONE = 0000, PAX_P_ATIME = 0001, PAX_P_MTIME = 0004, PAX_P_OWNER = 0010, PAX_P_MODE = 0020, PAX_P_EVERY = 0400 -} pax_preserve; +}; +extern enum pax_preserve pax_preserve; extern size_t (*ofiles)(char **, size_t *); extern void (*prtime)(time_t); --- a/tabs/tabspec.c +++ b/tabs/tabspec.c @@ -36,6 +36,8 @@ #include #include "tabspec.h" +enum taberrno taberrno; + static const struct { const char *c_nam; const char *c_str; --- a/tabs/tabspec.h +++ b/tabs/tabspec.h @@ -34,14 +34,15 @@ struct tabulator { int t_rep; /* repetitive tab count */ }; -enum { +enum taberrno { TABERR_NONE, TABERR_CANTOP, /* can't open */ TABERR_FILIND, /* file indirection */ TABERR_UNKTAB, /* unknown tab code */ TABERR_ILLINC, /* illegal increment */ TABERR_ILLTAB /* illegal tabs */ -} taberrno; +}; +extern enum taberrno taberrno; extern void *scalloc(size_t nmemb, size_t size); extern struct tabulator *tabstops(const char *s, int cols); --- a/diff/diff.c +++ b/diff/diff.c @@ -92,6 +92,23 @@ static void usage(void); static void xadd(const char *); static void Xadd(const char *); +char *ifdef1; +char *ifdef2; +int wantelses; +char *file1, *file2; +char *tempfile1, *tempfile2; +char **diffargv; +struct stat stb1, stb2; +jmp_buf recenv; +const char *start; +struct xclusion *xflag; +struct stackblk *curstack; +int hflag,tflag,aflag,lflag,Nflag,sflag,rflag,Bflag,iflag,wflag,bflag,pflag; +int mb_cur_max; +int opt; +int context; +int status; + int main(int argc, char **argv) { --- a/diff/diff.h +++ b/diff/diff.h @@ -106,7 +106,7 @@ /* * Output format options */ -int opt; +extern int opt; #define D_NORMAL 0 /* Normal output */ #define D_EDIT -1 /* Editor script out */ @@ -117,66 +117,66 @@ int opt; lines and no trailing . */ #define D_UNIFIED 5 /* Unified diff */ -int aflag; /* diff binary files */ -int tflag; /* expand tabs on output */ -int pflag; /* show surrounding C function */ +extern int aflag; /* diff binary files */ +extern int tflag; /* expand tabs on output */ +extern int pflag; /* show surrounding C function */ /* * Algorithm related options */ -int hflag; /* -h, use halfhearted DIFFH */ -int bflag; /* ignore blanks in comparisons */ -int wflag; /* totally ignore blanks in comparisons */ -int iflag; /* ignore case in comparisons */ -int Bflag; /* ignore changes that consist of blank lines */ +extern int hflag; /* -h, use halfhearted DIFFH */ +extern int bflag; /* ignore blanks in comparisons */ +extern int wflag; /* totally ignore blanks in comparisons */ +extern int iflag; /* ignore case in comparisons */ +extern int Bflag; /* ignore changes that consist of blank lines */ /* * Options on hierarchical diffs. */ -int lflag; /* long output format with header */ -int rflag; /* recursively trace directories */ -int sflag; /* announce files which are same */ -int Nflag; /* write text of nonexistant files */ -const char *start; /* do file only if name >= this */ +extern int lflag; /* long output format with header */ +extern int rflag; /* recursively trace directories */ +extern int sflag; /* announce files which are same */ +extern int Nflag; /* write text of nonexistant files */ +extern const char *start; /* do file only if name >= this */ struct xclusion { struct xclusion *x_nxt; const char *x_pat; -} *xflag; /* patterns to exclude from comparison */ +}; +extern struct xclusion *xflag; /* patterns to exclude from comparison */ /* * Variables for -I D_IFDEF option. */ -int wantelses; /* -E */ -char *ifdef1; /* String for -1 */ -char *ifdef2; /* String for -2 */ -char *endifname; /* What we will print on next #endif */ -int inifdef; +extern int wantelses; /* -E */ +extern char *ifdef1; /* String for -1 */ +extern char *ifdef2; /* String for -2 */ /* * Variables for -c context option. */ -int context; /* lines of context to be printed */ +extern int context; /* lines of context to be printed */ /* * State for exit status. */ -int status; -int anychange; -char *tempfile1; /* used when comparing against std input */ -char *tempfile2; /* used when comparing against std input */ +extern int status; +extern int anychange; +extern char *tempfile1; /* used when comparing against std input */ +extern char *tempfile2; /* used when comparing against std input */ /* * Variables for diffdir. */ -char **diffargv; /* option list to pass to recursive diffs */ -int recdepth; /* recursion depth */ -jmp_buf recenv; /* jump stack on error */ +extern char **diffargv; /* option list to pass to recursive diffs */ +extern int recdepth; /* recursion depth */ +extern jmp_buf recenv; /* jump stack on error */ struct stackblk { struct stackblk *s_prev; struct stackblk *s_next; -} *curstack; +}; +extern struct stackblk *curstack; /* * Input file names. @@ -184,13 +184,13 @@ struct stackblk { * and padded with a '/', and then efile0 and efile1 point after * the '/'. */ -char *file1, *file2, *efile1, *efile2; -struct stat stb1, stb2; +extern char *file1, *file2; +extern struct stat stb1, stb2; extern const char diffh[], diff[], pr[]; extern const char *argv0; extern const char *progname; -int mb_cur_max; +extern int mb_cur_max; extern int sysv3; /* diff.c */ --- a/diff/diffdir.c +++ b/diff/diffdir.c @@ -142,6 +142,10 @@ static char *mkpath(const char *, const char *); static void mktitle(void); static int xclude(const char *); +int anychange; +int recdepth; +static char *efile1, *efile2; + void diffdir(char **argv) { --- a/diff/diffreg.c +++ b/diff/diffreg.c @@ -186,6 +186,8 @@ static int (*chrtran)(int);/* translation for case-folding */ static long pstart; /* start of last search for -p */ static long plast; /* match of last search for -p */ static long *saveJ; /* saved J for -p */ +static char *endifname; /* What we will print on next #endif */ +static int inifdef; /* chrtran points to one of 3 translation functions: * cup2low if folding upper to lower case