From 6c6a6e00e0ff48216395f8525800c571d6a785b9 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 28 Feb 2009 03:15:17 +0100 Subject: [PATCH] Don't use "sed --posix", since it is buggy. --- ChangeLog | 5 +++++ gnulib-tool | 38 +++++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97fd049f6..79abe824c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-02-27 Bruno Haible + * gnulib-tool (sed): Don't alias as "sed --posix". + Reported by Eric Blake. + +2009-02-27 Bruno Haible + Avoid test link errors. * modules/uninorm/nfc-tests (test_u32_nfc_big_LDADD): New variable. * modules/uninorm/nfd-tests (test_u32_nfd_big_LDADD): New variable. diff --git a/gnulib-tool b/gnulib-tool index a044ead5c..a870a0067 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -63,24 +63,28 @@ if test -z "${AUTOPOINT}" || test -n "${GETTEXTPATH}"; then AUTOPOINT="${GETTEXTPATH}autopoint" fi -# When using GNU sed, turn off as many GNU extensions as possible, -# to minimize the risk of accidentally using non-portable features. -# However, do this only for gnulib-tool itself, not for the code that -# gnulib-tool generates, since we don't want "sed --posix" to leak -# into makefiles. -if (alias) > /dev/null 2>&1 && echo | sed --posix -e d >/dev/null 2>&1; then - # Define sed as an alias. - # It is not always possible to use aliases. Aliases are guaranteed to work - # if the executing shell is bash and either it is invoked as /bin/sh or - # is a version >= 2.0, supporting shopt. This is the common case. - # Two other approaches (use of a variable $sed or of a function func_sed - # instead of an alias) require massive, fragile code changes. - # An other approach (use of function sed) requires `which sed` - but 'which' - # is hard to emulate, due to missing "test -x" on some platforms. - if test -n "$BASH_VERSION"; then - shopt -s expand_aliases >/dev/null 2>&1 +# Disabled because "sed --posix" is buggy in GNU sed 4.1.5, see +# . +if false; then + # When using GNU sed, turn off as many GNU extensions as possible, + # to minimize the risk of accidentally using non-portable features. + # However, do this only for gnulib-tool itself, not for the code that + # gnulib-tool generates, since we don't want "sed --posix" to leak + # into makefiles. + if (alias) > /dev/null 2>&1 && echo | sed --posix -e d >/dev/null 2>&1; then + # Define sed as an alias. + # It is not always possible to use aliases. Aliases are guaranteed to work + # if the executing shell is bash and either it is invoked as /bin/sh or + # is a version >= 2.0, supporting shopt. This is the common case. + # Two other approaches (use of a variable $sed or of a function func_sed + # instead of an alias) require massive, fragile code changes. + # An other approach (use of function sed) requires `which sed` - but + # 'which' is hard to emulate, due to missing "test -x" on some platforms. + if test -n "$BASH_VERSION"; then + shopt -s expand_aliases >/dev/null 2>&1 + fi + alias sed='sed --posix' fi - alias sed='sed --posix' fi # sed_noop is a sed expression that does nothing. -- 2.11.0