Hi Daniel,
On Wed, 19 Feb 2025 11:52:38 +0100, Daniel Wagner via Quilt-dev wrote:
> The round brackets are non terminals characters for sed, thus these need
> to be escaped as well.
>
> Signed-off-by: Daniel Wagner <[email protected]>
> ---
> quilt/scripts/patchfns.in | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in
> index 1b6406a90274..549c32e4a3ee 100644
> --- a/quilt/scripts/patchfns.in
> +++ b/quilt/scripts/patchfns.in
> @@ -87,7 +87,7 @@ quote_grep_re()
> # Quote a string for use in a regular expression for a sed s/// command.
> quote_sed_re()
> {
> - echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g'
> + echo "$1" | sed -e 's:\([][^$/.*\\()]\):\\\1:g'
> }
>
> # Quote a string for use in a regular expression for an awk pattern.
I don't know what you call "non terminal characters", but to GNU sed, a
(unescaped) parenthesis in a regexp matches a parenthesis in the
pattern space. Escaped parentheses have a different meaning, they are
used to record portions of the pattern to be used in the replacement
string.
Example:
$ echo 'a(b)c' | sed -e 's/(/_/'
a_b)c
So escaping the parentheses as you suggest is going to cause trouble.
And as a matter of fact, your patch breaks the quilt test suite ("make
check").
What problem were you trying to solve in the first place?
--
Jean Delvare
SUSE L3 Support
_______________________________________________
Quilt-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/quilt-dev