Annotation of src/usr.bin/patch/common.h, Revision 1.26
1.26 ! otto 1: /* $OpenBSD: common.h,v 1.25 2003/10/31 20:20:45 millert Exp $ */
1.24 otto 2:
3: /*
4: * patch - a program to apply diffs to original files
5: *
6: * Copyright 1986, Larry Wall
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following condition is met:
10: * 1. Redistributions of source code must retain the above copyright notice,
11: * this condition and the following disclaimer.
12: *
13: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
14: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16: * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
17: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23: * SUCH DAMAGE.
24: *
25: * -C option added in 1998, original code by Marc Espie, based on FreeBSD
26: * behaviour
27: */
1.22 otto 28:
1.26 ! otto 29: #include <sys/types.h>
! 30:
1.22 otto 31: #include <stdbool.h>
1.1 deraadt 32:
33: #define DEBUGGING
34:
35: /* constants */
36:
1.14 deraadt 37: #define MAXHUNKSIZE 100000 /* is this enough lines? */
38: #define INITHUNKMAX 125 /* initial dynamic allocation size */
1.8 niklas 39: #define MAXLINELEN 8192
1.1 deraadt 40: #define BUFFERSIZE 1024
41:
42: #define SCCSPREFIX "s."
43: #define GET "get -e %s"
44: #define SCCSDIFF "get -p %s | diff - %s >/dev/null"
45:
46: #define RCSSUFFIX ",v"
47: #define CHECKOUT "co -l %s"
48: #define RCSDIFF "rcsdiff %s > /dev/null"
49:
50: #define ORIGEXT ".orig"
51: #define REJEXT ".rej"
52:
53: /* handy definitions */
54:
55: #define strNE(s1,s2) (strcmp(s1, s2))
56: #define strEQ(s1,s2) (!strcmp(s1, s2))
57: #define strnNE(s1,s2,l) (strncmp(s1, s2, l))
58: #define strnEQ(s1,s2,l) (!strncmp(s1, s2, l))
59:
60: /* typedefs */
61:
1.14 deraadt 62: typedef long LINENUM; /* must be signed */
1.1 deraadt 63:
64: /* globals */
65:
1.26 ! otto 66: extern mode_t filemode;
1.1 deraadt 67:
1.19 otto 68: extern char buf[MAXLINELEN];/* general purpose buffer */
1.1 deraadt 69:
1.19 otto 70: extern bool using_plan_a; /* try to keep everything in memory */
71: extern bool out_of_mem; /* ran out of memory in plan a */
1.1 deraadt 72:
73: #define MAXFILEC 2
74:
1.19 otto 75: extern char *filearg[MAXFILEC];
76: extern bool ok_to_create_file;
77: extern char *outname;
78: extern char *origprae;
79:
80: extern char *TMPOUTNAME;
81: extern char *TMPINNAME;
82: extern char *TMPREJNAME;
83: extern char *TMPPATNAME;
84: extern bool toutkeep;
85: extern bool trejkeep;
86:
1.1 deraadt 87: #ifdef DEBUGGING
1.19 otto 88: extern int debug;
1.1 deraadt 89: #endif
1.19 otto 90:
91: extern bool force;
92: extern bool batch;
93: extern bool verbose;
94: extern bool reverse;
95: extern bool noreverse;
96: extern bool skip_rest_of_patch;
97: extern int strippath;
98: extern bool canonicalize;
1.17 otto 99: /* TRUE if -C was specified on command line. */
1.19 otto 100: extern bool check_only;
1.21 otto 101: extern bool warn_on_invalid_line;
1.23 otto 102: extern bool last_line_missing_eol;
1.17 otto 103:
1.1 deraadt 104:
105: #define CONTEXT_DIFF 1
106: #define NORMAL_DIFF 2
107: #define ED_DIFF 3
108: #define NEW_CONTEXT_DIFF 4
109: #define UNI_DIFF 5
110:
1.19 otto 111: extern int diff_type;
112: extern char *revision; /* prerequisite revision, if any */
113: extern LINENUM input_lines; /* how long is input file in lines */
114:
1.25 millert 115: extern int posix;
1.1 deraadt 116: