Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#!/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