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