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 -- [EMAIL PROTECTED] -- 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    ///

Reply via email to