about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Completion/Unix/Command/_make2
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f46838c1..09849a726 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-11-09  Peter Stephenson  <pws@csr.com>
+
+	* 22988: arno: Completion/Unix/Command/_make: failed on
+	special variable names, so use local -h.  Probably not a
+	complete fix since the function can run recursivesly for
+	include directives which should use the same namespace.
+
 2006-11-08  Peter Stephenson  <pws@csr.com>
 
 	* 22983: Src/builtin.c, Src/init.c: exit could loop for ever
diff --git a/Completion/Unix/Command/_make b/Completion/Unix/Command/_make
index 76eb43f0a..91c434559 100644
--- a/Completion/Unix/Command/_make
+++ b/Completion/Unix/Command/_make
@@ -60,6 +60,7 @@ parseMakefile() {
 	    var=${input%%[ $TAB]#=*}
 	    val=${input#*=}
 	    val=${val##[ $TAB]#}
+	    local -h $var
 	    eval $var=\$val
 	    ;;
 	([[:alnum:]][[:alnum:]_]#[ $TAB]#:=*)
@@ -67,6 +68,7 @@ parseMakefile() {
 	    val=${input#*=}
 	    val=${val##[ $TAB]#}
 	    val=$(expandVars 10 $val)
+	    local -h $var
 	    eval $var=\$val
 	    ;;
 	([[:alnum:]][^$TAB:=]#:[^=]*)