Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: "zstyle -L" doesn't quote properly
- X-seq: zsh-workers 48425
- From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- To: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- Cc: Zsh hackers list <zsh-workers@xxxxxxx>
- Subject: Re: "zstyle -L" doesn't quote properly
- Date: Wed, 7 Apr 2021 17:36:22 +0000
- Archived-at: <https://zsh.org/workers/48425>
- In-reply-to: <CAH+w=7bNbz97RzMQNyAVjgzVtSQotwwfSFNb1c2p7-0vPFjMuQ@mail.gmail.com>
- List-id: <zsh-workers.zsh.org>
- References: <CAH+w=7bNbz97RzMQNyAVjgzVtSQotwwfSFNb1c2p7-0vPFjMuQ@mail.gmail.com>
Bart Schaefer wrote on Wed, Apr 07, 2021 at 09:42:12 -0700:
> This occurs as a result of a typo when defining the style (the word
> "menu" is misplaced after a copy/paste/edit) but produces garbage
> output. I think the assumption is that in the syntax ...
>
> zstyle [ -e | - | -- ] PATTERN STYLE STRING ...
>
> ... the STYLE must be a simple word and therefore doesn't need
> quoting, but in fact the command will accept any sort of string in
> that position.
>
> % zstyle -e ':completion::*:default' '[[ $WIDGET =
> (|reverse-)menu-complete ]] && reply=(menu yes select interactive)'
> % zstyle -L
> zstyle -e ':completion::*:default' [[ $WIDGET =
> (|reverse-)menu-complete ]] && reply=(menu yes select interactive)
Here's a test.
Right now it prints "ke\x83 y", i.e., the correct value, but metafied
and not escaped.
I'll go ahead and commit it, but whoever is working on a fix, feel free
to tweak/extend it as needed.
Cheers,
Daniel
.oO( type-safety for metafied/tokenized/verbatim strings )
diff --git a/Test/V05styles.ztst b/Test/V05styles.ztst
index 048751941..3fcedfef1 100644
--- a/Test/V05styles.ztst
+++ b/Test/V05styles.ztst
@@ -164,3 +164,12 @@
0:the example in the documentation remains correct
>snow
>snow
+
+ (
+ zstyle $'con\x00text' $'ke\x00y' $'val\x00u' $'e'
+ a=( ${(f)"$(zstyle -L)"} )
+ a=( ${(M)a:#*con*text*ke*y*val*u*e} )
+ print -r -- "$a"
+ )
+-f:zstyle -L escapes the key (regression: workers/48424)
+>zstyle $'con\C-@text' $'ke\C-@y' $'val\C-@u' e
Messages sorted by:
Reverse Date,
Date,
Thread,
Author