[ros-dev] [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.

Thomas Weidenmueller w3seek at reactos.com
Tue Oct 16 02:02:15 CEST 2007


This is a hack that shouldn't be there. This is csrss' responsibility.

- Thomas

tkreuzer at 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=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-dev mailing list