| From f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f Mon Sep 17 00:00:00 2001 |
| From: Jean Delvare <jdelvare@suse.de> |
| Date: Fri, 9 Sep 2022 10:10:37 +0200 |
| Subject: Avoid warnings with grep 3.8 |
| |
| GNU grep version 3.8 became more strict about needless quoting in |
| patterns. We have one occurrence of that in quilt, where "/" |
| characters are being quoted by default. There are cases where they |
| indeed need to be quoted (typically when used in a sed s/// command) |
| but most of the time they do not, and this results in the following |
| warning: |
| |
| grep: warning: stray \ before / |
| |
| So rename quote_bre() to quote_sed_re(), and introduce |
| quote_grep_re() which does not quote "/". |
| |
| Signed-off-by: Jean Delvare <jdelvare@suse.de> |
| Upstream-Status: Backport [https://git.savannah.nongnu.org/cgit/quilt.git/commit/?id=f73f8d7f71de2878d3f92881a5fcb8eafd78cb5f] |
| Signed-off-by: Alexander Kanavin <alex@linutronix.de> |
| --- |
| quilt/diff.in | 2 +- |
| quilt/patches.in | 2 +- |
| quilt/scripts/patchfns.in | 20 +++++++++++++------- |
| quilt/upgrade.in | 4 ++-- |
| 4 files changed, 17 insertions(+), 11 deletions(-) |
| |
| diff --git a/quilt/diff.in b/quilt/diff.in |
| index e90dc33..07788ff 100644 |
| --- a/quilt/diff.in |
| +++ b/quilt/diff.in |
| @@ -255,7 +255,7 @@ then |
| # Add all files in the snapshot into the file list (they may all |
| # have changed). |
| files=( $(find $QUILT_PC/$snap_subdir -type f \ |
| - | sed -e "s/^$(quote_bre $QUILT_PC/$snap_subdir/)//" \ |
| + | sed -e "s/^$(quote_sed_re $QUILT_PC/$snap_subdir/)//" \ |
| | sort) ) |
| printf "%s\n" "${files[@]}" >&4 |
| unset files |
| diff --git a/quilt/patches.in b/quilt/patches.in |
| index bb17a46..eac45a9 100644 |
| --- a/quilt/patches.in |
| +++ b/quilt/patches.in |
| @@ -60,7 +60,7 @@ scan_unapplied() |
| # Quote each file name only once |
| for file in "${opt_files[@]}" |
| do |
| - files_bre[${#files_bre[@]}]=$(quote_bre "$file") |
| + files_bre[${#files_bre[@]}]=$(quote_grep_re "$file") |
| done |
| |
| # "Or" all files in a single pattern |
| diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in |
| index c2d5f9d..1bd7233 100644 |
| --- a/quilt/scripts/patchfns.in |
| +++ b/quilt/scripts/patchfns.in |
| @@ -78,8 +78,14 @@ array_join() |
| done |
| } |
| |
| -# Quote a string for use in a basic regular expression. |
| -quote_bre() |
| +# Quote a string for use in a regular expression for a grep pattern. |
| +quote_grep_re() |
| +{ |
| + echo "$1" | sed -e 's:\([][^$.*\\]\):\\\1:g' |
| +} |
| + |
| +# Quote a string for use in a regular expression for a sed s/// command. |
| +quote_sed_re() |
| { |
| echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g' |
| } |
| @@ -215,7 +221,7 @@ patch_in_series() |
| |
| if [ -e "$SERIES" ] |
| then |
| - grep -q "^$(quote_bre $patch)\([ \t]\|$\)" "$SERIES" |
| + grep -q "^$(quote_grep_re $patch)\([ \t]\|$\)" "$SERIES" |
| else |
| return 1 |
| fi |
| @@ -365,7 +371,7 @@ is_applied() |
| { |
| local patch=$1 |
| [ -e $DB ] || return 1 |
| - grep -q "^$(quote_bre $patch)\$" $DB |
| + grep -q "^$(quote_grep_re $patch)\$" $DB |
| } |
| |
| applied_patches() |
| @@ -465,7 +471,7 @@ remove_from_db() |
| local tmpfile |
| if tmpfile=$(gen_tempfile) |
| then |
| - grep -v "^$(quote_bre $patch)\$" $DB > $tmpfile |
| + grep -v "^$(quote_grep_re $patch)\$" $DB > $tmpfile |
| cat $tmpfile > $DB |
| rm -f $tmpfile |
| [ -s $DB ] || rm -f $DB |
| @@ -520,7 +526,7 @@ find_patch() |
| fi |
| |
| local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/} |
| - local bre=$(quote_bre "$patch") |
| + local bre=$(quote_sed_re "$patch") |
| set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\|\.lz\)\([ "$'\t'"]\|$\)/!d" \ |
| -e 's/[ '$'\t''].*//' "$SERIES") |
| if [ $# -eq 1 ] |
| @@ -631,7 +637,7 @@ files_in_patch() |
| then |
| find "$path" -type f \ |
| -a ! -path "$(quote_glob "$path")/.timestamp" | |
| - sed -e "s/$(quote_bre "$path")\///" |
| + sed -e "s/$(quote_sed_re "$path")\///" |
| fi |
| } |
| |
| diff --git a/quilt/upgrade.in b/quilt/upgrade.in |
| index dbf7d05..866aa33 100644 |
| --- a/quilt/upgrade.in |
| +++ b/quilt/upgrade.in |
| @@ -74,7 +74,7 @@ printf $"Converting meta-data to version %s\n" "$DB_VERSION" |
| |
| for patch in $(applied_patches) |
| do |
| - proper_name="$(grep "^$(quote_bre $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" |
| + proper_name="$(grep "^$(quote_grep_re $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" |
| proper_name=${proper_name#$QUILT_PATCHES/} |
| proper_name=${proper_name%% *} |
| if [ -z "$proper_name" ] |
| @@ -84,7 +84,7 @@ do |
| fi |
| |
| if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \ |
| - && grep -q "^$(quote_bre $patch)\$" \ |
| + && grep -q "^$(quote_grep_re $patch)\$" \ |
| $QUILT_PC/applied-patches |
| then |
| mv $QUILT_PC/$patch $QUILT_PC/$proper_name \ |
| -- |
| cgit v1.1 |
| |