+git /^deleted file mode /.
[nethome.git] / bin / diffdecvs
index 6034f83..3224b51 100755 (executable)
@@ -6,7 +6,31 @@ if [ $# -ge 2 ];then
        exit 1
 fi
 
-prog='print if !/^Index:/ && !/^={67}$/ && !/^RCS file:/ && !/^retrieving revision / && !/^diff -/;'
+prog='
+       $wasdiff-- if $wasdiff;
+       $wasdiff=3 if /^diff -/ || /^revision /;
+       # Do not substitute already existing "./"... or "/dev/null".
+       # gdb.spec is using -p1.
+       s{^(\Q---\E )gdb-[^/]*/}{$1./} if $wasdiff==2;
+       s{^(\Q+++\E )gdb-[^/]*/}{$1./} if $wasdiff==1;
+       # binutils.spec is using -p0.
+       s{^(\Q---\E )binutils-[^/]*/}{$1} if $wasdiff==2;
+       s{^(\Q+++\E )binutils-[^/]*/}{$1} if $wasdiff==1;
+       $f=$1 if m{^--- (\S+)\s*$} && $wasdiff==2;
+       s{^(\Q+++\E )-\t}{$1$f\t} && wasdiff==1;
+       next if /^[?]/;
+       next if /^Index:/;
+       next if /^index /;
+       next if /^={67}$/;
+       next if /^RCS file:/;
+       next if /^retrieving revision /;
+       next if /^diff -/;
+       next if /^revision /;
+       next if /^new file mode /;
+       next if /^deleted file mode /;
+       next if m{^/.*,v  -->  standard output$};
+       print;
+'
 if [ $# -eq 1 ];then
        exec perl -ne "$prog" -i "$1"
 else