1#!/bin/rc 2 3rfork e 4if(! ~ $#* 1){ 5 echo 'usage: patch/undo patch-name' >[1=2] 6 exit usage 7} 8 9if(! test -d /n/sources/patch){ 10 rfork n 11 9fs sources 12} 13 14if(! test -d /n/sources/patch/$1){ 15 echo 'no such patch' /n/sources/patch/$1 >[1=2] 16 exit nopatch 17} 18 19d=$1 20builtin cd /n/sources/patch/$1 || exit nopatch 21if(! patch/okay .){ 22 echo 'bad patch: '$status >[1=2] 23 exit badpatch 24} 25 26fn xxx { 27 if(cmp $2.new $1){ 28 echo cp /n/sources/patch/$d/$2.backup $1 29 cp $2.backup $1 30 } 31 if not 32 echo $1 has changed since patch was applied! >[2=1] 33} 34cat files | sed 's/^/xxx /' |rc 35 36