* [BUG+PATCH] Let _expand preserve array form w/out zstyle glob
@ 2021-11-12 19:56 Marlon Richert
0 siblings, 0 replies; only message in thread
From: Marlon Richert @ 2021-11-12 19:56 UTC (permalink / raw)
To: Zsh hackers list
[-- Attachment #1: Type: text/plain, Size: 237 bytes --]
This is the bug:
% autoload compinit; compinit
% typeset -g tst=(a b)
% : $tst^D
expansions
a b
% zstyle '*' glob no
% : $tst
expansions
a\ b
I would expect the output to be the same, since we're not globbing here.
Below is the fix.
[-- Attachment #2: 0001-Let-_expand-preserve-array-form-w-out-zstyle-glob.txt --]
[-- Type: text/plain, Size: 1575 bytes --]
From d92ac7a8708cdb31e1a9cc5e7430558414233f19 Mon Sep 17 00:00:00 2001
From: Marlon Richert <marlonrichert@users.noreply.github.com>
Date: Fri, 12 Nov 2021 21:52:18 +0200
Subject: [PATCH] Let _expand preserve array form w/out zstyle glob
---
Completion/Base/Completer/_expand | 2 +-
Test/Y01completion.ztst | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Completion/Base/Completer/_expand b/Completion/Base/Completer/_expand
index 86b4ac6e4..e5e4f9b39 100644
--- a/Completion/Base/Completer/_expand
+++ b/Completion/Base/Completer/_expand
@@ -105,7 +105,7 @@ subd=("$exp[@]")
# We need to come out of this with consistent quoting, by hook or by crook.
integer done_quote
-local orig_exp=$exp
+local -a orig_exp=( $exp )
if [[ "$force" = *g* ]] || zstyle -T ":completion:${curcontext}:" glob; then
eval 'exp=( ${~exp//(#b)\\([ \"'"\'"'
])/$match[1]} ); exp=( ${(q)exp} )' 2>/dev/null && (( $#exp )) && done_quote=1
diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst
index 882a0adc4..6af0efc6d 100644
--- a/Test/Y01completion.ztst
+++ b/Test/Y01completion.ztst
@@ -62,6 +62,17 @@
>line: {: dir1 dir2 file1 file2 }{}
>line: {: *}{}
+ comptesteval $'zstyle \'*\' glob no'
+ comptesteval $'typeset -g tst=(*)'
+ comptest $': $tst\C-D'
+0:_expand preserves array form
+>DESCRIPTION:{expansions}
+>NO:{dir1}
+>NO:{dir2}
+>NO:{file1}
+>NO:{file2}
+
+ comptesteval $'zstyle -d \'*\' glob'
comptesteval '_users () { compadd user1 user2 }'
comptest $': ~\t\t\t\t\t'
0:tilde
--
2.30.1 (Apple Git-130)
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-11-12 19:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-12 19:56 [BUG+PATCH] Let _expand preserve array form w/out zstyle glob Marlon Richert
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).