Alexandre Julliard : explorer:
Specify an explicit path when launching winefile.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Aug 18 14:20:57 CDT 2006
Module: wine
Branch: master
Commit: 8e13333cb732c2f37b79be74c16d56a35813a3db
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=8e13333cb732c2f37b79be74c16d56a35813a3db
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Aug 18 20:54:13 2006 +0200
explorer: Specify an explicit path when launching winefile.
---
programs/explorer/explorer.c | 24 +++++++++---------------
1 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/programs/explorer/explorer.c b/programs/explorer/explorer.c
index 9a3bf7c..021259f 100644
--- a/programs/explorer/explorer.c
+++ b/programs/explorer/explorer.c
@@ -157,7 +157,7 @@ int WINAPI WinMain(HINSTANCE hinstance,
PROCESS_INFORMATION info;
parameters_struct parameters;
BOOL rc;
- static const WCHAR winefile[] = {'w','i','n','e','f','i','l','e','.','e','x','e',0};
+ static const WCHAR winefile[] = {'\\','w','i','n','e','f','i','l','e','.','e','x','e',0};
static const WCHAR space[] = {' ',0};
LPWSTR winefile_commandline = NULL;
DWORD len = 0;
@@ -166,23 +166,22 @@ int WINAPI WinMain(HINSTANCE hinstance,
memset(&si,0,sizeof(STARTUPINFOW));
ParseCommandLine(cmdline,¶meters);
- len = lstrlenW(winefile) +1;
+ len = GetSystemDirectoryW( NULL, 0 ) + sizeof(winefile)/sizeof(WCHAR);
+
+ if (parameters.selection[0]) len += lstrlenW(parameters.selection) + 2;
+ else if (parameters.root[0]) len += lstrlenW(parameters.root) + 3;
+
+ winefile_commandline = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
+ GetSystemDirectoryW( winefile_commandline, len );
+ lstrcatW(winefile_commandline,winefile);
if (parameters.selection[0])
{
- len += lstrlenW(parameters.selection) + 2;
- winefile_commandline = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
-
- lstrcpyW(winefile_commandline,winefile);
lstrcatW(winefile_commandline,space);
lstrcatW(winefile_commandline,parameters.selection);
}
else if (parameters.root[0])
{
- len += lstrlenW(parameters.root) + 3;
- winefile_commandline = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
-
- lstrcpyW(winefile_commandline,winefile);
lstrcatW(winefile_commandline,space);
lstrcatW(winefile_commandline,parameters.root);
if (winefile_commandline[lstrlenW(winefile_commandline)-1]!='\\')
@@ -191,11 +190,6 @@ int WINAPI WinMain(HINSTANCE hinstance,
lstrcatW(winefile_commandline,slash);
}
}
- else
- {
- winefile_commandline = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
- lstrcpyW(winefile_commandline,winefile);
- }
rc = CreateProcessW(NULL, winefile_commandline, NULL, NULL, FALSE, 0, NULL,
parameters.root, &si, &info);
More information about the wine-cvs
mailing list