From ef862262e72c51621aa4d9400a2395fdc4f2324f Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 7 Sep 2016 18:51:01 +0100 Subject: 39185: Only set word begin for completion word if not alias. This is consistent with other ZLE code in lex.c and fixes a crash in some completions involving aliases, e.g. if uncompleted quotes. --- ChangeLog | 5 +++++ Src/lex.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cb7405a85..c7c863c96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-09-07 Peter Stephenson + + * 39185: Src/lex.c: wordbeg only set for ZLE if not alias. + Fixes crash on completion in some obscure alias expansions. + 2016-09-07 Peter Stephenson * Matthew Martin: 39221: Completion/Unix/Command/_rm: update for diff --git a/Src/lex.c b/Src/lex.c index 6b20e14b5..e0935bf05 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -613,7 +613,7 @@ gettok(void) if (lexstop) return (errflag) ? LEXERR : ENDINPUT; isfirstln = 0; - if ((lexflags & LEXFLAGS_ZLE)) + if ((lexflags & LEXFLAGS_ZLE) && !(inbufflags & INP_ALIAS)) wordbeg = inbufct - (qbang && c == bangchar); hwbegin(-1-(qbang && c == bangchar)); /* word includes the last character read and possibly \ before ! */ -- cgit v1.3.1