diff --git a/7.0.068 b/7.0.068 new file mode 100644 index 0000000..e1ec9ed --- /dev/null +++ b/7.0.068 @@ -0,0 +1,194 @@ +To: vim-dev@vim.org +Subject: Patch 7.0.068 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.0.068 +Problem: When 'ignorecase' is set and using Insert mode completion, + typing characters to change the list of matches, case is not + ignored. (Hugo Ahlenius) +Solution: Store the 'ignorecase' flag with the matches where needed. +Files: src/edit.c, src/search.c, src/spell.c + + +*** ../vim-7.0.067/src/edit.c Tue Aug 29 16:10:54 2006 +--- src/edit.c Tue Aug 29 14:57:46 2006 +*************** +*** 2405,2411 **** + /* 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, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) + return; + + /* Handle like dictionary completion. */ +--- 2405,2411 ---- + /* 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) != OK) + return; + + /* Handle like dictionary completion. */ +*************** +*** 2821,2827 **** + ptr = find_word_end(ptr); + add_r = ins_compl_add_infercase(regmatch->startp[0], + (int)(ptr - regmatch->startp[0]), +! FALSE, files[i], *dir, 0); + if (thesaurus) + { + char_u *wstart; +--- 2821,2827 ---- + 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; +*************** +*** 2857,2863 **** + ptr = find_word_end(ptr); + add_r = ins_compl_add_infercase(wstart, + (int)(ptr - wstart), +! FALSE, files[i], *dir, 0); + } + } + if (add_r == OK) +--- 2857,2863 ---- + ptr = find_word_end(ptr); + add_r = ins_compl_add_infercase(wstart, + (int)(ptr - wstart), +! p_ic, files[i], *dir, 0); + } + } + if (add_r == OK) +*************** +*** 3826,3832 **** + TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0), + TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0) + { +! ins_compl_add_matches(num_matches, matches, FALSE); + } + p_ic = save_p_ic; + break; +--- 3826,3832 ---- + TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0), + TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0) + { +! ins_compl_add_matches(num_matches, matches, p_ic); + } + p_ic = save_p_ic; + break; +*************** +*** 3867,3873 **** + num_matches = expand_spelling(first_match_pos.lnum, + first_match_pos.col, compl_pattern, &matches); + if (num_matches > 0) +! ins_compl_add_matches(num_matches, matches, FALSE); + #endif + break; + +--- 3867,3873 ---- + num_matches = expand_spelling(first_match_pos.lnum, + first_match_pos.col, compl_pattern, &matches); + if (num_matches > 0) +! ins_compl_add_matches(num_matches, matches, p_ic); + #endif + break; + +*************** +*** 4001,4007 **** + continue; + } + } +! if (ins_compl_add_infercase(ptr, len, FALSE, + ins_buf == curbuf ? NULL : ins_buf->b_sfname, + 0, flags) != NOTDONE) + { +--- 4001,4007 ---- + continue; + } + } +! if (ins_compl_add_infercase(ptr, len, p_ic, + ins_buf == curbuf ? NULL : ins_buf->b_sfname, + 0, flags) != NOTDONE) + { +*************** +*** 4809,4815 **** + 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, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) + { + vim_free(compl_pattern); + compl_pattern = NULL; +--- 4809,4815 ---- + 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) != OK) + { + vim_free(compl_pattern); + compl_pattern = NULL; +*** ../vim-7.0.067/src/search.c Fri May 5 23:15:17 2006 +--- src/search.c Tue Aug 29 14:56:15 2006 +*************** +*** 4871,4877 **** + goto exit_matched; + } + +! add_r = ins_compl_add_infercase(aux, i, FALSE, + curr_fname == curbuf->b_fname ? NULL : curr_fname, + dir, reuse); + if (add_r == OK) +--- 4876,4882 ---- + goto exit_matched; + } + +! add_r = ins_compl_add_infercase(aux, i, p_ic, + curr_fname == curbuf->b_fname ? NULL : curr_fname, + dir, reuse); + if (add_r == OK) +*** ../vim-7.0.067/src/spell.c Sun Jul 23 21:52:16 2006 +--- src/spell.c Tue Aug 29 14:56:26 2006 +*************** +*** 15658,15664 **** + ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 + : STRNCMP(p, pat, STRLEN(pat)) == 0) + && ins_compl_add_infercase(p, (int)STRLEN(p), +! FALSE, NULL, *dir, 0) == OK) + /* if dir was BACKWARD then honor it just once */ + *dir = FORWARD; + } +--- 15662,15668 ---- + ? 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; + } +*** ../vim-7.0.067/src/version.c Tue Aug 29 16:10:54 2006 +--- src/version.c Tue Aug 29 16:13:49 2006 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 68, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +266. You hear most of your jokes via e-mail instead of in person. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///