Mercurial > hg > octave-lyh > gnulib-hg
changeset 11037:d94dc78c3947
Improve func_remove_prefix, func_remove_suffix.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 18 Jan 2009 04:07:35 +0100 |
parents | e901ed0f1ffc |
children | 6c37790abb93 |
files | ChangeLog gnulib-tool |
diffstat | 2 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-01-17 Bruno Haible <bruno@clisp.org> + + * gnulib-tool (func_remove_prefix): Escape all dots in the prefix. + Update documentation. + (func_remove_suffix): Escape all dots in the suffix. Update + documentation. + (func_filter_filelist): Update documentation. + Reported by Ralf Wildenhues. + 2009-01-17 Bruno Haible <bruno@clisp.org> * modules/dprintf-posix-tests: New file.
--- a/gnulib-tool +++ b/gnulib-tool @@ -411,7 +411,7 @@ # removes the given prefix from the value of the shell variable var. # var should be the name of a shell variable. # Its value should not contain a newline and not start or end with whitespace. -# prefix should not contain the characters "$`\{}|. +# prefix should not contain the characters "$`\{}[]^|. if ( foo=bar; eval 'test "${foo#b}" = ar' ) >/dev/null 2>&1; then func_remove_prefix () { @@ -423,6 +423,12 @@ { eval "value=\"\$$1\"" prefix="$2" + case "$prefix" in + *.*) + sed_escape_dots='s/\([.]\)/\\\1/g' + prefix=`echo "$prefix" | sed -e "$sed_escape_dots"` + ;; + esac value=`echo "$value" | sed -e "s|^${prefix}||"` eval "$1=\"\$value\"" } @@ -433,7 +439,7 @@ # removes the given suffix from the value of the shell variable var. # var should be the name of a shell variable. # Its value should not contain a newline and not start or end with whitespace. -# suffix should not contain the characters "$`\{}|. +# suffix should not contain the characters "$`\{}[]^|. if ( foo=bar; eval 'test "${foo%r}" = ba' ) >/dev/null 2>&1; then func_remove_suffix () { @@ -445,6 +451,12 @@ { eval "value=\"\$$1\"" suffix="$2" + case "$suffix" in + *.*) + sed_escape_dots='s/\([.]\)/\\\1/g' + suffix=`echo "$suffix" | sed -e "$sed_escape_dots"` + ;; + esac value=`echo "$value" | sed -e "s|${suffix}\$||"` eval "$1=\"\$value\"" } @@ -1379,7 +1391,7 @@ # elements starting with prefix and ending with suffix are considered. # Processing: removed_prefix and removed_suffix are removed from each element, # added_prefix and added_suffix are added to each element. -# removed_prefix, removed_suffix should not contain the characters "$`\{}|. +# removed_prefix, removed_suffix should not contain the characters "$`\{}[]^|. # added_prefix, added_suffix should not contain the characters \|. func_filter_filelist () {