diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2010-01-17 21:48:25 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2010-01-17 21:48:25 +0000 |
commit | 8890e6e19ffa0bede585527671987972137009c7 (patch) | |
tree | 624d1830c56f33b2f3f1a3560306bad6336a4d32 /Test | |
parent | a2c89eb701e5ec3ffca33f25673a9600a9735930 (diff) | |
download | zsh-8890e6e19ffa0bede585527671987972137009c7.tar.gz zsh-8890e6e19ffa0bede585527671987972137009c7.tar.xz zsh-8890e6e19ffa0bede585527671987972137009c7.zip |
27600: extend =~ syntax to set positional variables for matches
Diffstat (limited to 'Test')
-rw-r--r-- | Test/C02cond.ztst | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Test/C02cond.ztst b/Test/C02cond.ztst index de82dcbe2..b0e278f4b 100644 --- a/Test/C02cond.ztst +++ b/Test/C02cond.ztst @@ -251,6 +251,39 @@ F:Failures in these cases do not indicate a problem in the shell. fi 0:regex tests shouldn't crash + if zmodload -i zsh/regex 2>/dev/null; then + string="this has stuff in it" + bad_regex=0 + if [[ $string =~ "h([a-z]*) s([a-z]*) " ]]; then + if [[ "$MATCH $MBEGIN $MEND" != "has stuff 6 15" ]]; then + print -r "regex variables MATCH MBEGIN MEND: + '$MATCH $MBEGIN $MEND' + should be: + 'has stuff 6 15'" >&2 + bad_regex=1 + else + results=("as 7 8" "tuff 11 14") + for i in 1 2; do + if [[ "$match[$i] $mbegin[$i] $mend[$i]" != $results[i] ]]; then + print -r "regex variables match[$i] mbegin[$i] mend[$i]: + '$match[$i] $mbegin[$i] $mend[$i]' + should be + '$results[$i]'" >&2 + break + fi + done + fi + else + print -r "regex failed to match '$string'" >&2 + fi + (( bad_regex )) || print OK + else + # if it didn't load, tough, but not a test error + print OK + fi +0:MATCH, MBEGIN, MEND, match, mbegin, mend +>OK + %clean # This works around a bug in rm -f in some versions of Cygwin chmod 644 unmodish |