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