/*
 *	aegis - project change supervisor
 *	This file is in the Public Domain, 1999 Peter Miller.
 *
 * The diff3(1) command is the oldest of the Unix file merge tools, and
 * the least capable.  You should use the RCS merge(1) in preference to
 * diff(3).
 */


/*
 * Compare three files using diff3.  Conflicts are marked in the
 * output.
 *
 * This command is used by aed(1) to produce a difference listing when a
 * file in the development directory is out of date compared to 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 common ancestor
 *	version of ${MostRecent} and {$Input}.  Usually the version
 *	originally copied into the change.  Usually in a temporary file.
 * ${Most_Recent}
 *	The absolute path name of a file containing the most recent
 *	version.  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.
 *
 * The diff3(1) man page documents the file order as "mine, older,
 * yours".  The diff3 -e option says to write output which can be used
 * as ed(1) input.
 */
merge_command =
	"(diff3 -e ${quote $i} ${quote $orig} ${quote $mr} | "
	"sed -e '/^w$$/d' -e '/^q$$/d'; echo '1,$$p' ) | "
	"ed - ${quote $i} > ${quote $out}"
	;
