Module: wine Branch: master Commit: c6d9577017946c33f78db51f82af9e657d13d15d URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=c6d9577017946c33f78db51f...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Aug 15 19:48:08 2006 +0200
ntdll: Default to native loadorder for the main exe if not in system directory.
Unlike dlls, executables can have the same name without necessarily being the same application, so defaulting to native is more likely to do the right thing.
---
dlls/ntdll/loadorder.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/dlls/ntdll/loadorder.c b/dlls/ntdll/loadorder.c index ecc0cab..c31b633 100644 --- a/dlls/ntdll/loadorder.c +++ b/dlls/ntdll/loadorder.c @@ -474,9 +474,17 @@ enum loadorder get_load_order( const WCH if (basename != module+1 && ((ret = get_load_order_value( std_key, app_key, basename )) != LO_INVALID)) goto done;
+ /* if loading the main exe with an explicit path, try native first */ + if (!app_name && basename != module+1) + { + ret = LO_NATIVE_BUILTIN; + TRACE( "got main exe default %s for %s\n", debugstr_loadorder(ret), debugstr_w(path) ); + goto done; + } + /* and last the hard-coded default */ ret = LO_DEFAULT; - TRACE( "got hardcoded default %s for %s\n", debugstr_loadorder(ret), debugstr_w(path) ); + TRACE( "got hardcoded %s for %s\n", debugstr_loadorder(ret), debugstr_w(path) );
done: RtlFreeHeap( GetProcessHeap(), 0, module );