summaryrefslogtreecommitdiffstats
path: root/usr.bin/diff3/diff3.ksh
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2003-07-10 16:06:07 +0000
committermillert <millert@openbsd.org>2003-07-10 16:06:07 +0000
commitd407ca27a76d17dcb9524af8c510c420d22b10e7 (patch)
treee539c5f47a58fa30c219a7b2e24ecc0504c75fcf /usr.bin/diff3/diff3.ksh
parent- working emulation for POPC instruction (diff)
downloadwireguard-openbsd-d407ca27a76d17dcb9524af8c510c420d22b10e7.tar.xz
wireguard-openbsd-d407ca27a76d17dcb9524af8c510c420d22b10e7.zip
A matching diff3 from 32V w/ some UCB changes. I cleaned this up a bit
(KNF and -Wall) and rewrote the shell front-end.
Diffstat (limited to 'usr.bin/diff3/diff3.ksh')
-rw-r--r--usr.bin/diff3/diff3.ksh62
1 files changed, 62 insertions, 0 deletions
diff --git a/usr.bin/diff3/diff3.ksh b/usr.bin/diff3/diff3.ksh
new file mode 100644
index 00000000000..dd4991c6583
--- /dev/null
+++ b/usr.bin/diff3/diff3.ksh
@@ -0,0 +1,62 @@
+#!/bin/ksh -
+#
+# $OpenBSD: diff3.ksh,v 1.1 2003/07/10 16:06:07 millert Exp $
+#
+# Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Sponsored in part by the Defense Advanced Research Projects
+# Agency (DARPA) and Air Force Research Laboratory, Air Force
+# Materiel Command, USAF, under agreement number F39502-99-1-0512.
+#
+
+set -o posix # set POSIX mode to prevent +foo in getopts
+OPTIND=1 # force getopts to reset itself
+
+export PATH=/bin:/usr/bin
+diff3prog=/usr/libexec/diff3prog
+USAGE="usage: diff3 [-aexEX3] file1 file2 file3"
+
+# Pull out any command line flags (some for diff, some for diff3)
+dflags=
+d3flags=
+while getopts "aeExX3" c; do
+ case "$c" in
+ a)
+ dflags="$dflags $1"
+ shift
+ ;;
+ e|E|x|X|3)
+ d3flags="-$c"
+ shift
+ ;;
+ *)
+ echo "$USAGE" 1>&2
+ exit 1
+ ;;
+ esac
+done
+shift $(( $OPTIND - 1 ))
+
+TMP1=`mktemp -t d3a.XXXXXXXXXX` || exit 1
+TMP2=`mktemp -t d3b.XXXXXXXXXX`
+if [ $? -ne 0 ]; then
+ rm -f $TMP1
+ exit 1
+fi
+trap "/bin/rm -f $TMP1 $TMP2" 0 1 2 13 15
+diff $dflags $1 $3 > $TMP1
+diff $dflags $2 $3 > $TMP2
+$DIFF3PROG $d3flags $TMP1 $TMP2 $1 $2 $3
+exit $?