diff src/gui_w48.c @ 837:6bb1fa855dc9 v7.0e03

updated for version 7.0e03
author vimboss
date Wed, 19 Apr 2006 21:23:36 +0000
parents 8bebcabccc2c
children 8e5830943bff
line wrap: on
line diff
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -2295,10 +2295,21 @@ gui_mch_update_tabline(void)
     int		nr = 0;
     int		curtabidx = 0;
     RECT	rc;
+#ifdef FEAT_MBYTE
+    WCHAR	*wstr = NULL;
+#endif
 
     if (s_tabhwnd == NULL)
 	return;
 
+#if defined(FEAT_MBYTE) && defined(CCM_SETUNICODEFORMAT)
+    if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+	/*
+	 * Enable unicode support
+	 */
+	SendMessage(s_tabhwnd, CCM_SETUNICODEFORMAT, (WPARAM)TRUE, (LPARAM)0);
+#endif
+
     tie.mask = TCIF_TEXT;
     tie.iImage = -1;
 
@@ -2317,7 +2328,29 @@ gui_mch_update_tabline(void)
 
 	get_tabline_label(tp);
 	tie.pszText = NameBuff;
-	TabCtrl_SetItem(s_tabhwnd, nr, &tie);
+#ifdef FEAT_MBYTE
+	wstr = NULL;
+	if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+	{
+	    /* Need to go through Unicode. */
+	    wstr = enc_to_ucs2(NameBuff, NULL);
+	    if (wstr != NULL)
+	    {
+		TCITEMW		tiw;
+
+		tiw.mask = TCIF_TEXT;
+		tiw.iImage = -1;
+		tiw.pszText = wstr;
+		SendMessage(s_tabhwnd, TCM_INSERTITEMW, (WPARAM)nr,
+								(LPARAM)&tiw);
+		vim_free(wstr);
+	    }
+	}
+	if (wstr == NULL)
+#endif
+	{
+	    TabCtrl_SetItem(s_tabhwnd, nr, &tie);
+	}
     }
 
     /* Remove any old labels. */