From cc045f2aee51c271f0ce36edb694a5aae72a4402 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Sun, 31 Jan 2010 22:37:41 +0100 Subject: [PATCH] gnulib-tool: Ensure cache variables are unique. --- ChangeLog | 6 ++++++ gnulib-tool | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e9ef43819b..fab02220aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-01-18 Ralf Wildenhues + + * gnulib-tool (func_cache_lookup_module): Store the module name + belonging to the cache variable; error out if two different + module names map to the same cache variable name. + 2010-01-18 Ralf Wildenhues gnulib-tool: Make caching optional. diff --git a/gnulib-tool b/gnulib-tool index f9883bbff3..bf42934f05 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -1436,7 +1436,7 @@ func_cache_lookup_module () # following line with an opening quote, if any. # 4) Special treatment if two headers are only separated by one newline. sed_cache_module=' - 1i\'$nl$cachevar'_cached='\''yes\'$nl' + 1i\'$nl$cachevar'_name='\'$1\'\\$nl$cachevar'_cached='\''yes\'$nl' :match t match @@ -1480,6 +1480,10 @@ func_cache_lookup_module () cache_script=`sed "$sed_cache_module" < "$lookedup_file" \ | sed "$sed_strip_trailing_nl"` eval "$cache_script" + else + if eval test "$1" != \"\$${cachevar}_name\"; then + eval 'func_fatal_error "cache variable collision: $1 and $'${cachevar}'_name"' + fi fi } -- 2.30.2