summaryrefslogtreecommitdiff
path: root/rc/bin/patch/diff
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
commit2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch)
treef6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/patch/diff
parente463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff)
downloadplan9front-2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f.tar.xz
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/patch/diff')
-rwxr-xr-xrc/bin/patch/diff45
1 files changed, 45 insertions, 0 deletions
diff --git a/rc/bin/patch/diff b/rc/bin/patch/diff
new file mode 100755
index 000000000..944b5231b
--- /dev/null
+++ b/rc/bin/patch/diff
@@ -0,0 +1,45 @@
+#!/bin/rc
+# patch/diff [-w] patch-name
+rfork e
+fn usage {
+ echo 'usage: patch/diff [-bmnwz] patch-name' >[1=2]
+ exit usage
+}
+
+dopts=(-c)
+while (! ~ $#* 0 && ~ $1 -*) {
+ switch ($1) {
+ case -[bmnw]
+ dopts=($dopts $1)
+ case -z
+ dopts=()
+ case *
+ usage
+ }
+ shift
+}
+if(! ~ $#* 1)
+ usage
+
+if(! test -d /n/sources/patch){
+ rfork n
+ 9fs sources
+}
+
+if(! test -d /n/sources/patch/$1){
+ echo 'no such patch' /n/sources/patch/$1 >[1=2]
+ exit nopatch
+}
+
+builtin cd /n/sources/patch/$1 || exit nopatch
+if(! patch/okay .){
+ echo 'bad patch: '$status >[1=2]
+ exit badpatch
+}
+
+d=/n/sources/patch/$1
+fn xxx {
+ echo $1
+ diff $dopts $2.orig $d/$2 | sed 's/^/ /'
+}
+cat files | sed 's/^/xxx /' | rc