mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix ERE repetition expressions in [[ ... =~ ERE{x,y} ]] (#54)
Regular expressions that combine a repetition expression with a parenthesized sub-expression throw a garbled syntax error: $ [[ AATAAT =~ (AAT){2} ]] ksh: syntax error: `~(E)(AAT){2} ]] :'%Cred%h%Creseksh: syntax error: `~(E)(AAT){2} ]] :'%Cred%h%Creseksh: syntax' unexpected The syntax error occurs because ksh is not fully accounting for '=~' when it runs into a curly bracket. This fix disables the syntax error when the operator is '=~' and adds handling for '(str){x}' (to allow for more than one sub-expression). This bugfix and the regression tests for it were backported from ksh93v- 2014-12-24-beta. src/cmd/ksh93/sh/lex.c: - Do not trigger a syntax error for '{x}' when the operator is '=~' and add handling for multiple parentheses when combined with '{x}'. src/cmd/ksh93/tests/bracket.sh: - Add two tests from ksh93v- to test sub-expressions combined with the '{x}' quantifier.
This commit is contained in:
parent
ad9a9219f0
commit
db1d539d49
3 changed files with 15 additions and 1 deletions
3
NEWS
3
NEWS
|
@ -8,6 +8,9 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
- 'read -u' will no longer crash with a memory fault when given an out of
|
||||
range or negative file descriptor.
|
||||
|
||||
- The '=~' operator no longer raises an error if a regular expression
|
||||
combines the '{x}' quantifier with a sub-expression.
|
||||
|
||||
2020-06-28:
|
||||
|
||||
- Variables created with 'typeset -RF' no longer cause a memory fault
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue