| 
#!/bin/rc
#
#	Diff standard input against $1 and produce a context style
#	diff which can be edited by hand to include modifications.
#
#	Lines with:
#
#			+ are new
#			- reqire deletion
#			| should be replaced
#			? should be substituted
#
if (! ~ $#* 1) {
	echo usage: `{basename $0} new-file >[1=2]
	exit usage
}
sed '/^[\-+\|\?.]/s/^/./' > /tmp/vidi.$pid
diff -e /tmp/vidi.$pid $1 | awk '
cmd == ""	{
			printf("%s", substr($1, 1, length($1) - 1))
			cmd = substr($1, length($1), 1)
			if (cmd == "d")
			{
				print "s/^/-/"
				cmd = ""
				next
			}
			
			if (cmd == "c")
			{
				print "s/^/?/"
				char = "|"
			}
			else
				char = "+"
			print "a"
			next
		}
$0 == "."	{
			cmd = ""
			print $0
			next
		}
		{
			print char $0
		}
END		{
			print "1,$p"
		}
' > /tmp/vidi.e$pid
ed - /tmp/vidi.$pid < /tmp/vidi.e$pid
rm -f /tmp/vidi.*$pid
 |