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 e9ef43819b8dc4acab88d0f9475c8451e708426f..fab02220aa359441c32e4f8b222683e8bac0e152 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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.
index f9883bbff37400cc7d6263224ec3e401d226a5d2..bf42934f05b00e6979dc6e2fdfd9d87c7997b155 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
 }