From 1add53c578073860f2573fcaaa6fd3f332035238 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Sat, 17 Jun 2000 19:51:51 +0000 Subject: Fix parsing of := for magicequalsubst. --- ChangeLog | 5 +++++ Src/subst.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5b2419f3..9ede30b07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-06-17 Bart Schaefer + + * 11961: Src/subst.c: 11959 was really a bug in magicequalsubst, + it shouldn't have treated x:=y as a reason to expand =y. + 2000-06-17 Tanaka Akira * 11959: Completion/User/_urls: make it magicequalsubst aware. diff --git a/Src/subst.c b/Src/subst.c index 5dad163ee..0cb985d71 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -307,7 +307,7 @@ multsub(char **s, char ***a, int *isarr, char *sep) mod_export void filesub(char **namptr, int assign) { - char *sub = NULL, *str, *ptr; + char *eql = NULL, *sub = NULL, *str, *ptr; int len; filesubstr(namptr, assign); @@ -316,7 +316,7 @@ filesub(char **namptr, int assign) return; if (assign & PF_TYPESET) { - if ((*namptr)[1] && (sub = strchr(*namptr + 1, Equals))) { + if ((*namptr)[1] && (eql = sub = strchr(*namptr + 1, Equals))) { str = sub + 1; if ((sub[1] == Tilde || sub[1] == Equals) && filesubstr(&str, assign)) { sub[1] = '\0'; @@ -330,7 +330,9 @@ filesub(char **namptr, int assign) while ((sub = strchr(ptr, ':'))) { str = sub + 1; len = sub - *namptr; - if ((sub[1] == Tilde || sub[1] == Equals) && filesubstr(&str, assign)) { + if (sub > eql && + (sub[1] == Tilde || sub[1] == Equals) && + filesubstr(&str, assign)) { sub[1] = '\0'; *namptr = dyncat(*namptr, str); } -- cgit 1.4.1