about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2015-11-25 01:46:55 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2015-11-27 07:26:38 +0000
commit2ab41d508d453be2305b898325a9a87f00aaebda (patch)
tree4e668f4b698d0e253073544f2bdc6fa0ca95dd06
parent3d962aacd5c86d18ad379eaca217bb53d0615a33 (diff)
downloadzsh-2ab41d508d453be2305b898325a9a87f00aaebda.tar.gz
zsh-2ab41d508d453be2305b898325a9a87f00aaebda.tar.xz
zsh-2ab41d508d453be2305b898325a9a87f00aaebda.zip
37215: _regex_words: Don't add mismatched parentheses
I ran into this in the wild¹, it manifested as the following error message:

    zregexparse:4: not enough regex arguments

¹ https://bug.tasktools.org/browse/TW-1729
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Base/Utility/_regex_words8
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a1034cfcc..3fabfc5e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-27  Daniel Shahaf  <d.s@daniel.shahaf.name>
+
+	* 37215: Completion/Base/Utility/_regex_words: _regex_words:
+	Don't add mismatched parentheses
+
 2015-11-26  Barton E. Schaefer  <schaefer@zsh.org>
 
 	* 37229: Src/Modules/param_private.c, Test/V10private.ztst: non-
diff --git a/Completion/Base/Utility/_regex_words b/Completion/Base/Utility/_regex_words
index 77ba197a4..62c2491bb 100644
--- a/Completion/Base/Utility/_regex_words
+++ b/Completion/Base/Utility/_regex_words
@@ -20,7 +20,13 @@ local tag=$1
 local desc=$2
 shift 2
 
-reply=(\()
+if (( $# )); then
+  reply=(\()
+else
+  # ### Is this likely to happen in callers?  Should we warn?
+  reply=()
+  return
+fi
 
 integer i
 local -a wds