mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
patch 9.2.0380: completion: a few issues in completion code
Problem: ins_compl_stop() sets compl_best_matches = 0, but that's a
pointer, should reset compl_num_bests instead,
find_common_prefix() reads cpt_sources_array[cur_source] without
checking cur_source != -1 which causes an OOB for -1,
find_next_completion_match(): second `if` in the pending loop
should be `else if`. Forward paging only moves one step per call.
Solution: Reset compl_num_bests instead, add a check for cur_source not
equal -1, change if to else if (glepnir)
closes: #20000
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
fe3c27ce0b
commit
b328686d6a
+4
-3
@@ -3034,7 +3034,7 @@ ins_compl_stop(int c, int prev_mode, int retval)
|
||||
}
|
||||
compl_autocomplete = FALSE;
|
||||
compl_from_nonkeyword = FALSE;
|
||||
compl_best_matches = 0;
|
||||
compl_num_bests = 0;
|
||||
compl_ins_end_col = 0;
|
||||
|
||||
if (c == Ctrl_C && cmdwin_type != 0)
|
||||
@@ -5795,7 +5795,8 @@ find_common_prefix(size_t *prefix_len, int curbuf_only)
|
||||
}
|
||||
|
||||
if (!match_limit_exceeded && (!curbuf_only
|
||||
|| cpt_sources_array[cur_source].cs_flag == '.'))
|
||||
|| (cur_source != -1
|
||||
&& cpt_sources_array[cur_source].cs_flag == '.')))
|
||||
{
|
||||
if (first == NULL && STRNCMP(ins_compl_leader(),
|
||||
compl->cp_str.string, ins_compl_leader_len()) == 0)
|
||||
@@ -6076,7 +6077,7 @@ find_next_completion_match(
|
||||
compl_shown_match = compl_shown_match->cp_next;
|
||||
--compl_pending;
|
||||
}
|
||||
if (compl_pending < 0 && compl_shown_match->cp_prev != NULL)
|
||||
else if (compl_pending < 0 && compl_shown_match->cp_prev != NULL)
|
||||
{
|
||||
compl_shown_match = compl_shown_match->cp_prev;
|
||||
++compl_pending;
|
||||
|
||||
@@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
380,
|
||||
/**/
|
||||
379,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user