0
0
mirror of https://github.com/vim/vim.git synced 2025-07-25 10:54:51 -04:00

updated for version 7.4.479

Problem:    MS-Windows: The console title can be wrong.
Solution:   Take the encoding into account. When restoring the title use the
            right function. (Yasuhiro Matsumoto)
This commit is contained in:
Bram Moolenaar 2014-10-15 22:50:10 +02:00
parent 1c85210d6d
commit 1df52d798f
3 changed files with 33 additions and 2 deletions

View File

@ -344,7 +344,7 @@ mch_restore_title(
int which)
{
#ifndef FEAT_GUI_MSWIN
mch_settitle((which & 1) ? g_szOrigTitle : NULL, NULL);
SetConsoleTitle(g_szOrigTitle);
#endif
}

View File

@ -4648,6 +4648,35 @@ mch_call_shell(
#ifdef FEAT_TITLE
char szShellTitle[512];
# ifdef FEAT_MBYTE
/* Change the title to reflect that we are in a subshell. */
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
WCHAR szShellTitle[512];
if (GetConsoleTitleW(szShellTitle,
sizeof(szShellTitle)/sizeof(WCHAR) - 4) > 0)
{
if (cmd == NULL)
wcscat(szShellTitle, L" :sh");
else
{
WCHAR *wn = enc_to_utf16(cmd, NULL);
if (wn != NULL)
{
wcscat(szShellTitle, L" - !");
if ((wcslen(szShellTitle) + wcslen(wn) <
sizeof(szShellTitle)/sizeof(WCHAR)))
wcscat(szShellTitle, wn);
SetConsoleTitleW(szShellTitle);
vim_free(wn);
goto didset;
}
}
}
}
#endif
/* Change the title to reflect that we are in a subshell. */
if (GetConsoleTitle(szShellTitle, sizeof(szShellTitle) - 4) > 0)
{
@ -4659,7 +4688,7 @@ mch_call_shell(
if ((strlen(szShellTitle) + strlen(cmd) < sizeof(szShellTitle)))
strcat(szShellTitle, cmd);
}
mch_settitle(szShellTitle, NULL);
SetConsoleTitle(szShellTitle);
}
#endif

View File

@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
479,
/**/
478,
/**/