Mercurial > vim
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. */