mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-28 17:10:59 +01:00
35168: Improve parsing of case patterns.
"|" is now found properly by looking for words that come from the lexical analyser, rather than hacking a pattern returned in one dollop. Update some completion functions that need extra quoting as a result. Add test for new parsing. Update version number to 5.0.8-dev-3 because of wordcode incompatibility.
This commit is contained in:
parent
34a1489f43
commit
52aeb9aaeb
14 changed files with 162 additions and 126 deletions
|
|
@ -572,6 +572,7 @@
|
|||
$ZTST_testdir/../Src/zsh -f myscript
|
||||
127q:PATHSCRIPT option not used.
|
||||
?$ZTST_testdir/../Src/zsh: can't open input file: myscript
|
||||
# '
|
||||
|
||||
$ZTST_testdir/../Src/zsh -fc 'echo $0; echo $1' myargzero myargone
|
||||
0:$0 is traditionally if bizarrely set to the first argument with -c
|
||||
|
|
@ -611,3 +612,41 @@
|
|||
>BEGIN
|
||||
>mytrue
|
||||
>END
|
||||
|
||||
fn() {
|
||||
case $1 in
|
||||
( one | two | three )
|
||||
print Matched $1
|
||||
;;
|
||||
( fo* | fi* | si* )
|
||||
print Pattern matched $1
|
||||
;;
|
||||
( []x | a[b]* )
|
||||
print Character class matched $1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
which fn
|
||||
fn one
|
||||
fn two
|
||||
fn three
|
||||
fn four
|
||||
fn five
|
||||
fn six
|
||||
fn abecedinarian
|
||||
fn xylophone
|
||||
0: case word handling
|
||||
>fn () {
|
||||
> case $1 in
|
||||
> (one | two | three) print Matched $1 ;;
|
||||
> (fo* | fi* | si*) print Pattern matched $1 ;;
|
||||
> ([]x | a[b]*) print Character class matched $1 ;;
|
||||
> esac
|
||||
>}
|
||||
>Matched one
|
||||
>Matched two
|
||||
>Matched three
|
||||
>Pattern matched four
|
||||
>Pattern matched five
|
||||
>Pattern matched six
|
||||
>Character class matched abecedinarian
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue