ref: 4a916ba86e700d5e99311b45a81dc7be8a50b843
dir: /rc/bin/patch/undo/
#!/bin/rc rfork e if(! ~ $#* 1){ echo 'usage: patch/undo patch-name' >[1=2] exit 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 } d=$1 builtin cd /n/sources/patch/$1 || exit nopatch if(! patch/okay .){ echo 'bad patch: '$status >[1=2] exit badpatch } fn xxx { if(cmp $2.new $1){ echo cp /n/sources/patch/$d/$2.backup $1 cp $2.backup $1 } if not echo $1 has changed since patch was applied! >[2=1] } cat files | sed 's/^/xxx /' |rc