Index: quilt.quiltrc =================================================================== RCS file: /sources/quilt/quilt/quilt.quiltrc,v retrieving revision 1.8 diff -u -r1.8 quilt.quiltrc --- quilt.quiltrc 29 Jan 2006 22:19:40 -0000 1.8 +++ quilt.quiltrc 3 Jun 2006 17:32:33 -0000 @@ -12,6 +12,10 @@ QUILT_DIFF_ARGS="--no-timestamps --color=auto" QUILT_REFRESH_ARGS="--no-timestamps --backup" +# (Add "-p ab" to QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS to get +# -p1 style diffs with a/file and b/file filenams in headers +# instead of dir.orig/file and dir/file.) + # The directory in which patches are found (defaults to "patches"). #QUILT_PATCHES=patches Index: quilt/diff.in =================================================================== RCS file: /sources/quilt/quilt/quilt/diff.in,v retrieving revision 1.65 diff -u -r1.65 diff.in --- quilt/diff.in 1 Feb 2006 04:04:06 -0000 1.65 +++ quilt/diff.in 3 Jun 2006 17:32:34 -0000 @@ -32,6 +32,10 @@ -p n Create a -p n style patch (-p0 or -p1 are supported). +-p ab Create a -p1 style patch, but use a/file and b/file as the + original and new filenames instead of the default + dir.orig/file and dir/file names. + -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of @@ -220,12 +224,15 @@ then opt_strip_level=$(patch_strip_level $last_patch) fi -if [ "$opt_strip_level" != 0 -a "$opt_strip_level" != 1 ] -then +case "$opt_strip_level" in +0 | 1 | ab) + ;; +*) printf $"Cannot diff patches with -p%s, please specify -p0 or -p1 instead\n" \ "$opt_strip_level" >&2 die 1 -fi + ;; +esac trap "die 1" SIGTERM Index: quilt/patches.in =================================================================== RCS file: /sources/quilt/quilt/quilt/patches.in,v retrieving revision 1.23 diff -u -r1.23 patches.in --- quilt/patches.in 29 Jan 2006 14:44:32 -0000 1.23 +++ quilt/patches.in 3 Jun 2006 17:32:34 -0000 @@ -53,6 +53,7 @@ touched_by_patch() { local strip=$1 patch=$2 + [ $strip = ab ] && strip=1 cat_file $(patch_file_name $patch) \ | awk ' /^\+\+\+[ \t]/ { Index: quilt/refresh.in =================================================================== RCS file: /sources/quilt/quilt/quilt/refresh.in,v retrieving revision 1.57 diff -u -r1.57 refresh.in --- quilt/refresh.in 29 Jan 2006 14:44:32 -0000 1.57 +++ quilt/refresh.in 3 Jun 2006 17:32:34 -0000 @@ -38,6 +38,10 @@ -p n Create a -p n style patch (-p0 or -p1 supported). +-p ab Create a -p1 style patch, but use a/file and b/file as the + original and new filenames instead of the default + dir.orig/file and dir/file names. + -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of @@ -144,11 +148,14 @@ then opt_strip_level=$(patch_strip_level $patch) fi -if [ $opt_strip_level -gt 1 ] -then +case "$opt_strip_level" in +0 | 1 | ab) + ;; +*) printf $"Cannot refresh patches with -p%s, please specify -p0 or -p1 instead\n" "$opt_strip_level\n" >&2 exit 1 -fi + ;; +esac trap "die 1" SIGTERM Index: quilt/scripts/patchfns.in =================================================================== RCS file: /sources/quilt/quilt/quilt/scripts/patchfns.in,v retrieving revision 1.15 diff -u -r1.15 patchfns.in --- quilt/scripts/patchfns.in 26 May 2006 10:18:47 -0000 1.15 +++ quilt/scripts/patchfns.in 3 Jun 2006 17:32:34 -0000 @@ -629,6 +629,7 @@ if [ -e "$patch_file" ] then local strip=$(patch_strip_level $patch) + [ "$strip" = ab ] && strip=1 awk ' ($1 == "+++" || $1 == "---" || $1 == "***") && \ $3 != "----" && $3 != "****" \ @@ -670,7 +671,11 @@ local index old_hdr old_date new_hdr new_date line : ${opt_strip_level:=1} - if [ $opt_strip_level -eq 0 ] + if [ $opt_strip_level = ab ] + then + old_hdr=a/$file + new_hdr=b/$file + elif [ $opt_strip_level -eq 0 ] then old_hdr=$file.orig new_hdr=$file Index: test/formats.test =================================================================== RCS file: /sources/quilt/quilt/test/formats.test,v retrieving revision 1.5 diff -u -r1.5 formats.test --- test/formats.test 23 Sep 2005 18:34:53 -0000 1.5 +++ test/formats.test 3 Jun 2006 17:32:34 -0000 @@ -104,5 +104,18 @@ > ! new > 4 + $ quilt diff -p ab + > Index: b/test.txt + > =================================================================== + > --- a/test.txt + > +++ b/test.txt + > @@ -1,5 +1,5 @@ + > 1 + > 2 + > -old + > +new + > 4 + > 5 + $ cd .. $ rm -rf d