[PATCH] ntdll: Lookup build dir dlls with a dot using their full name.
Rémi Bernon
rbernon at codeweavers.com
Fri Mar 5 09:39:25 CST 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
Either that or it needs to be some changes to the way dots are handled
in the build, to support modules named like "windows.media.speech".
I had a patch for that initially but I don't remember where it was.
dlls/ntdll/unix/loader.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index df8d99ce489..8b17bf9830a 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1450,7 +1450,7 @@ static NTSTATUS CDECL load_builtin_dll( UNICODE_STRING *nt_name, void **module,
ptr = file + pos;
namelen = len + 1;
file[pos + len + 1] = 0;
- if (ext && !strcmp( ext, ".dll" )) namelen -= 4;
+ if (ext && !strcmp( ext, ".dll" ) && strchr( ptr, '.' ) == ext) namelen -= 4;
ptr = prepend( ptr, ptr, namelen );
ptr = prepend( ptr, "/dlls", sizeof("/dlls") - 1 );
ptr = prepend( ptr, build_dir, strlen(build_dir) );
@@ -1461,7 +1461,7 @@ static NTSTATUS CDECL load_builtin_dll( UNICODE_STRING *nt_name, void **module,
ptr = file + pos;
namelen = len + 1;
file[pos + len + 1] = 0;
- if (ext && !strcmp( ext, ".exe" )) namelen -= 4;
+ if (ext && !strcmp( ext, ".exe" ) && strchr( ptr, '.' ) == ext) namelen -= 4;
ptr = prepend( ptr, ptr, namelen );
ptr = prepend( ptr, "/programs", sizeof("/programs") - 1 );
ptr = prepend( ptr, build_dir, strlen(build_dir) );
--
2.30.0
More information about the wine-devel
mailing list