|
Kamil Dudka |
b8ecd5 |
From 7cde13f288c79c9b3d3b2274e7b3dc1f08ee6eeb Mon Sep 17 00:00:00 2001
|
|
Kamil Dudka |
b8ecd5 |
From: "Barton E. Schaefer" <schaefer@zsh.org>
|
|
Kamil Dudka |
b8ecd5 |
Date: Wed, 29 Jul 2015 22:36:45 -0700
|
|
Kamil Dudka |
b8ecd5 |
Subject: [PATCH] 35953: fix handling of command substitution in math context
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
Upstream-commit: c0a80171ee615b52a15a6fc8efe83c2bb53451d2
|
|
Kamil Dudka |
b8ecd5 |
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
Kamil Dudka |
b8ecd5 |
---
|
|
Kamil Dudka |
b8ecd5 |
Src/lex.c | 6 +++++-
|
|
Kamil Dudka |
b8ecd5 |
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
diff --git a/Src/lex.c b/Src/lex.c
|
|
Kamil Dudka |
b8ecd5 |
index 841fb0b..8710f75 100644
|
|
Kamil Dudka |
b8ecd5 |
--- a/Src/lex.c
|
|
Kamil Dudka |
b8ecd5 |
+++ b/Src/lex.c
|
|
Kamil Dudka |
b8ecd5 |
@@ -1387,7 +1387,7 @@ dquote_parse(char endchar, int sub)
|
|
Kamil Dudka |
b8ecd5 |
{
|
|
Kamil Dudka |
b8ecd5 |
int pct = 0, brct = 0, bct = 0, intick = 0, err = 0;
|
|
Kamil Dudka |
b8ecd5 |
int c;
|
|
Kamil Dudka |
b8ecd5 |
- int math = endchar == ')' || endchar == ']';
|
|
Kamil Dudka |
b8ecd5 |
+ int math = endchar == ')' || endchar == ']' || infor;
|
|
Kamil Dudka |
b8ecd5 |
int zlemath = math && zlemetacs > zlemetall + addedx - inbufct;
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
while (((c = hgetc()) != endchar || bct ||
|
|
Kamil Dudka |
b8ecd5 |
@@ -1994,8 +1994,10 @@ skipcomm(void)
|
|
Kamil Dudka |
b8ecd5 |
#else
|
|
Kamil Dudka |
b8ecd5 |
char *new_tokstr;
|
|
Kamil Dudka |
b8ecd5 |
int new_lexstop, new_lex_add_raw;
|
|
Kamil Dudka |
b8ecd5 |
+ int save_infor = infor;
|
|
Kamil Dudka |
b8ecd5 |
struct lexbufstate new_lexbuf;
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
+ infor = 0;
|
|
Kamil Dudka |
b8ecd5 |
cmdpush(CS_CMDSUBST);
|
|
Kamil Dudka |
b8ecd5 |
SETPARBEGIN
|
|
Kamil Dudka |
b8ecd5 |
add(Inpar);
|
|
Kamil Dudka |
b8ecd5 |
@@ -2052,6 +2054,7 @@ skipcomm(void)
|
|
Kamil Dudka |
b8ecd5 |
* the recursive parsing.
|
|
Kamil Dudka |
b8ecd5 |
*/
|
|
Kamil Dudka |
b8ecd5 |
lexflags &= ~LEXFLAGS_ZLE;
|
|
Kamil Dudka |
b8ecd5 |
+ dbparens = 0; /* restored by zcontext_restore_partial() */
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
if (!parse_event(OUTPAR) || tok != OUTPAR)
|
|
Kamil Dudka |
b8ecd5 |
lexstop = 1;
|
|
Kamil Dudka |
b8ecd5 |
@@ -2098,6 +2101,7 @@ skipcomm(void)
|
|
Kamil Dudka |
b8ecd5 |
if (!lexstop)
|
|
Kamil Dudka |
b8ecd5 |
SETPAREND
|
|
Kamil Dudka |
b8ecd5 |
cmdpop();
|
|
Kamil Dudka |
b8ecd5 |
+ infor = save_infor;
|
|
Kamil Dudka |
b8ecd5 |
|
|
Kamil Dudka |
b8ecd5 |
return lexstop;
|
|
Kamil Dudka |
b8ecd5 |
#endif
|
|
Kamil Dudka |
b8ecd5 |
--
|
|
Kamil Dudka |
b8ecd5 |
2.4.6
|
|
Kamil Dudka |
b8ecd5 |
|