1 /* $OpenBSD: diff.h,v 1.22 2010/07/28 21:19:30 nicm 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 105 void cvs_merge_file(struct cvs_file *, int); 106 void diff_output(const char *, ...); 107 int diffreg(const char *, const char *, int, int, BUF *, int); 108 int ed_patch_lines(struct rcs_lines *, struct rcs_lines *); 109 110 extern int diff_format; 111 extern int diff_context; 112 extern int diff3_conflicts; 113 extern int diff_aflag; 114 extern int diff_bflag; 115 extern int diff_dflag; 116 extern int diff_iflag; 117 extern int diff_pflag; 118 extern int diff_wflag; 119 extern char *diff_file; 120 extern char diffargs[512]; /* XXX */ 121 extern BUF *diffbuf; 122 extern RCSNUM *diff_rev1; 123 extern RCSNUM *diff_rev2; 124 extern RCSNUM *d3rev1; 125 extern RCSNUM *d3rev2; 126 127 #endif /* DIFF_H */ 128