1#!/bin/rc 2 3rfork e 4if(! test -d /n/sources/patch){ 5 rfork n 6 9fs sources 7} 8 9pref='' 10cd /n/sources/patch 11if(~ $1 saved sorry applied){ 12 pref=$1^'/' 13 shift 14} 15if(~ $#* 0) 16 *=(`{if(~ $pref *?*) cd $pref; ls -t | grep -v '^(saved|sorry|applied)$'}) 17 18trunc=(sed 5q) 19if(~ $#* 1) 20 trunc=cat 21 22 23{ 24for(i in $*){ 25 i=$pref^$i 26 if(test -f $i/origls) 27 cat $i/origls | awk '{$NF="'$i'"; print}' 28 if not 29 ls -ld $i 30 if(patch/okay $i){ 31 if(test -r $i/email) 32 echo from `{cat $i/email} 33 cat $i/files | awk '{print " " $1}' 34 cat $i/readme | sed 's/^/ /' | $trunc 35 if(test -f $i/notes) 36 cat $i/notes 37 } 38 if not 39 echo ' 'bad patch: $status >[2=1] 40 echo 41} 42 43} >/tmp/patchtmp.$pid 44 45cat /tmp/patchtmp.$pid 46rm -f /tmp/patchtmp.$pid 47