changeset 3877:cd6c420e31d6 v7.3.695

updated for version 7.3.695 Problem: Balloon cannot show multi-byte text. Solution: Properly deal with multi-byte characters. (Dominique Pelle)
author Bram Moolenaar <bram@vim.org>
date Sun, 21 Oct 2012 00:58:39 +0200
parents d73d4a0edc6b
children d8e5c76c108f
files src/gui_beval.c src/ui.c src/version.c
diffstat 3 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -359,7 +359,7 @@ get_beval_info(beval, getword, winp, lnu
 			}
 		    }
 
-		    col = vcol2col(wp, lnum, col) - 1;
+		    col = vcol2col(wp, lnum, col);
 
 		    if (VIsual_active
 			    && wp->w_buffer == curwin->w_buffer
@@ -377,8 +377,10 @@ get_beval_info(beval, getword, winp, lnu
 			    return FAIL;
 
 			lbuf = ml_get_buf(curwin->w_buffer, VIsual.lnum, FALSE);
-			lbuf = vim_strnsave(lbuf + spos->col,
-				     epos->col - spos->col + (*p_sel != 'e'));
+			len = epos->col - spos->col;
+			if (*p_sel != 'e')
+			    len += MB_PTR2LEN(lbuf + epos->col);
+			lbuf = vim_strnsave(lbuf + spos->col, len);
 			lnum = spos->lnum;
 			col = spos->col;
 		    }
--- a/src/ui.c
+++ b/src/ui.c
@@ -98,7 +98,7 @@ ui_inchar_undo(s, len)
 #endif
 
 /*
- * ui_inchar(): low level input funcion.
+ * ui_inchar(): low level input function.
  * Get characters from the keyboard.
  * Return the number of characters that are available.
  * If "wtime" == 0 do not wait for characters.
@@ -493,7 +493,7 @@ clip_own_selection(cbd)
 	}
     }
 #else
-    /* Only own the clibpard when we didn't own it yet. */
+    /* Only own the clipboard when we didn't own it yet. */
     if (!cbd->owned && cbd->available)
 	cbd->owned = (clip_gen_own_selection(cbd) == OK);
 #endif
@@ -3132,7 +3132,7 @@ vcol2col(wp, lnum, vcol)
     char_u	*start;
 
     start = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE);
-    while (count <= vcol && *ptr != NUL)
+    while (count < vcol && *ptr != NUL)
     {
 	count += win_lbr_chartabsize(wp, ptr, count, NULL);
 	mb_ptr_adv(ptr);
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    695,
+/**/
     694,
 /**/
     693,