diff 561 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/rc
  2. # patch/diff [-w] patch-name
  3. rfork e
  4. dopts=(-c)
  5. if (~ $1 -w) {
  6. dopts=($dopts $1)
  7. shift
  8. }
  9. if(! ~ $#* 1){
  10. echo 'usage: patch/diff patch-name' >[1=2]
  11. exit usage
  12. }
  13. if(! test -d /n/sources/patch){
  14. rfork n
  15. 9fs sources
  16. }
  17. if(! test -d /n/sources/patch/$1){
  18. echo 'no such patch' /n/sources/patch/$1 >[1=2]
  19. exit nopatch
  20. }
  21. cd /n/sources/patch/$1 || exit nopatch
  22. if(! patch/okay .){
  23. echo 'bad patch: '$status >[1=2]
  24. exit badpatch
  25. }
  26. d=/n/sources/patch/$1
  27. fn xxx {
  28. echo $1
  29. diff $dopts $2.orig $d/$2 | sed 's/^/ /'
  30. }
  31. cat files | sed 's/^/xxx /' | rc