[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gnulib] gnulib-tool: unterminated substitute pattern
From: |
Bruno Haible |
Subject: |
Re: [bug-gnulib] gnulib-tool: unterminated substitute pattern |
Date: |
Wed, 1 Nov 2006 14:16:16 +0100 |
User-agent: |
KMail/1.9.1 |
Roger Persson wrote:
> I get a strange sed warning/error of "unterminated substitute pattern"
> while using gnulib-tool. I'm building bison and the bootstrapping
> process uses gnulib-tool. ...
>
> I tracked down the failure to a regular expression in
> "func_get_automake_snippet" in gnulib-tool:906. This is the
> expression.
>
> # Synthesize an EXTRA_DIST augmentation.
> sed_combine_lines='/\\$/{
> :a
> N
> s/\\\
> //
> s/\\$/\\/
> ta
> }'
>
> I can't say if this is an illegal regular expression, but changing it
> to the expression below removes the problem. Be aware of my limited
> experience with this.
>
> sed_combine_lines='/\\$/{
> :a
> N
> s/\\[\n]//
> s/\\$/\\/
> ta
> }'
Thanks for analyzing and reporting this. Indeed the current regular expression
is invalid according to POSIX, since it says in
http://www.opengroup.org/onlinepubs/009695399/utilities/sed.html#tag_04_126_13_02
"The escape sequence '\n' shall match a <newline> embedded in the pattern
space. A literal <newline> shall not be used in the BRE of a context address
or in the substitute function."
I'm applying this:
2006-11-01 Bruno Haible <address@hidden>
* gnulib-tool (func_get_automake_snippet): Change sed_combine_lines to
be POSIX compliant.
Reported by Roger Persson <address@hidden>.
*** gnulib-tool 23 Oct 2006 11:25:20 -0000 1.184
--- gnulib-tool 1 Nov 2006 13:14:05 -0000
***************
*** 916,923 ****
sed_combine_lines='/\\$/{
:a
N
! s/\\\
! //
s/\\$/\\/
ta
}'
--- 916,922 ----
sed_combine_lines='/\\$/{
:a
N
! s/\\\n//
s/\\$/\\/
ta
}'