]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.606 v7.3.606
authorBram Moolenaar <Bram@vim.org>
Thu, 19 Jul 2012 15:18:26 +0000 (17:18 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 19 Jul 2012 15:18:26 +0000 (17:18 +0200)
Problem:    CTRL-P completion has a problem with multi-byte characters.
Solution:   Check for next character being NUL properly.  (Yasuhiro Matsumoto)

src/macros.h
src/search.c
src/version.c

index be3af9a5ce50551bdb5496a8571a1a3ba90a20e1..9e3ba44b4e26899f5350f6f7e9e4a19967d2d005 100644 (file)
  * PTR2CHAR(): get character from pointer.
  */
 #ifdef FEAT_MBYTE
+/* Get the length of the character p points to */
+# define MB_PTR2LEN(p)         (has_mbyte ? (*mb_ptr2len)(p) : 1)
 /* Advance multi-byte pointer, skip over composing chars. */
 # define mb_ptr_adv(p)     p += has_mbyte ? (*mb_ptr2len)(p) : 1
 /* Advance multi-byte pointer, do not skip over composing chars. */
 # define MB_CHARLEN(p)     (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
 # define PTR2CHAR(p)       (has_mbyte ? mb_ptr2char(p) : (int)*(p))
 #else
+# define MB_PTR2LEN(p)         1
 # define mb_ptr_adv(p)         ++p
 # define mb_cptr_adv(p)                ++p
 # define mb_ptr_back(s, p)     --p
index 1db967de2e2ed171cccf77003dc387a065c54f8f..e231a3a10e5b48e00dfb2c59a8c10d612354ff49 100644 (file)
@@ -5141,7 +5141,7 @@ exit_matched:
                    && !(compl_cont_status & CONT_SOL)
 #endif
                    && *startp != NUL
-                   && *(p = startp + 1) != NUL)
+                   && *(p = startp + MB_PTR2LEN(startp)) != NUL)
                goto search_line;
        }
        line_breakcheck();
index 064af8b2cc9f8e5f23da20f3852a3a70ba254aaf..cd0d2d7dffab1c6d54374cc2f603f6f089686cd0 100644 (file)
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    606,
 /**/
     605,
 /**/