23792: test and documentation for improved backslash quoting

This commit is contained in:
Peter Stephenson 2007-08-22 10:46:40 +00:00
parent 55b7a07a7e
commit 749951e03d
3 changed files with 16 additions and 3 deletions

View file

@ -1,5 +1,8 @@
2007-08-22 Peter Stephenson <pws@csr.com>
* 23792: Doc/Zsh/expn.yo, Test/D07multibyte.ztst: test
and documentation for 23784.
* 23791: Src/Zle/zle_refresh.c: use VARARR for arrays with
MB_CUR_MAX.

View file

@ -792,10 +792,14 @@ have `tt(foo=bar)' and `tt(bar=baz)', the strings tt(${(P)foo}),
tt(${(P)${foo}}), and tt(${(P)$(echo bar)}) will be expanded to `tt(baz)'.
)
item(tt(q))(
Quote the resulting words with backslashes. If this flag is given
Quote the resulting words with backslashes; unprintable or invalid
characters are quoted using the tt($'\)var(NNN)tt(') form, with separate
quotes for each octet. If this flag is given
twice, the resulting words are quoted in single quotes and if it is
given three times, the words are quoted in double quotes. If it is
given four times, the words are quoted in single quotes preceded by a tt($).
given three times, the words are quoted in double quotes; in these forms
no special handling of unprintable or invalid characters is attempted. If
the flag is given four times, the words are quoted in single quotes
preceded by a tt($).
)
item(tt(Q))(
Remove one level of quotes from the resulting words.

View file

@ -378,3 +378,9 @@
>ngs200.txt
>ngs20.txt
>ngs2.txt
# Not strictly multibyte, but gives us a well-defined locale for testing.
foo=$'X\xc0Y\x07Z\x7fT'
print -r ${(q)foo}
0:Backslash-quoting of unprintable/invalid characters uses $'...'
>X$'\300'Y$'\a'Z$'\177'T