mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 10:01:11 +02:00
35250: Fix case documentation (SH_GLOB)
This commit is contained in:
parent
afb78f5d14
commit
a95f2c6071
3 changed files with 15 additions and 7 deletions
|
@ -1,5 +1,7 @@
|
|||
2015-05-21 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 35250: Doc/Zsh/grammar.yo: fix case documentation (SH_GLOB).
|
||||
|
||||
* 35248: Src/lex.c, Src/parse.c, Test/A01grammar.ztst:
|
||||
treat fully parenthesised zsh patterns as complete
|
||||
case patterns again.
|
||||
|
|
|
@ -239,11 +239,17 @@ item(tt(case) var(word) tt(in) [ [tt(LPAR())] var(pattern) [ tt(|) var(pattern)
|
|||
Execute the var(list) associated with the first var(pattern)
|
||||
that matches var(word), if any. The form of the patterns
|
||||
is the same as that used for filename generation. See
|
||||
noderef(Filename Generation). Note further that the whole
|
||||
pattern with alternatives is treated by the shell as equivalent
|
||||
to a group of patterns within parentheses, even though in
|
||||
the tt(case) syntax whitespace may appear about the parentheses and the
|
||||
vertical bar.
|
||||
noderef(Filename Generation).
|
||||
|
||||
Note further that, unless the tt(SH_GLOB) option is set, the whole
|
||||
pattern with alternatives is treated by the shell as equivalent to a
|
||||
group of patterns within parentheses, although white space may appear
|
||||
about the parentheses and the vertical bar and will be stripped from the
|
||||
pattern at those points. White space may appear elsewhere in the
|
||||
pattern; this is not stripped. If the tt(SH_GLOB) option is set, so
|
||||
that an opening parenthesis can be unambiguously treated as part of the
|
||||
case syntax, the expression is parsed into separate words and these are
|
||||
treated as strict alternatives (as in other shells).
|
||||
|
||||
If the var(list) that is executed is terminated with tt(;&) rather than
|
||||
tt(;;), the following list is also executed. The rule for
|
||||
|
|
|
@ -1183,7 +1183,7 @@ par_case(int *cmplx)
|
|||
*
|
||||
* The next token we get may be
|
||||
* - ")" or "|" if we're looking at an honest-to-god
|
||||
* "case" patten, either because there's no opening
|
||||
* "case" pattern, either because there's no opening
|
||||
* parenthesis, or because SH_GLOB is set and we
|
||||
* managed to grab an initial "(" to mark the start
|
||||
* of the case pattern.
|
||||
|
@ -1196,7 +1196,7 @@ par_case(int *cmplx)
|
|||
* the string, so may be separated by whitespace.
|
||||
* So we quietly massage the whitespace and hope
|
||||
* no one noticed. This is horrible, but it's
|
||||
* unfortunately too difficult to comine traditional
|
||||
* unfortunately too difficult to combine traditional
|
||||
* zsh patterns with a properly parsed case pattern
|
||||
* without generating incompatibilities which aren't
|
||||
* all that popular (I've discovered).
|
||||
|
|
Loading…
Reference in a new issue