Annotation of src/usr.bin/patch/common.h, Revision 1.28.2.1
1.28.2.1! krw 1: /* $OpenBSD: common.h,v 1.28 2014/11/25 10:26:07 tobias 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.28 tobias 31: #include <limits.h>
1.22 otto 32: #include <stdbool.h>
1.1 deraadt 33:
34: #define DEBUGGING
35:
36: /* constants */
37:
1.14 deraadt 38: #define MAXHUNKSIZE 100000 /* is this enough lines? */
39: #define INITHUNKMAX 125 /* initial dynamic allocation size */
1.8 niklas 40: #define MAXLINELEN 8192
1.1 deraadt 41: #define BUFFERSIZE 1024
1.28 tobias 42: #define LINENUM_MAX LONG_MAX
1.1 deraadt 43:
44: #define ORIGEXT ".orig"
45: #define REJEXT ".rej"
46:
47: /* handy definitions */
48:
49: #define strNE(s1,s2) (strcmp(s1, s2))
50: #define strEQ(s1,s2) (!strcmp(s1, s2))
51: #define strnNE(s1,s2,l) (strncmp(s1, s2, l))
52: #define strnEQ(s1,s2,l) (!strncmp(s1, s2, l))
53:
54: /* typedefs */
55:
1.14 deraadt 56: typedef long LINENUM; /* must be signed */
1.1 deraadt 57:
58: /* globals */
59:
1.26 otto 60: extern mode_t filemode;
1.1 deraadt 61:
1.19 otto 62: extern char buf[MAXLINELEN];/* general purpose buffer */
1.1 deraadt 63:
1.19 otto 64: extern bool using_plan_a; /* try to keep everything in memory */
65: extern bool out_of_mem; /* ran out of memory in plan a */
1.1 deraadt 66:
67: #define MAXFILEC 2
68:
1.19 otto 69: extern char *filearg[MAXFILEC];
70: extern bool ok_to_create_file;
71: extern char *outname;
72: extern char *origprae;
73:
74: extern char *TMPOUTNAME;
75: extern char *TMPINNAME;
76: extern char *TMPREJNAME;
77: extern char *TMPPATNAME;
78: extern bool toutkeep;
79: extern bool trejkeep;
80:
1.1 deraadt 81: #ifdef DEBUGGING
1.19 otto 82: extern int debug;
1.1 deraadt 83: #endif
1.19 otto 84:
85: extern bool force;
86: extern bool batch;
87: extern bool verbose;
88: extern bool reverse;
89: extern bool noreverse;
90: extern bool skip_rest_of_patch;
91: extern int strippath;
92: extern bool canonicalize;
1.17 otto 93: /* TRUE if -C was specified on command line. */
1.19 otto 94: extern bool check_only;
1.21 otto 95: extern bool warn_on_invalid_line;
1.23 otto 96: extern bool last_line_missing_eol;
1.17 otto 97:
1.1 deraadt 98:
99: #define CONTEXT_DIFF 1
100: #define NORMAL_DIFF 2
101: #define ED_DIFF 3
102: #define NEW_CONTEXT_DIFF 4
103: #define UNI_DIFF 5
104:
1.19 otto 105: extern int diff_type;
106: extern char *revision; /* prerequisite revision, if any */
107: extern LINENUM input_lines; /* how long is input file in lines */
108:
1.25 millert 109: extern int posix;
1.1 deraadt 110: