From 78654869942e94b77ba878a383c4e91d2978567c Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 26 Jun 2020 17:32:02 +0100 Subject: 46100: Fix =subst before =(subst) This occurs with SH file expansion ordering. Add test. --- ChangeLog | 5 +++++ Src/subst.c | 2 +- Test/D03procsubst.ztst | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8ba6f1159..b48d6a40c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-06-26 Peter Stephenson + + * 46110: Src/subst.c, Test/D03procsubst.ztst: If =subst occurs + before =(subst) we should allow for the possibility of the latter. + 2020-06-26 Oliver Kiddle * unposted c.f. 46034: Completion/Unix/Command/_gpg: workaround diff --git a/Src/subst.c b/Src/subst.c index 90b5fc121..ed3f4a82b 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -796,7 +796,7 @@ filesubstr(char **namptr, int assign) *namptr = dyncat(hom, ptr); return 1; } - } else if (*str == Equals && isset(EQUALS) && str[1]) { /* =foo */ + } else if (*str == Equals && isset(EQUALS) && str[1] && str[1] != Inpar) { /* =foo */ char *expn = equalsubstr(str+1, assign, isset(NOMATCH)); if (expn) { *namptr = expn; diff --git a/Test/D03procsubst.ztst b/Test/D03procsubst.ztst index 8cf4e2a7f..68a68ef6e 100644 --- a/Test/D03procsubst.ztst +++ b/Test/D03procsubst.ztst @@ -156,3 +156,7 @@ procfunc <(echo argument) 0:With /proc/self file descriptors must not be tidied up too early >argument + + $ZTST_testdir/../Src/zsh -df -o shfileexpansion -c 'cat =(echo hi)' +0:EQUALS expansion followed by =(...) (sh ordering) should work +>hi -- cgit 1.4.1