diff src/screen.c @ 685:d7e33248b9c8 v7.0206

updated for version 7.0206
author vimboss
date Fri, 24 Feb 2006 23:53:04 +0000
parents 9364d114ed8d
children bcd2edc4539e
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -5344,12 +5344,7 @@ win_redr_status(wp)
     {
 	fillchar = fillchar_status(&attr, wp == curwin);
 
-	if (buf_spname(wp->w_buffer) != NULL)
-	    STRCPY(NameBuff, buf_spname(wp->w_buffer));
-	else
-	    home_replace(wp->w_buffer, wp->w_buffer->b_fname, NameBuff,
-							      MAXPATHL, TRUE);
-	trans_characters(NameBuff, MAXPATHL);
+	get_trans_bufname(wp->w_buffer);
 	p = NameBuff;
 	len = (int)STRLEN(p);
 
@@ -6170,14 +6165,24 @@ next_search_hl(win, shl, lnum, mincol)
 	    matchcol = 0;
 	else if (vim_strchr(p_cpo, CPO_SEARCH) == NULL
 		|| (shl->rm.endpos[0].lnum == 0
-		    && shl->rm.endpos[0].col == shl->rm.startpos[0].col))
-	{
-	    matchcol = shl->rm.startpos[0].col + 1;
-	    if (ml_get_buf(shl->buf, lnum, FALSE)[matchcol - 1] == NUL)
-	    {
+		    && shl->rm.endpos[0].col <= shl->rm.startpos[0].col))
+	{
+	    char_u	*ml = ml_get_buf(shl->buf, lnum, FALSE);
+
+	    matchcol = shl->rm.startpos[0].col;
+	    ml += matchcol;
+	    if (*ml == NUL)
+	    {
+		++matchcol;
 		shl->lnum = 0;
 		break;
 	    }
+#ifdef FEAT_MBYTE
+	    if (has_mbyte)
+		matchcol += mb_ptr2len(ml);
+	    else
+#endif
+		++matchcol;
 	}
 	else
 	    matchcol = shl->rm.endpos[0].col;
@@ -8577,7 +8582,16 @@ draw_tabline()
 
     redraw_tabline = FALSE;
 
-    if (tabpageline_height() < 1)
+#ifdef FEAT_GUI_TABLINE
+    /* When the GUI has the tabline then this always returns zero. */
+    if (gui_use_tabline())
+    {
+	gui_update_tabline();
+	return;
+    }
+#endif
+
+    if (tabline_height() < 1)
 	return;
 
 #if defined(FEAT_STL_OPT)
@@ -8670,12 +8684,8 @@ draw_tabline()
 	    room = scol - col + tabwidth - 1;
 	    if (room > 0)
 	    {
-		if (buf_spname(cwp->w_buffer) != NULL)
-		    STRCPY(NameBuff, buf_spname(cwp->w_buffer));
-		else
-		    home_replace(cwp->w_buffer, cwp->w_buffer->b_fname, NameBuff,
-								  MAXPATHL, TRUE);
-		trans_characters(NameBuff, MAXPATHL);
+		/* Get buffer name in NameBuff[] */
+		get_trans_bufname(cwp->w_buffer);
 		len = vim_strsize(NameBuff);
 		p = NameBuff;
 #ifdef FEAT_MBYTE
@@ -8719,6 +8729,21 @@ draw_tabline()
 	}
     }
 }
+
+/*
+ * Get buffer name for "buf" into NameBuff[].
+ * Takes care of special buffer names and translates special characters.
+ */
+    void
+get_trans_bufname(buf)
+    buf_T	*buf;
+{
+    if (buf_spname(buf) != NULL)
+	STRCPY(NameBuff, buf_spname(buf));
+    else
+	home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
+    trans_characters(NameBuff, MAXPATHL);
+}
 #endif
 
 #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT)