Mercurial > vim
changeset 12224:bccf3de74724 v8.0.0992
patch 8.0.0992: terminal title is wrong when 'encoding' is DBCS
commit https://github.com/vim/vim/commit/33d66bd9fa0e1b3fbba33d6a1a0609915ac79441
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 23 23:51:58 2017 +0200
patch 8.0.0992: terminal title is wrong when 'encoding' is DBCS
Problem: Terminal title is wrong when 'encoding' is DBCS.
Solution: Convert the title from DBCS to utf-8. (Yasuhiro Matsumoto, closes
#2009)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 24 Aug 2017 00:00:05 +0200 |
parents | 3d4af6d86841 |
children | fc791b69be77 |
files | src/terminal.c src/version.c |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -1837,6 +1837,24 @@ handle_settermprop( * displayed */ if (*skipwhite((char_u *)value->string) == NUL) term->tl_title = NULL; +#ifdef WIN3264 + else if (!enc_utf8 && enc_codepage > 0) + { + WCHAR *ret = NULL; + int length = 0; + + MultiByteToWideChar_alloc(CP_UTF8, 0, + (char*)value->string, STRLEN(value->string), + &ret, &length); + if (ret != NULL) + { + WideCharToMultiByte_alloc(enc_codepage, 0, + ret, length, (char**)&term->tl_title, + &length, 0, 0); + vim_free(ret); + } + } +#endif else term->tl_title = vim_strsave((char_u *)value->string); vim_free(term->tl_status_text);