diff options
Diffstat (limited to 'data/vim/patches/8.1.1124')
-rw-r--r-- | data/vim/patches/8.1.1124 | 901 |
1 files changed, 0 insertions, 901 deletions
diff --git a/data/vim/patches/8.1.1124 b/data/vim/patches/8.1.1124 deleted file mode 100644 index 0b149684b..000000000 --- a/data/vim/patches/8.1.1124 +++ /dev/null @@ -1,901 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.1124 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 8.1.1124 -Problem: Insert completion flags are mixed up. -Solution: Clean up flags use of ins_compl_add() and cp_flags. -Files: src/insexpand.c, src/proto/insexpand.pro, src/search.c, src/spell.c - - -*** ../vim-8.1.1123/src/insexpand.c 2019-04-06 13:45:51.568756943 +0200 ---- src/insexpand.c 2019-04-06 14:14:19.712671221 +0200 -*************** -*** 102,119 **** - compl_T *cp_next; - compl_T *cp_prev; - char_u *cp_str; // matched text -- char cp_icase; // TRUE or FALSE: ignore case -- char cp_equal; // TRUE or FALSE: ins_compl_equal always ok - char_u *(cp_text[CPT_COUNT]); // text for the menu - char_u *cp_fname; // file containing the match, allocated when -! // cp_flags has FREE_FNAME -! int cp_flags; // ORIGINAL_TEXT, CONT_S_IPOS or FREE_FNAME - int cp_number; // sequence number - }; - -! // flags for ins_compl_add() -! # define ORIGINAL_TEXT (1) // the original text when the expansion begun -! # define FREE_FNAME (2) - - static char e_hitend[] = N_("Hit end of paragraph"); - # ifdef FEAT_COMPL_FUNC ---- 102,120 ---- - compl_T *cp_next; - compl_T *cp_prev; - char_u *cp_str; // matched text - char_u *(cp_text[CPT_COUNT]); // text for the menu - char_u *cp_fname; // file containing the match, allocated when -! // cp_flags has CP_FREE_FNAME -! int cp_flags; // CP_ values - int cp_number; // sequence number - }; - -! // values for cp_flags -! # define CP_ORIGINAL_TEXT 1 // the original text when the expansion begun -! # define CP_FREE_FNAME 2 // cp_fname is allocated -! # define CP_CONT_S_IPOS 4 // use CONT_S_IPOS for compl_cont_status -! # define CP_EQUAL 8 // ins_compl_equal() always returns TRUE -! # define CP_ICASE 16 // ins_compl_equal() ignores case - - static char e_hitend[] = N_("Hit end of paragraph"); - # ifdef FEAT_COMPL_FUNC -*************** -*** 185,191 **** - static int compl_opt_refresh_always = FALSE; - static int compl_opt_suppress_empty = FALSE; - -! static int ins_compl_add(char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup, int equal); - static void ins_compl_longest_match(compl_T *match); - static void ins_compl_del_pum(void); - static void ins_compl_files(int count, char_u **files, int thesaurus, int flags, regmatch_T *regmatch, char_u *buf, int *dir); ---- 186,192 ---- - static int compl_opt_refresh_always = FALSE; - static int compl_opt_suppress_empty = FALSE; - -! static int ins_compl_add(char_u *str, int len, char_u *fname, char_u **cptext, int cdir, int flags, int adup); - static void ins_compl_longest_match(compl_T *match); - static void ins_compl_del_pum(void); - static void ins_compl_files(int count, char_u **files, int thesaurus, int flags, regmatch_T *regmatch, char_u *buf, int *dir); -*************** -*** 420,426 **** - int icase, - char_u *fname, - int dir, -! int flags) - { - char_u *str = str_arg; - char_u *p; ---- 421,427 ---- - int icase, - char_u *fname, - int dir, -! int cont_s_ipos) // next ^X<> will set initial_pos - { - char_u *str = str_arg; - char_u *p; -*************** -*** 431,436 **** ---- 432,438 ---- - int *wca; // Wide character array. - int has_lower = FALSE; - int was_letter = FALSE; -+ int flags = 0; - - if (p_ic && curbuf->b_p_inf && len > 0) - { -*************** -*** 555,563 **** - - str = IObuff; - } - -! return ins_compl_add(str, len, icase, fname, NULL, dir, -! flags, FALSE, FALSE); - } - - /* ---- 557,568 ---- - - str = IObuff; - } -+ if (cont_s_ipos) -+ flags |= CP_CONT_S_IPOS; -+ if (icase) -+ flags |= CP_ICASE; - -! return ins_compl_add(str, len, fname, NULL, dir, flags, FALSE); - } - - /* -*************** -*** 570,585 **** - ins_compl_add( - char_u *str, - int len, -- int icase, - char_u *fname, - char_u **cptext, // extra text for popup menu or NULL - int cdir, -! int flags, -! int adup, // accept duplicate match -! int equal) // match is always accepted by ins_compl_equal - { - compl_T *match; - int dir = (cdir == 0 ? compl_direction : cdir); - - ui_breakcheck(); - if (got_int) ---- 575,589 ---- - ins_compl_add( - char_u *str, - int len, - char_u *fname, - char_u **cptext, // extra text for popup menu or NULL - int cdir, -! int flags_arg, -! int adup) // accept duplicate match - { - compl_T *match; - int dir = (cdir == 0 ? compl_direction : cdir); -+ int flags = flags_arg; - - ui_breakcheck(); - if (got_int) -*************** -*** 593,599 **** - match = compl_first_match; - do - { -! if ( !(match->cp_flags & ORIGINAL_TEXT) - && STRNCMP(match->cp_str, str, len) == 0 - && match->cp_str[len] == NUL) - return NOTDONE; ---- 597,603 ---- - match = compl_first_match; - do - { -! if ( !(match->cp_flags & CP_ORIGINAL_TEXT) - && STRNCMP(match->cp_str, str, len) == 0 - && match->cp_str[len] == NUL) - return NOTDONE; -*************** -*** 610,628 **** - if (match == NULL) - return FAIL; - match->cp_number = -1; -! if (flags & ORIGINAL_TEXT) - match->cp_number = 0; - if ((match->cp_str = vim_strnsave(str, len)) == NULL) - { - vim_free(match); - return FAIL; - } -- match->cp_icase = icase; -- match->cp_equal = equal; - - // match-fname is: - // - compl_curr_match->cp_fname if it is a string equal to fname. -! // - a copy of fname, FREE_FNAME is set to free later THE allocated mem. - // - NULL otherwise. --Acevedo - if (fname != NULL - && compl_curr_match != NULL ---- 614,630 ---- - if (match == NULL) - return FAIL; - match->cp_number = -1; -! if (flags & CP_ORIGINAL_TEXT) - match->cp_number = 0; - if ((match->cp_str = vim_strnsave(str, len)) == NULL) - { - vim_free(match); - return FAIL; - } - - // match-fname is: - // - compl_curr_match->cp_fname if it is a string equal to fname. -! // - a copy of fname, CP_FREE_FNAME is set to free later THE allocated mem. - // - NULL otherwise. --Acevedo - if (fname != NULL - && compl_curr_match != NULL -*************** -*** 632,638 **** - else if (fname != NULL) - { - match->cp_fname = vim_strsave(fname); -! flags |= FREE_FNAME; - } - else - match->cp_fname = NULL; ---- 634,640 ---- - else if (fname != NULL) - { - match->cp_fname = vim_strsave(fname); -! flags |= CP_FREE_FNAME; - } - else - match->cp_fname = NULL; -*************** -*** 669,675 **** - compl_curr_match = match; - - // Find the longest common string if still doing that. -! if (compl_get_longest && (flags & ORIGINAL_TEXT) == 0) - ins_compl_longest_match(match); - - return OK; ---- 671,677 ---- - compl_curr_match = match; - - // Find the longest common string if still doing that. -! if (compl_get_longest && (flags & CP_ORIGINAL_TEXT) == 0) - ins_compl_longest_match(match); - - return OK; -*************** -*** 677,690 **** - - /* - * Return TRUE if "str[len]" matches with match->cp_str, considering -! * match->cp_icase. - */ - static int - ins_compl_equal(compl_T *match, char_u *str, int len) - { -! if (match->cp_equal) - return TRUE; -! if (match->cp_icase) - return STRNICMP(match->cp_str, str, (size_t)len) == 0; - return STRNCMP(match->cp_str, str, (size_t)len) == 0; - } ---- 679,692 ---- - - /* - * Return TRUE if "str[len]" matches with match->cp_str, considering -! * match->cp_flags. - */ - static int - ins_compl_equal(compl_T *match, char_u *str, int len) - { -! if (match->cp_flags & CP_EQUAL) - return TRUE; -! if (match->cp_flags & CP_ICASE) - return STRNICMP(match->cp_str, str, (size_t)len) == 0; - return STRNCMP(match->cp_str, str, (size_t)len) == 0; - } -*************** -*** 734,741 **** - c1 = *p; - c2 = *s; - } -! if (match->cp_icase ? (MB_TOLOWER(c1) != MB_TOLOWER(c2)) -! : (c1 != c2)) - break; - if (has_mbyte) - { ---- 736,743 ---- - c1 = *p; - c2 = *s; - } -! if ((match->cp_flags & CP_ICASE) -! ? (MB_TOLOWER(c1) != MB_TOLOWER(c2)) : (c1 != c2)) - break; - if (has_mbyte) - { -*************** -*** 783,790 **** - int dir = compl_direction; - - for (i = 0; i < num_matches && add_r != FAIL; i++) -! if ((add_r = ins_compl_add(matches[i], -1, icase, -! NULL, NULL, dir, 0, FALSE, FALSE)) == OK) - // if dir was BACKWARD then honor it just once - dir = FORWARD; - FreeWild(num_matches, matches); ---- 785,792 ---- - int dir = compl_direction; - - for (i = 0; i < num_matches && add_r != FAIL; i++) -! if ((add_r = ins_compl_add(matches[i], -1, NULL, NULL, dir, -! icase ? CP_ICASE : 0, FALSE)) == OK) - // if dir was BACKWARD then honor it just once - dir = FORWARD; - FreeWild(num_matches, matches); -*************** -*** 861,866 **** ---- 863,869 ---- - { - int save_w_wrow = curwin->w_wrow; - int save_w_leftcol = curwin->w_leftcol; -+ int flags = CP_ORIGINAL_TEXT; - - // If already doing completions stop it. - if (ctrl_x_mode != CTRL_X_NORMAL) -*************** -*** 875,882 **** - compl_length = (int)curwin->w_cursor.col - (int)startcol; - // compl_pattern doesn't need to be set - compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE, FALSE) != OK) - return; - - ctrl_x_mode = CTRL_X_EVAL; ---- 878,887 ---- - compl_length = (int)curwin->w_cursor.col - (int)startcol; - // compl_pattern doesn't need to be set - compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); -+ if (p_ic) -+ flags |= CP_ICASE; - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, NULL, NULL, 0, flags, FALSE) != OK) - return; - - ctrl_x_mode = CTRL_X_EVAL; -*************** -*** 979,985 **** - do - { - if (compl == NULL -! || ((compl->cp_flags & ORIGINAL_TEXT) == 0 && ++i == 2)) - break; - compl = compl->cp_next; - } while (compl != compl_first_match); ---- 984,990 ---- - do - { - if (compl == NULL -! || ((compl->cp_flags & CP_ORIGINAL_TEXT) == 0 && ++i == 2)) - break; - compl = compl->cp_next; - } while (compl != compl_first_match); -*************** -*** 1025,1031 **** - lead_len = (int)STRLEN(compl_leader); - do - { -! if ((compl->cp_flags & ORIGINAL_TEXT) == 0 - && (compl_leader == NULL - || ins_compl_equal(compl, compl_leader, lead_len))) - ++compl_match_arraysize; ---- 1030,1036 ---- - lead_len = (int)STRLEN(compl_leader); - do - { -! if ((compl->cp_flags & CP_ORIGINAL_TEXT) == 0 - && (compl_leader == NULL - || ins_compl_equal(compl, compl_leader, lead_len))) - ++compl_match_arraysize; -*************** -*** 1040,1053 **** - { - // If the current match is the original text don't find the first - // match after it, don't highlight anything. -! if (compl_shown_match->cp_flags & ORIGINAL_TEXT) - shown_match_ok = TRUE; - - i = 0; - compl = compl_first_match; - do - { -! if ((compl->cp_flags & ORIGINAL_TEXT) == 0 - && (compl_leader == NULL - || ins_compl_equal(compl, compl_leader, lead_len))) - { ---- 1045,1058 ---- - { - // If the current match is the original text don't find the first - // match after it, don't highlight anything. -! if (compl_shown_match->cp_flags & CP_ORIGINAL_TEXT) - shown_match_ok = TRUE; - - i = 0; - compl = compl_first_match; - do - { -! if ((compl->cp_flags & CP_ORIGINAL_TEXT) == 0 - && (compl_leader == NULL - || ins_compl_equal(compl, compl_leader, lead_len))) - { -*************** -*** 1088,1094 **** - - // When the original text is the shown match don't set - // compl_shown_match. -! if (compl->cp_flags & ORIGINAL_TEXT) - shown_match_ok = TRUE; - - if (!shown_match_ok && shown_compl != NULL) ---- 1093,1099 ---- - - // When the original text is the shown match don't set - // compl_shown_match. -! if (compl->cp_flags & CP_ORIGINAL_TEXT) - shown_match_ok = TRUE; - - if (!shown_match_ok && shown_compl != NULL) -*************** -*** 1307,1313 **** - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(regmatch->startp[0], - (int)(ptr - regmatch->startp[0]), -! p_ic, files[i], *dir, 0); - if (thesaurus) - { - char_u *wstart; ---- 1312,1318 ---- - ptr = find_word_end(ptr); - add_r = ins_compl_add_infercase(regmatch->startp[0], - (int)(ptr - regmatch->startp[0]), -! p_ic, files[i], *dir, FALSE); - if (thesaurus) - { - char_u *wstart; -*************** -*** 1343,1349 **** - if (wstart != regmatch->startp[0]) - add_r = ins_compl_add_infercase(wstart, - (int)(ptr - wstart), -! p_ic, files[i], *dir, 0); - } - } - if (add_r == OK) ---- 1348,1354 ---- - if (wstart != regmatch->startp[0]) - add_r = ins_compl_add_infercase(wstart, - (int)(ptr - wstart), -! p_ic, files[i], *dir, FALSE); - } - } - if (add_r == OK) -*************** -*** 1446,1452 **** - compl_curr_match = compl_curr_match->cp_next; - vim_free(match->cp_str); - // several entries may use the same fname, free it just once. -! if (match->cp_flags & FREE_FNAME) - vim_free(match->cp_fname); - for (i = 0; i < CPT_COUNT; ++i) - vim_free(match->cp_text[i]); ---- 1451,1457 ---- - compl_curr_match = compl_curr_match->cp_next; - vim_free(match->cp_str); - // several entries may use the same fname, free it just once. -! if (match->cp_flags & CP_FREE_FNAME) - vim_free(match->cp_fname); - for (i = 0; i < CPT_COUNT; ++i) - vim_free(match->cp_text[i]); -*************** -*** 1540,1546 **** - match = compl_first_match; - do - { -! if (!(match->cp_flags & ORIGINAL_TEXT)) - { - di = dict_alloc(); - if (di == NULL) ---- 1545,1551 ---- - match = compl_first_match; - do - { -! if (!(match->cp_flags & CP_ORIGINAL_TEXT)) - { - di = dict_alloc(); - if (di == NULL) -*************** -*** 1818,1826 **** - char_u *p; - - // Replace the original text entry. -! // The ORIGINAL_TEXT flag is either at the first item or might possibly be - // at the last item for backward completion -! if (compl_first_match->cp_flags & ORIGINAL_TEXT) // safety check - { - p = vim_strsave(str); - if (p != NULL) ---- 1823,1831 ---- - char_u *p; - - // Replace the original text entry. -! // The CP_ORIGINAL_TEXT flag is either at the first item or might possibly be - // at the last item for backward completion -! if (compl_first_match->cp_flags & CP_ORIGINAL_TEXT) // safety check - { - p = vim_strsave(str); - if (p != NULL) -*************** -*** 1830,1836 **** - } - } - else if (compl_first_match->cp_prev != NULL -! && (compl_first_match->cp_prev->cp_flags & ORIGINAL_TEXT)) - { - p = vim_strsave(str); - if (p != NULL) ---- 1835,1841 ---- - } - } - else if (compl_first_match->cp_prev != NULL -! && (compl_first_match->cp_prev->cp_flags & CP_ORIGINAL_TEXT)) - { - p = vim_strsave(str); - if (p != NULL) -*************** -*** 1858,1864 **** - { - // When still at the original match use the first entry that matches - // the leader. -! if (compl_shown_match->cp_flags & ORIGINAL_TEXT) - { - p = NULL; - for (cp = compl_shown_match->cp_next; cp != NULL ---- 1863,1869 ---- - { - // When still at the original match use the first entry that matches - // the leader. -! if (compl_shown_match->cp_flags & CP_ORIGINAL_TEXT) - { - p = NULL; - for (cp = compl_shown_match->cp_next; cp != NULL -*************** -*** 2370,2379 **** - ins_compl_add_tv(typval_T *tv, int dir) - { - char_u *word; -! int icase = FALSE; -! int adup = FALSE; -! int aempty = FALSE; -! int aequal = FALSE; - char_u *(cptext[CPT_COUNT]); - - if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) ---- 2375,2383 ---- - ins_compl_add_tv(typval_T *tv, int dir) - { - char_u *word; -! int dup = FALSE; -! int empty = FALSE; -! int flags = 0; - char_u *(cptext[CPT_COUNT]); - - if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) -*************** -*** 2389,2411 **** - (char_u *)"info", FALSE); - cptext[CPT_USER_DATA] = dict_get_string(tv->vval.v_dict, - (char_u *)"user_data", FALSE); -! if (dict_get_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) -! icase = dict_get_number(tv->vval.v_dict, (char_u *)"icase"); - if (dict_get_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) -! adup = dict_get_number(tv->vval.v_dict, (char_u *)"dup"); - if (dict_get_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL) -! aempty = dict_get_number(tv->vval.v_dict, (char_u *)"empty"); -! if (dict_get_string(tv->vval.v_dict, (char_u *)"equal", FALSE) != NULL) -! aequal = dict_get_number(tv->vval.v_dict, (char_u *)"equal"); - } - else - { - word = tv_get_string_chk(tv); - vim_memset(cptext, 0, sizeof(cptext)); - } -! if (word == NULL || (!aempty && *word == NUL)) - return FAIL; -! return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup, aequal); - } - #endif - ---- 2393,2417 ---- - (char_u *)"info", FALSE); - cptext[CPT_USER_DATA] = dict_get_string(tv->vval.v_dict, - (char_u *)"user_data", FALSE); -! if (dict_get_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL -! && dict_get_number(tv->vval.v_dict, (char_u *)"icase")) -! flags |= CP_ICASE; - if (dict_get_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) -! dup = dict_get_number(tv->vval.v_dict, (char_u *)"dup"); - if (dict_get_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL) -! empty = dict_get_number(tv->vval.v_dict, (char_u *)"empty"); -! if (dict_get_string(tv->vval.v_dict, (char_u *)"equal", FALSE) != NULL -! && dict_get_number(tv->vval.v_dict, (char_u *)"equal")) -! flags |= CP_EQUAL; - } - else - { - word = tv_get_string_chk(tv); - vim_memset(cptext, 0, sizeof(cptext)); - } -! if (word == NULL || (!empty && *word == NUL)) - return FAIL; -! return ins_compl_add(word, -1, NULL, cptext, dir, flags, dup); - } - #endif - -*************** -*** 2672,2678 **** - p_ws = TRUE; - for (;;) - { -! int flags = 0; - - ++msg_silent; // Don't want messages for wrapscan. - ---- 2678,2684 ---- - p_ws = TRUE; - for (;;) - { -! int cont_s_ipos = FALSE; - - ++msg_silent; // Don't want messages for wrapscan. - -*************** -*** 2778,2784 **** - tmp_ptr = ptr + IOSIZE - len - 1; - STRNCPY(IObuff + len, ptr, tmp_ptr - ptr); - len += (int)(tmp_ptr - ptr); -! flags |= CONT_S_IPOS; - } - IObuff[len] = NUL; - ptr = IObuff; ---- 2784,2790 ---- - tmp_ptr = ptr + IOSIZE - len - 1; - STRNCPY(IObuff + len, ptr, tmp_ptr - ptr); - len += (int)(tmp_ptr - ptr); -! cont_s_ipos = TRUE; - } - IObuff[len] = NUL; - ptr = IObuff; -*************** -*** 2789,2795 **** - } - if (ins_compl_add_infercase(ptr, len, p_ic, - ins_buf == curbuf ? NULL : ins_buf->b_sfname, -! 0, flags) != NOTDONE) - { - found_new_match = OK; - break; ---- 2795,2801 ---- - } - if (ins_compl_add_infercase(ptr, len, p_ic, - ins_buf == curbuf ? NULL : ins_buf->b_sfname, -! 0, cont_s_ipos) != NOTDONE) - { - found_new_match = OK; - break; -*************** -*** 2889,2895 **** - dict_T *dict; - - ins_bytes(compl_shown_match->cp_str + ins_compl_len()); -! if (compl_shown_match->cp_flags & ORIGINAL_TEXT) - compl_used_match = FALSE; - else - compl_used_match = TRUE; ---- 2895,2901 ---- - dict_T *dict; - - ins_bytes(compl_shown_match->cp_str + ins_compl_len()); -! if (compl_shown_match->cp_flags & CP_ORIGINAL_TEXT) - compl_used_match = FALSE; - else - compl_used_match = TRUE; -*************** -*** 2949,2955 **** - return -1; - - if (compl_leader != NULL -! && (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0) - { - // Set "compl_shown_match" to the actually shown match, it may differ - // when "compl_leader" is used to omit some of the matches. ---- 2955,2961 ---- - return -1; - - if (compl_leader != NULL -! && (compl_shown_match->cp_flags & CP_ORIGINAL_TEXT) == 0) - { - // Set "compl_shown_match" to the actually shown match, it may differ - // when "compl_leader" is used to omit some of the matches. -*************** -*** 3053,3059 **** - } - found_end = FALSE; - } -! if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 - && compl_leader != NULL - && !ins_compl_equal(compl_shown_match, - compl_leader, (int)STRLEN(compl_leader))) ---- 3059,3065 ---- - } - found_end = FALSE; - } -! if ((compl_shown_match->cp_flags & CP_ORIGINAL_TEXT) == 0 - && compl_leader != NULL - && !ins_compl_equal(compl_shown_match, - compl_leader, (int)STRLEN(compl_leader))) -*************** -*** 3304,3309 **** ---- 3310,3316 ---- - int save_w_leftcol; - int insert_match; - int save_did_ai = did_ai; -+ int flags = CP_ORIGINAL_TEXT; - - compl_direction = ins_compl_key2dir(c); - insert_match = ins_compl_use_match(c); -*************** -*** 3704,3711 **** - // Always add completion for the original text. - vim_free(compl_orig_text); - compl_orig_text = vim_strnsave(line + compl_col, compl_length); - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE, FALSE) != OK) - { - VIM_CLEAR(compl_pattern); - VIM_CLEAR(compl_orig_text); ---- 3711,3720 ---- - // Always add completion for the original text. - vim_free(compl_orig_text); - compl_orig_text = vim_strnsave(line + compl_col, compl_length); -+ if (p_ic) -+ flags |= CP_ICASE; - if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, -! -1, NULL, NULL, 0, flags, FALSE) != OK) - { - VIM_CLEAR(compl_pattern); - VIM_CLEAR(compl_orig_text); -*************** -*** 3767,3780 **** - compl_cont_status &= ~CONT_N_ADDS; - } - -! if (compl_curr_match->cp_flags & CONT_S_IPOS) - compl_cont_status |= CONT_S_IPOS; - else - compl_cont_status &= ~CONT_S_IPOS; - - if (edit_submode_extra == NULL) - { -! if (compl_curr_match->cp_flags & ORIGINAL_TEXT) - { - edit_submode_extra = (char_u *)_("Back at original"); - edit_submode_highl = HLF_W; ---- 3776,3789 ---- - compl_cont_status &= ~CONT_N_ADDS; - } - -! if (compl_curr_match->cp_flags & CP_CONT_S_IPOS) - compl_cont_status |= CONT_S_IPOS; - else - compl_cont_status &= ~CONT_S_IPOS; - - if (edit_submode_extra == NULL) - { -! if (compl_curr_match->cp_flags & CP_ORIGINAL_TEXT) - { - edit_submode_extra = (char_u *)_("Back at original"); - edit_submode_highl = HLF_W; -*** ../vim-8.1.1123/src/proto/insexpand.pro 2019-03-30 13:53:26.174425093 +0100 ---- src/proto/insexpand.pro 2019-04-06 14:06:24.070288598 +0200 -*************** -*** 20,26 **** - int has_compl_option(int dict_opt); - int vim_is_ctrl_x_key(int c); - int ins_compl_accept_char(int c); -! int ins_compl_add_infercase(char_u *str, int len, int icase, char_u *fname, int dir, int flags); - int ins_compl_has_shown_match(void); - int ins_compl_long_shown_match(void); - void completeopt_was_set(void); ---- 20,26 ---- - int has_compl_option(int dict_opt); - int vim_is_ctrl_x_key(int c); - int ins_compl_accept_char(int c); -! int ins_compl_add_infercase(char_u *str_arg, int len, int icase, char_u *fname, int dir, int cont_s_ipos); - int ins_compl_has_shown_match(void); - int ins_compl_long_shown_match(void); - void completeopt_was_set(void); -*** ../vim-8.1.1123/src/search.c 2019-03-30 13:53:26.174425093 +0100 ---- src/search.c 2019-04-06 13:52:12.762824629 +0200 -*************** -*** 5272,5278 **** - #ifdef FEAT_INS_EXPAND - if (action == ACTION_EXPAND) - { -! int reuse = 0; - int add_r; - char_u *aux; - ---- 5272,5278 ---- - #ifdef FEAT_INS_EXPAND - if (action == ACTION_EXPAND) - { -! int cont_s_ipos = FALSE; - int add_r; - char_u *aux; - -*************** -*** 5333,5339 **** - p = aux + IOSIZE - i - 1; - STRNCPY(IObuff + i, aux, p - aux); - i += (int)(p - aux); -! reuse |= CONT_S_IPOS; - } - IObuff[i] = NUL; - aux = IObuff; ---- 5333,5339 ---- - p = aux + IOSIZE - i - 1; - STRNCPY(IObuff + i, aux, p - aux); - i += (int)(p - aux); -! cont_s_ipos = TRUE; - } - IObuff[i] = NUL; - aux = IObuff; -*************** -*** 5344,5350 **** - - add_r = ins_compl_add_infercase(aux, i, p_ic, - curr_fname == curbuf->b_fname ? NULL : curr_fname, -! dir, reuse); - if (add_r == OK) - /* if dir was BACKWARD then honor it just once */ - dir = FORWARD; ---- 5344,5350 ---- - - add_r = ins_compl_add_infercase(aux, i, p_ic, - curr_fname == curbuf->b_fname ? NULL : curr_fname, -! dir, cont_s_ipos); - if (add_r == OK) - /* if dir was BACKWARD then honor it just once */ - dir = FORWARD; -*** ../vim-8.1.1123/src/spell.c 2019-03-30 18:46:57.360077328 +0100 ---- src/spell.c 2019-04-06 13:52:21.666778351 +0200 -*************** -*** 8627,8633 **** - ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 - : STRNCMP(p, pat, STRLEN(pat)) == 0) - && ins_compl_add_infercase(p, (int)STRLEN(p), -! p_ic, NULL, *dir, 0) == OK) - /* if dir was BACKWARD then honor it just once */ - *dir = FORWARD; - } ---- 8627,8633 ---- - ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 - : STRNCMP(p, pat, STRLEN(pat)) == 0) - && ins_compl_add_infercase(p, (int)STRLEN(p), -! p_ic, NULL, *dir, FALSE) == OK) - /* if dir was BACKWARD then honor it just once */ - *dir = FORWARD; - } -*** ../vim-8.1.1123/src/version.c 2019-04-06 13:45:51.568756943 +0200 ---- src/version.c 2019-04-06 14:19:37.271357326 +0200 -*************** -*** 773,774 **** ---- 773,776 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1124, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -211. Your husband leaves you...taking the computer with him and you - call him crying, and beg him to bring the computer back. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |