[ros-diffs] [tkreuzer] 29617: 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.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Oct 16 00:23:42 CEST 2007


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=29617&r1=29616&r2=29617&view=diff
==============================================================================
--- 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 */




More information about the Ros-diffs mailing list