0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

Fix: terminal title not properly restured when there are multi-byte

characters.  (partly by James Vega)
This commit is contained in:
Bram Moolenaar 2010-07-25 22:30:20 +02:00
parent c3301874a6
commit f82bac3717
2 changed files with 9 additions and 9 deletions

View File

@ -30,11 +30,7 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Restoring terminal title in gnome-terminal causes a beep. Saved value Access to free memory with :redir command. (Dominique Pelle, 2010 Jul 25)
contains garbage? Ukranian language characters. 'enc' and 'tenc' are utf-8.
(Anatoli Sakhnik, 2010 Jul 24)
Using ":set titlestring=abc" with non-ascii characters also fails.
Patch by James Vega, 2010 Jul 25.
Patch for :find completion. (Nazri Ramliy) Patch for :find completion. (Nazri Ramliy)
But I prefer to keep term.h and include/term.h Nazri will work on it. But I prefer to keep term.h and include/term.h Nazri will work on it.

View File

@ -1821,15 +1821,19 @@ get_x11_thing(get_title, test_only)
retval = TRUE; retval = TRUE;
if (!test_only) if (!test_only)
{ {
#ifdef FEAT_XFONTSET #if defined(FEAT_XFONTSET) || defined(FEAT_MBYTE)
if (text_prop.encoding == XA_STRING) if (text_prop.encoding == XA_STRING
# ifdef FEAT_MBYTE
&& !has_mbyte
# endif
)
{ {
#endif #endif
if (get_title) if (get_title)
oldtitle = vim_strsave((char_u *)text_prop.value); oldtitle = vim_strsave((char_u *)text_prop.value);
else else
oldicon = vim_strsave((char_u *)text_prop.value); oldicon = vim_strsave((char_u *)text_prop.value);
#ifdef FEAT_XFONTSET #if defined(FEAT_XFONTSET) || defined(FEAT_MBYTE)
} }
else else
{ {
@ -2020,7 +2024,7 @@ mch_settitle(title, icon)
#endif #endif
/* /*
* Note: if "t_TS" is set, title is set with escape sequence rather * Note: if "t_ts" is set, title is set with escape sequence rather
* than x11 calls, because the x11 calls don't always work * than x11 calls, because the x11 calls don't always work
*/ */
if ((type || *T_TS != NUL) && title != NULL) if ((type || *T_TS != NUL) && title != NULL)