mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-10 12:40:58 +02:00
17760: Fix case-pattern parsing bug in sh emulation.
This commit is contained in:
parent
fbc08ff52c
commit
d4c7657014
2 changed files with 8 additions and 2 deletions
|
@ -993,8 +993,12 @@ gettokstr(int c, int sub)
|
||||||
c = Outbrack;
|
c = Outbrack;
|
||||||
break;
|
break;
|
||||||
case LX2_INPAR:
|
case LX2_INPAR:
|
||||||
if ((sub || in_brace_param) && isset(SHGLOB))
|
if (isset(SHGLOB)) {
|
||||||
break;
|
if (sub || in_brace_param)
|
||||||
|
break;
|
||||||
|
if (incasepat && !len)
|
||||||
|
return INPAR;
|
||||||
|
}
|
||||||
if (!in_brace_param) {
|
if (!in_brace_param) {
|
||||||
if (!sub) {
|
if (!sub) {
|
||||||
e = hgetc();
|
e = hgetc();
|
||||||
|
|
|
@ -1042,6 +1042,8 @@ par_case(int *complex)
|
||||||
yylex();
|
yylex();
|
||||||
if (tok == OUTBRACE)
|
if (tok == OUTBRACE)
|
||||||
break;
|
break;
|
||||||
|
if (tok == INPAR)
|
||||||
|
yylex();
|
||||||
if (tok != STRING)
|
if (tok != STRING)
|
||||||
YYERRORV(oecused);
|
YYERRORV(oecused);
|
||||||
if (!strcmp(tokstr, "esac"))
|
if (!strcmp(tokstr, "esac"))
|
||||||
|
|
Loading…
Reference in a new issue