|
|
1.1 root 1: /* $Header: common.h,v 2.0 86/09/17 15:36:39 lwall Exp $
2: *
3: * $Log: common.h,v $
4: * Revision 2.0 86/09/17 15:36:39 lwall
5: * Baseline for netwide release.
6: *
7: */
8:
9: #define DEBUGGING
10:
11: #include "config.h"
12:
13: /* shut lint up about the following when return value ignored */
14:
15: #define Signal (void)signal
16: #define Unlink (void)unlink
17: #define Lseek (void)lseek
18: #define Fseek (void)fseek
19: #define Fstat (void)fstat
20: #define Pclose (void)pclose
21: #define Close (void)close
22: #define Fclose (void)fclose
23: #define Fflush (void)fflush
24: #define Sprintf (void)sprintf
25: #define Mktemp (void)mktemp
26: #define Strcpy (void)strcpy
27: #define Strcat (void)strcat
28:
29: #include <stdio.h>
30: #include <assert.h>
31: #include <sys/types.h>
32: #include <sys/stat.h>
33: #include <ctype.h>
34: #include <signal.h>
35:
36: /* constants */
37:
38: #define TRUE (1)
39: #define FALSE (0)
40:
41: #define MAXHUNKSIZE 100000 /* is this enough lines? */
42: #define INITHUNKMAX 125 /* initial dynamic allocation size */
43: #define MAXLINELEN 1024
44: #define BUFFERSIZE 1024
45: #define ORIGEXT ".orig"
46: #define SCCSPREFIX "s."
47: #define GET "get -e %s"
48: #define RCSSUFFIX ",v"
49: #define CHECKOUT "co -l %s"
50:
51: /* handy definitions */
52:
53: #define Null(t) ((t)0)
54: #define Nullch Null(char *)
55: #define Nullfp Null(FILE *)
56: #define Nulline Null(LINENUM)
57:
58: #define Ctl(ch) ((ch) & 037)
59:
60: #define strNE(s1,s2) (strcmp(s1, s2))
61: #define strEQ(s1,s2) (!strcmp(s1, s2))
62: #define strnNE(s1,s2,l) (strncmp(s1, s2, l))
63: #define strnEQ(s1,s2,l) (!strncmp(s1, s2, l))
64:
65: /* typedefs */
66:
67: typedef char bool;
68: typedef long LINENUM; /* must be signed */
69: typedef unsigned MEM; /* what to feed malloc */
70:
71: /* globals */
72:
73: EXT int Argc; /* guess */
74: EXT char **Argv;
75: EXT int Argc_last; /* for restarting plan_b */
76: EXT char **Argv_last;
77:
78: EXT struct stat filestat; /* file statistics area */
79: EXT int filemode INIT(0644);
80:
81: EXT char buf[MAXLINELEN]; /* general purpose buffer */
82: EXT FILE *ofp INIT(Nullfp); /* output file pointer */
83: EXT FILE *rejfp INIT(Nullfp); /* reject file pointer */
84:
85: EXT bool using_plan_a INIT(TRUE); /* try to keep everything in memory */
86: EXT bool out_of_mem INIT(FALSE); /* ran out of memory in plan a */
87:
88: #define MAXFILEC 2
89: EXT int filec INIT(0); /* how many file arguments? */
90: EXT char *filearg[MAXFILEC];
91: EXT bool ok_to_create_file INIT(FALSE);
92: EXT char *bestguess INIT(Nullch); /* guess at correct filename */
93:
94: EXT char *outname INIT(Nullch);
95: EXT char rejname[128];
96:
97: EXT char *origext INIT(Nullch);
98:
99: EXT char TMPOUTNAME[] INIT("/tmp/patchoXXXXXX");
100: EXT char TMPINNAME[] INIT("/tmp/patchiXXXXXX"); /* might want /usr/tmp here */
101: EXT char TMPREJNAME[] INIT("/tmp/patchrXXXXXX");
102: EXT char TMPPATNAME[] INIT("/tmp/patchpXXXXXX");
103: EXT bool toutkeep INIT(FALSE);
104: EXT bool trejkeep INIT(FALSE);
105:
106: EXT LINENUM last_offset INIT(0);
107: #ifdef DEBUGGING
108: EXT int debug INIT(0);
109: #endif
110: EXT LINENUM maxfuzz INIT(2);
111: EXT bool force INIT(FALSE);
112: EXT bool verbose INIT(TRUE);
113: EXT bool reverse INIT(FALSE);
114: EXT bool noreverse INIT(FALSE);
115: EXT bool skip_rest_of_patch INIT(FALSE);
116: EXT int strippath INIT(957);
117: EXT bool canonicalize INIT(FALSE);
118:
119: #define CONTEXT_DIFF 1
120: #define NORMAL_DIFF 2
121: #define ED_DIFF 3
122: #define NEW_CONTEXT_DIFF 4
123: EXT int diff_type INIT(0);
124:
125: EXT bool do_defines INIT(FALSE); /* patch using ifdef, ifndef, etc. */
126: EXT char if_defined[128]; /* #ifdef xyzzy */
127: EXT char not_defined[128]; /* #ifndef xyzzy */
128: EXT char else_defined[] INIT("#else\n");/* #else */
129: EXT char end_defined[128]; /* #endif xyzzy */
130:
131: EXT char *revision INIT(Nullch); /* prerequisite revision, if any */
132:
133: char *malloc();
134: char *realloc();
135: char *strcpy();
136: char *strcat();
137: long atol();
138: long lseek();
139: char *mktemp();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.