File: diff

package info (click to toggle)
aegis 4.24.3-3
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 34,056 kB
  • ctags: 12,500
  • sloc: cpp: 178,528; sh: 79,948; makefile: 34,813; yacc: 4,610; perl: 1,499; ansic: 492; awk: 325
file content (65 lines) | stat: -rw-r--r-- 2,441 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 *	aegis - project change supervisor
 *	This file is in the Public Domain, 2004, Peter Miller.
 *
 * The ${quote ...} construct is used to quote filenames which contain
 * shell special characters.  A minimum of quoting is performed, so if
 * the filenames do not contain shell special characters, no quotes will
 * be used.
 */


/*
 * Compare two files using GNU diff.  The -U -1 option produces an output
 * with inserts and deletes shown line, with the whole file as context.
 * This is usually superior to -c, as it shows what happened
 * more clearly (and it takes less space).  The -b option could be added
 * to compare runs of white space as equal.
 *
 * This command is used by aed(1) to produce a difference listing when
 * file in the development directory was originally copied from the
 * current version in the baseline.
 *
 * All of the command substitutions described in aesub(5) are available.
 * In addition, the following substitutions are also available:
 *
 * ${ORiginal}
 *	The absolute path name of a file containing the version
 *	originally copied.  Usually in the baseline.
 * ${Input}
 *	The absolute path name of the edited version of the file.
 *	Usually in the development directory.
 * ${Output}
 *	The absolute path name of the file in which to write the
 *	difference listing.  Usually in the development directory.
 *
 * An exit status of 0 means successful, even of the files differ (and
 * they usually do).  An exit status which is non-zero means something
 * is wrong.  (So we need to massage the exit status, because diff does
 * things a little differently.)
 *
 * The non-zero exit status may be used to overload this command with
 * extra tests, such as line length limits.  The difference files must
 * be produced in addition to these extra tests.
 */
diff_command =
	"set +e; diff -U -1 -a ${quote $original} ${quote $input} "
	"> ${quote $output}; test $? -le 1";

/*
 * Here is a possible diff_command that could be used if
 * dealing with binary files is required.
 *
 * If the return code from the original diff is greater then 1, then
 * make sure that diff spit out the 'Binary files differ message'
 * and return 0, otherwise return 1
 *
diff_command =
       "set +e; "
       "diff -U -1 -a ${quote $original} ${quote $input} > ${quote $output}; "
       "if test $? -gt 1; then "
       "grep -q '^Binary' ${quote $output}; "
       "test $? -eq 0; "
       "else true; fi";
 *
 */