about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-04-28 09:27:37 +0100
committerPeter Stephenson <pws@zsh.org>2015-04-28 09:27:37 +0100
commit8b4c46fb3f85148ca99b3535f755547560b89bc9 (patch)
tree6551512b48d9c7fcd54ec49bbd26b122bb7d7e0f
parentdf5115a741561d251b30926ce09486737da1e8da (diff)
downloadzsh-8b4c46fb3f85148ca99b3535f755547560b89bc9.tar.gz
zsh-8b4c46fb3f85148ca99b3535f755547560b89bc9.tar.xz
zsh-8b4c46fb3f85148ca99b3535f755547560b89bc9.zip
34980: in completion match new Makefile assignment forms
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_make12
2 files changed, 9 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c85d15a5a..71329ac4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2015-04-28  Peter Stephenson  <p.stephenson@samsung.com>
 
+	* Jared Ahern: 34980: Completion/Unix/Command/_make: match
+	additional forms of assignment in makefiles.
+
 	* 34979: Src/exec.c: preserve job text in shell job fix code.
 
 	* 34977: Src/zsh.mdd: more reliable test for whether
diff --git a/Completion/Unix/Command/_make b/Completion/Unix/Command/_make
index e5a513f64..225c0af85 100644
--- a/Completion/Unix/Command/_make
+++ b/Completion/Unix/Command/_make
@@ -64,18 +64,18 @@ _make-parseMakefile () {
   while read input
   do
     case "$input " in
-      # VARIABLE = value
-      ([[:alnum:]][[:alnum:]_]#[ $TAB]#=*)
-      var=${input%%[ $TAB]#=*}
+      # VARIABLE = value OR VARIABLE ?= value
+      ([[:alnum:]][[:alnum:]_]#[ $TAB]#(\?|)=*)
+      var=${input%%[ $TAB]#(\?|)=*}
       val=${input#*=}
       val=${val##[ $TAB]#}
       VARIABLES[$var]=$val
       ;;
 
-      # VARIABLE := value
+      # VARIABLE := value OR VARIABLE ::= value
       # Evaluated immediately
-      ([[:alnum:]][[:alnum:]_]#[ $TAB]#:=*)
-      var=${input%%[ $TAB]#:=*}
+      ([[:alnum:]][[:alnum:]_]#[ $TAB]#:(:|)=*)
+      var=${input%%[ $TAB]#:(:|)=*}
       val=${input#*=}
       val=${val##[ $TAB]#}
       val=$(_make-expandVars $val)