From 954cdd77d77136e572fc4896f3c0ba16f5c933ec Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 22 Jun 2016 13:10:22 +0100 Subject: 38746: Fix suffix alias expansion recursion. This was problematic if the expansion landed you back in command position. Delay marking the alias as out of use until the text that caused the expansion is finished. --- Src/lex.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Src/lex.c') diff --git a/Src/lex.c b/Src/lex.c index e36a01ec8..5ad3474fe 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1842,10 +1842,11 @@ checkalias(void) if ((suf = strrchr(zshlextext, '.')) && suf[1] && suf > zshlextext && suf[-1] != Meta && (an = (Alias)sufaliastab->getnode(sufaliastab, suf+1)) && - !an->inuse && incmdpos) { - inpush(dupstring(zshlextext), INP_ALIAS, NULL); + !an->inuse && incmdpos && + !(inbufflags & INP_ALSUFF)) { + inpush(dupstring(zshlextext), INP_ALIAS, an); inpush(" ", INP_ALIAS, NULL); - inpush(an->text, INP_ALIAS, an); + inpush(an->text, INP_ALIAS, NULL); lexstop = 0; return 1; } -- cgit 1.4.1