Init
This commit is contained in:
165
cmd/diff/diff.h
Executable file
165
cmd/diff/diff.h
Executable file
@@ -0,0 +1,165 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)diff.h 1.6 94/09/06 SMI" /* SVr4.0 1.3 */
|
||||
|
||||
/*
|
||||
* PROPRIETARY NOTICE (Combined)
|
||||
*
|
||||
* This source code is unpublished proprietary information
|
||||
* constituting, or derived under license from AT&T's UNIX(r) System V.
|
||||
* In addition, portions of such source code were derived from Berkeley
|
||||
* 4.3 BSD under license from the Regents of the University of
|
||||
* California.
|
||||
*
|
||||
* Copyright Notice
|
||||
*
|
||||
* Notice of copyright on this source code product does not indicate
|
||||
* publication.
|
||||
*
|
||||
* (c) 1986,1987,1988,1989 Sun Microsystems, Inc
|
||||
* (c) 1983,1984,1985,1986,1987,1988,1989 AT&T.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
/*
|
||||
* diff - common declarations
|
||||
*/
|
||||
|
||||
|
||||
void done();
|
||||
|
||||
/*
|
||||
* Output format options
|
||||
*/
|
||||
int opt;
|
||||
|
||||
#define D_NORMAL 0 /* Normal output */
|
||||
#define D_EDIT -1 /* Editor script out */
|
||||
#define D_REVERSE 1 /* Reverse editor script */
|
||||
#define D_CONTEXT 2 /* Diff with context */
|
||||
#define D_IFDEF 3 /* Diff with merged #ifdef's */
|
||||
#define D_NREVERSE 4 /* Reverse ed script with numbered */
|
||||
/* lines and no trailing . */
|
||||
|
||||
/*
|
||||
* Constant declarations
|
||||
*/
|
||||
#define HALFMASK 0xf
|
||||
|
||||
#define prints(s) fputs(s, stdout)
|
||||
|
||||
#define MAX_CONTEXT 128
|
||||
|
||||
/*
|
||||
* diff - directory comparison
|
||||
*/
|
||||
#define d_flags d_ino
|
||||
|
||||
#define ONLY 1 /* Only in this directory */
|
||||
#define SAME 2 /* Both places and same */
|
||||
#define DIFFER 4 /* Both places and different */
|
||||
#define DIRECT 8 /* Directory */
|
||||
|
||||
struct dir {
|
||||
u_long d_ino;
|
||||
short d_reclen;
|
||||
short d_namlen;
|
||||
char *d_entry;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* type definitions
|
||||
*/
|
||||
|
||||
struct cand {
|
||||
int x;
|
||||
int y;
|
||||
int pred;
|
||||
} cand;
|
||||
|
||||
struct line {
|
||||
int serial;
|
||||
int value;
|
||||
} *file[2], line;
|
||||
|
||||
/*
|
||||
* The following struct is used to record change information when
|
||||
* doing a "context" diff. (see routine "change" to understand the
|
||||
* highly mneumonic field names)
|
||||
*/
|
||||
struct context_vec {
|
||||
int a; /* start line in old file */
|
||||
int b; /* end line in old file */
|
||||
int c; /* start line in new file */
|
||||
int d; /* end line in new file */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Algorithm related options
|
||||
*/
|
||||
int bflag = 0;
|
||||
int tflag = 0;
|
||||
int wflag = 0;
|
||||
int iflag = 0;
|
||||
int rflag = 0;
|
||||
int lflag = 0;
|
||||
int sflag = 0;
|
||||
int hflag = 0;
|
||||
|
||||
/*
|
||||
* Variables for D_IFDEF option.
|
||||
*/
|
||||
int wantelses = 0; /* used with D_IFDEF */
|
||||
char *ifdef1, *ifdef2; /* hold the ifdef strings */
|
||||
char *endifname;
|
||||
int inifdef = 0;
|
||||
|
||||
/*
|
||||
* Variables for -C (-c) context option.
|
||||
*/
|
||||
int context = 0; /* number of lines specfied with the C flag */
|
||||
|
||||
char *empty = ""; /* the empty string */
|
||||
|
||||
char **diffargv; /* keep track of argv for diffdir */
|
||||
|
||||
char start[256]; /* specify where to start, used with -S */
|
||||
|
||||
FILE *input[2]; /* two input files */
|
||||
int len[2];
|
||||
struct line *sfile[2]; /* shortened by pruning common prefix and suffix */
|
||||
int slen[2];
|
||||
|
||||
struct stat stb0, stb1;
|
||||
|
||||
/*
|
||||
* Input file names.
|
||||
* With diffdir, file1 and file2 are allocated BUFSIZ space,
|
||||
* and padded with a '/', and then efile0 and efile1 point after
|
||||
* the '/'.
|
||||
*/
|
||||
char *file1, *file2, *efile1, *efile2;
|
||||
struct stat stb1, stb2;
|
||||
char *file1, *file2, *efile1, *efile2;
|
||||
|
||||
char pr[] = "/usr/bin/pr";
|
||||
char diff[] = "/usr/bin/diff";
|
||||
char diffh[] = "/usr/lib/diffh";
|
||||
int status = 2;
|
||||
int anychange = 0;
|
||||
|
||||
struct context_vec *context_vec_start,
|
||||
*context_vec_end,
|
||||
*context_vec_ptr;
|
||||
|
||||
char tempfile[2][16]; /* used when comparing against std input */
|
||||
/* or char special devices */
|
||||
int whichtemp;
|
||||
char *dummy; /* used in resetting storage search ptr */
|
||||
Reference in New Issue
Block a user