diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2009-01-13 12:19:53 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2009-01-13 12:19:53 +0000 |
commit | 0cf040f4bf50c5530bd19da76ea234e2cd831667 (patch) | |
tree | 3249b38bb7eed7adc09358d9f0f12b53c9870af8 /Src | |
parent | e7c9e03c58f04a04c35a0e4c3721f939ba5e58c2 (diff) | |
download | zsh-0cf040f4bf50c5530bd19da76ea234e2cd831667.tar.gz zsh-0cf040f4bf50c5530bd19da76ea234e2cd831667.tar.xz zsh-0cf040f4bf50c5530bd19da76ea234e2cd831667.zip |
Back off 26270 (accept-and-menu-complete).
Was causing memory corruption
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/compcore.c | 1 | ||||
-rw-r--r-- | Src/Zle/complete.c | 4 | ||||
-rw-r--r-- | Src/Zle/compresult.c | 24 |
3 files changed, 12 insertions, 17 deletions
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index 40c5f19ca..529537d37 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -325,7 +325,6 @@ do_completion(UNUSED(Hookdef dummy), Compldat dat) comppatinsert = ztrdup("menu"); forcelist = 0; haspattern = 0; - complistinword = 0; complistmax = getiparam("LISTMAX"); zsfree(complastprompt); complastprompt = ztrdup(((isset(ALWAYSLASTPROMPT) && zmult == 1) || diff --git a/Src/Zle/complete.c b/Src/Zle/complete.c index 7dbae1dee..6398fd3e7 100644 --- a/Src/Zle/complete.c +++ b/Src/Zle/complete.c @@ -38,7 +38,6 @@ zlong compcurrent, complistmax; /**/ zlong complistlines, - complistinword, compignored; /**/ @@ -1147,7 +1146,6 @@ static struct compparam compkparams[] = { GSU(unambig_pos_gsu) }, { "insert_positions", PM_SCALAR | PM_READONLY, NULL, GSU(insert_pos_gsu) }, - { "list_in_word", PM_INTEGER, VAL(complistinword), NULL }, { "list_max", PM_INTEGER, VAL(complistmax), NULL }, { "last_prompt", PM_SCALAR, VAL(complastprompt), NULL }, { "to_end", PM_SCALAR, VAL(comptoend), NULL }, @@ -1598,7 +1596,7 @@ setup_(UNUSED(Module m)) compvared = compqstack = NULL; complastprefix = ztrdup(""); complastsuffix = ztrdup(""); - complistmax = complistinword = 0; + complistmax = 0; hascompmod = 1; return 0; diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c index 630c7634c..e595802dd 100644 --- a/Src/Zle/compresult.c +++ b/Src/Zle/compresult.c @@ -1309,23 +1309,21 @@ accept_last(void) lastbrbeg->str[l] = ','; lastbrbeg->str[l + 1] = '\0'; } else { - zlemetacs = minfo.pos + minfo.len + minfo.insc; - if (!complistinword) { - int l; + int l; - iremovesuffix(' ', 1); - l = zlemetacs; - zlemetacs = minfo.pos + minfo.len + minfo.insc - (*(minfo.cur))->qisl; - if (zlemetacs < l) - foredel(l - zlemetacs, CUT_RAW); - else if (zlemetacs > zlemetall) - zlemetacs = zlemetall; - inststrlen(" ", 1, 1); - } + zlemetacs = minfo.pos + minfo.len + minfo.insc; + iremovesuffix(' ', 1); + l = zlemetacs; + zlemetacs = minfo.pos + minfo.len + minfo.insc - (*(minfo.cur))->qisl; + if (zlemetacs < l) + foredel(l - zlemetacs, CUT_RAW); + else if (zlemetacs > zlemetall) + zlemetacs = zlemetall; + inststrlen(" ", 1, 1); minfo.insc = minfo.len = 0; minfo.pos = zlemetacs; minfo.we = 1; - } + } if (!wasmeta) unmetafy_line(); |