jcs's openbsd hax
openbsd
1/* $OpenBSD: diff.h,v 1.23 2024/05/21 05:00:48 jsg Exp $ */
2/*
3 * Copyright (C) Caldera International Inc. 2001-2002.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code and documentation must retain the above
10 * copyright notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed or owned by Caldera
17 * International, Inc.
18 * 4. Neither the name of Caldera International, Inc. nor the names of other
19 * contributors may be used to endorse or promote products derived from
20 * this software without specific prior written permission.
21 *
22 * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
23 * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26 * IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE FOR ANY DIRECT,
27 * INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
32 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35/*-
36 * Copyright (c) 1991, 1993
37 * The Regents of the University of California. All rights reserved.
38 * Copyright (c) 2004 Jean-Francois Brousseau. All rights reserved.
39 *
40 * Redistribution and use in source and binary forms, with or without
41 * modification, are permitted provided that the following conditions
42 * are met:
43 * 1. Redistributions of source code must retain the above copyright
44 * notice, this list of conditions and the following disclaimer.
45 * 2. Redistributions in binary form must reproduce the above copyright
46 * notice, this list of conditions and the following disclaimer in the
47 * documentation and/or other materials provided with the distribution.
48 * 3. Neither the name of the University nor the names of its contributors
49 * may be used to endorse or promote products derived from this software
50 * without specific prior written permission.
51 *
52 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
53 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
54 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
55 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
56 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
57 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
58 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
59 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
60 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
61 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
62 * SUCH DAMAGE.
63 *
64 * @(#)diffreg.c 8.1 (Berkeley) 6/6/93
65 */
66#ifndef DIFF_H
67#define DIFF_H
68#define CVS_DIFF_DEFCTX 3 /* default context length */
69
70/*
71 * Output format options
72 */
73#define D_NORMAL 0 /* Normal output */
74#define D_CONTEXT 1 /* Diff with context */
75#define D_UNIFIED 2 /* Unified context diff */
76#define D_IFDEF 3 /* Diff with merged #ifdef's */
77#define D_BRIEF 4 /* Say if the files differ */
78#define D_RCSDIFF 5 /* Reverse editor output: RCS format */
79
80/*
81 * Command line flags
82 */
83#define D_FORCEASCII 0x01 /* Treat file as ascii regardless of content */
84#define D_FOLDBLANKS 0x02 /* Treat all white space as equal */
85#define D_MINIMAL 0x04 /* Make diff as small as possible */
86#define D_IGNORECASE 0x08 /* Case-insensitive matching */
87#define D_PROTOTYPE 0x10 /* Display C function prototype */
88#define D_EXPANDTABS 0x20 /* Expand tabs to spaces */
89#define D_IGNOREBLANKS 0x40 /* Ignore white space changes */
90
91/*
92 * Status values for diffreg() return values
93 */
94#define D_SAME 0 /* Files are the same */
95#define D_DIFFER 1 /* Files are different */
96#define D_BINARY 2 /* Binary files are different */
97#define D_COMMON 3 /* Subdirectory common to both dirs */
98#define D_ONLY 4 /* Only exists in one directory */
99#define D_MISMATCH1 5 /* path1 was a dir, path2 a file */
100#define D_MISMATCH2 6 /* path1 was a file, path2 a dir */
101#define D_ERROR 7 /* An error occurred */
102#define D_SKIPPED1 8 /* path1 was a special file */
103#define D_SKIPPED2 9 /* path2 was a special file */
104
105void cvs_merge_file(struct cvs_file *, int);
106void diff_output(const char *, ...);
107int diffreg(const char *, const char *, int, int, BUF *, int);
108int ed_patch_lines(struct rcs_lines *, struct rcs_lines *);
109
110extern int diff_format;
111extern int diff_context;
112extern int diff3_conflicts;
113extern char diffargs[512]; /* XXX */
114extern BUF *diffbuf;
115extern RCSNUM *diff_rev1;
116extern RCSNUM *diff_rev2;
117extern RCSNUM *d3rev1;
118extern RCSNUM *d3rev2;
119
120#endif /* DIFF_H */