diff --git a/reactos/base/shell/cmd/cmd.c b/reactos/base/shell/cmd/cmd.c index ed162bf9f68..acabececa00 100644 --- a/reactos/base/shell/cmd/cmd.c +++ b/reactos/base/shell/cmd/cmd.c @@ -163,6 +163,7 @@ CRITICAL_SECTION ChildProcessRunningLock; BOOL bUnicodeOutput = FALSE; BOOL bDisableBatchEcho = FALSE; BOOL bDelayedExpansion = FALSE; +BOOL bTitleSet = FALSE; DWORD dwChildProcessId = 0; HANDLE hIn; HANDLE hOut; @@ -314,7 +315,7 @@ Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd) { TCHAR szFullName[MAX_PATH]; TCHAR *first, *rest, *dot; - TCHAR szWindowTitle[MAX_PATH]; + TCHAR szWindowTitle[MAX_PATH], szNewTitle[MAX_PATH*2]; DWORD dwExitCode = 0; TCHAR *FirstEnd; TCHAR szFullCmdLine [CMDLINE_LENGTH]; @@ -377,7 +378,10 @@ Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd) return 1; } - GetConsoleTitle (szWindowTitle, MAX_PATH); + GetConsoleTitle(szWindowTitle, ARRAYSIZE(szWindowTitle)); + bTitleSet = FALSE; + _stprintf(szNewTitle, _T("%s - %s%s"), szWindowTitle, First, Rest); + SetConsoleTitle(szNewTitle); /* check if this is a .BAT or .CMD file */ dot = _tcsrchr (szFullName, _T('.')); @@ -475,7 +479,8 @@ Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd) /* Get code page if it has been changed */ InputCodePage= GetConsoleCP(); OutputCodePage = GetConsoleOutputCP(); - SetConsoleTitle(szWindowTitle); + if (!bTitleSet) + SetConsoleTitle(szWindowTitle); return dwExitCode; } diff --git a/reactos/base/shell/cmd/title.c b/reactos/base/shell/cmd/title.c index 1fa9179fe3e..130cb17c326 100644 --- a/reactos/base/shell/cmd/title.c +++ b/reactos/base/shell/cmd/title.c @@ -13,6 +13,7 @@ #ifdef INCLUDE_CMD_TITLE +extern BOOL bTitleSet; INT cmd_title (LPTSTR param) { @@ -27,6 +28,7 @@ INT cmd_title (LPTSTR param) return 0; } + bTitleSet = TRUE; return SetConsoleTitle (param); }