[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH 2/2] quilt patches: Add support for multiple files
From: |
Jean Delvare |
Subject: |
[Quilt-dev] [PATCH 2/2] quilt patches: Add support for multiple files |
Date: |
Tue, 30 Apr 2013 14:36:59 +0200 |
Add support for multiple files to "quilt patches". Patches will be
printed, that modify any of the listed files.
---
quilt/patches.in | 67 ++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 45 insertions(+), 22 deletions(-)
--- a/quilt/patches.in
+++ b/quilt/patches.in
@@ -17,13 +17,15 @@ then
. $QUILT_DIR/scripts/patchfns
fi
+declare -a opt_files=()
+
usage()
{
- printf $"Usage: quilt patches [-v] {file}\n"
+ printf $"Usage: quilt patches [-v] {file} [files...]\n"
if [ x$1 = x-h ]
then
printf $"
-Print the list of patches that modify the specified file. (Uses a
+Print the list of patches that modify any of the specified files. (Uses a
heuristic to determine which files are modified by unapplied patches.
Note that this heuristic is much slower than scanning applied patches.)
@@ -38,18 +40,26 @@ Note that this heuristic is much slower
fi
}
+# Uses global variable opt_files
scan_applied()
{
- local color=$1 prefix=$2 file=$3
- shift 3
- local patch
+ local color=$1 prefix=$2
+ shift 2
+ local patch file match
for patch in "$@"
do
- if [ -f "$(backup_file_name $patch "$file")" ]
- then
- echo "$color$prefix$(print_patch $patch)$color_clear"
- fi
+ match=
+ for file in "address@hidden"
+ do
+ if [ -f "$(backup_file_name $patch "$file")" ]
+ then
+ match=1
+ break
+ fi
+ done
+
+ [ -z "$match" ] || echo "$color$prefix$(print_patch
$patch)$color_clear"
done
}
@@ -74,22 +84,31 @@ touched_by_patch()
}'
}
+# Uses global variable opt_files
scan_unapplied()
{
- local color=$1 prefix=$2 file=$3 strip
- shift 3
- local file_bre="$(quote_bre $file)" patch
+ local color=$1 prefix=$2 strip
+ shift 2
+ local patch file file_bre match
for patch in "$@"
do
strip=$(patch_strip_level $patch)
[ "$strip" = ab ] && strip=1
- if touched_by_patch $strip $patch \
- | grep -q "^$file_bre\$"
- then
- echo "$color$prefix$(print_patch $patch)$color_clear"
- fi
+ match=
+ for file in "address@hidden"
+ do
+ file_bre="$(quote_bre "$file")"
+ if touched_by_patch $strip $patch \
+ | grep -q "^$file_bre\$"
+ then
+ match=1
+ break
+ fi
+ done
+
+ [ -z "$match" ] || echo "$color$prefix$(print_patch
$patch)$color_clear"
done
}
@@ -129,11 +148,15 @@ do
esac
done
-if [ $# -ne 1 ]
+if [ $# -lt 1 ]
then
usage
fi
-opt_file="$SUBDIR$1"
+while [ $# -ge 1 ]
+do
+ address@hidden"$SUBDIR$1"
+ shift
+done
top=$(top_patch)
@@ -152,12 +175,12 @@ fi
setup_pager
-scan_applied "$color_series_app" "$applied" "$opt_file" \
+scan_applied "$color_series_app" "$applied" \
$(patches_before $top)
[ -n "$top" ] && \
- scan_applied "$color_series_top" "$current" "$opt_file" \
+ scan_applied "$color_series_top" "$current" \
$top
-scan_unapplied "$color_series_una" "$unapplied" "$opt_file" \
+scan_unapplied "$color_series_una" "$unapplied" \
$(patches_after $top)
### Local Variables:
--
Jean Delvare
Suse L3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Quilt-dev] [PATCH 2/2] quilt patches: Add support for multiple files,
Jean Delvare <=