/*
 *	aegis - project change supervisor
 *	This file is in the Public Domain, 1999 Peter Miller.
 *
 * MANIFEST: example use of diff in the project config file
 *
 * 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 10 option produces an output
 * with inserts and deletes shown line, with 10 lines of context before
 * and after.  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 -U10 -a ${quote $original} ${quote $input} > ${quote $output}; "
	"test $? -le 1";
