gnulib-tool: Ensure cache variables are unique.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 31 Jan 2010 21:37:41 +0000 (22:37 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 8 Feb 2010 00:07:14 +0000 (01:07 +0100)
ChangeLog
gnulib-tool

index e9ef438..fab0222 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-01-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       * 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  <Ralf.Wildenhues@gmx.de>
+
        gnulib-tool: Make caching optional.
        * gnulib-tool: Accept option --no-cache, turning off $do_cache.
        Update matching short versions of --no-changelog.
index f9883bb..bf42934 100755 (executable)
@@ -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
 }