about summary refs log tree commit diff
path: root/Completion/Zsh/Type/_globqual_delims
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Zsh/Type/_globqual_delims')
-rw-r--r--Completion/Zsh/Type/_globqual_delims24
1 files changed, 24 insertions, 0 deletions
diff --git a/Completion/Zsh/Type/_globqual_delims b/Completion/Zsh/Type/_globqual_delims
new file mode 100644
index 000000000..bba4241e8
--- /dev/null
+++ b/Completion/Zsh/Type/_globqual_delims
@@ -0,0 +1,24 @@
+#autoload
+
+# Helper for _globquals.  Sets delim to delimiter to match.
+
+# don't restore special parameters
+compstate[restore]=no
+
+delim=$PREFIX[1]
+compset -p 1
+
+# One of matching brackets?
+# These don't actually work: the parser gets very confused.
+local matchl="<({[" matchr=">)}]"
+integer ind=${matchl[(I)$delim]}
+
+(( ind )) && delim=$matchr[ind]
+
+if compset -P "[^$delim]#$delim"; then
+  # Completely matched.
+  return 0
+else
+  # Still in delimiter
+  return 1
+fi