This is a hack that shouldn't be there. This is csrss' responsibility.
- Thomas
tkreuzer(a)svn.reactos.org wrote:
Author: tkreuzer
Date: Tue Oct 16 02:23:42 2007
New Revision: 29617
URL:
http://svn.reactos.org/svn/reactos?rev=29617&view=rev
Log:
If cmd was started from a shortcut, use the shortcut's name as window title, else use
executable name, like on windows. Doesn't work on ros atm, due to bug 2743, but works
on win XP. So if'ed out atm.
Modified:
trunk/reactos/base/shell/cmd/cmd.c
Modified: trunk/reactos/base/shell/cmd/cmd.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/cmd.c?rev=2…
==============================================================================
--- trunk/reactos/base/shell/cmd/cmd.c (original)
+++ trunk/reactos/base/shell/cmd/cmd.c Tue Oct 16 02:23:42 2007
@@ -1603,6 +1603,53 @@
}
#endif
+void
+InitTitle()
+{
+ STARTUPINFOW StartupInfo;
+ LPWSTR lpFileName;
+ WCHAR szTitle[MAX_PATH+1];
+
+ GetStartupInfoW(&StartupInfo);
+
+ if (StartupInfo.lpTitle)
+ {
+ /* Are we started from a shortcut? */
+ if (StartupInfo.dwFlags & 0x800)
+ {
+ UINT len;
+
+ /* We are started from a shortcut, use the file name only */
+ lpFileName = wcsrchr(StartupInfo.lpTitle, '\\');
+ if (lpFileName == NULL)
+ {
+ lpFileName = StartupInfo.lpTitle;
+ }
+
+ /* Drop file extension, we simply assume 3 chars extension */
+ len = wcslen(lpFileName) - 4;
+ if (len > 0)
+ {
+ len = min(len, MAX_PATH);
+ wcsncpy(szTitle, lpFileName, len);
+ szTitle[len] = 0;
+ SetConsoleTitleW(szTitle);
+ return;
+ }
+ }
+
+ /* Use lpTitle member of STARTUPINFO */
+ SetConsoleTitleW(StartupInfo.lpTitle);
+ return;
+ }
+
+ /* Set executable path as window title */
+ GetModuleFileNameW(NULL, szTitle, MAX_PATH);
+ SetConsoleTitleW(szTitle);
+ return;
+}
+
+
/*
* set up global initializations and process parameters
*
@@ -1625,6 +1672,11 @@
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx (&osvi);
+ /* FIXME: Doesn't work in ros yet, because of missing functionality of
ShellExecute.
+ See bug 2743. Please unif as soon as it get's fixed. */
+#if 0
+ InitTitle();
+#endif
/* Some people like to run ReactOS cmd.exe on Win98, it helps in the
* build process. So don't link implicitly against ntdll.dll, load it
* dynamically instead */