+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.
# 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 ()
{
{
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\""
}
# 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 ()
{
{
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\""
}
# 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 ()
{