From ae3a2aacc25a0d00720dbb805899df8a63e9c62b Mon Sep 17 00:00:00 2001 From: "KJK::Hyperion" Date: Sun, 21 Dec 2008 00:13:08 +0000 Subject: [PATCH] modified dll/win32/gdi32/gdi32.rbuild modified dll/win32/kernel32/kernel32.rbuild modified dll/win32/user32/user32.rbuild Inexplicably missed the "big three" in r37187. Don't link msvcrt in core Win32 DLLs, for real this time modified dll/win32/user32/misc/dllmain.c Don't use wcstok. Removes the dependency on msvcrt svn path=/trunk/; revision=38210 --- reactos/dll/win32/gdi32/gdi32.rbuild | 2 +- reactos/dll/win32/kernel32/kernel32.rbuild | 4 +- reactos/dll/win32/user32/misc/dllmain.c | 54 +++++++++++++++------- reactos/dll/win32/user32/user32.rbuild | 2 +- 4 files changed, 42 insertions(+), 20 deletions(-) diff --git a/reactos/dll/win32/gdi32/gdi32.rbuild b/reactos/dll/win32/gdi32/gdi32.rbuild index 9b6a94483c5..91ddb0c3a4a 100644 --- a/reactos/dll/win32/gdi32/gdi32.rbuild +++ b/reactos/dll/win32/gdi32/gdi32.rbuild @@ -1,4 +1,4 @@ - + include diff --git a/reactos/dll/win32/kernel32/kernel32.rbuild b/reactos/dll/win32/kernel32/kernel32.rbuild index 4d7e15ccd88..7b5041add9d 100644 --- a/reactos/dll/win32/kernel32/kernel32.rbuild +++ b/reactos/dll/win32/kernel32/kernel32.rbuild @@ -1,7 +1,7 @@ - + . include include/reactos/subsys @@ -135,7 +135,7 @@ normalize - + . . diff --git a/reactos/dll/win32/user32/misc/dllmain.c b/reactos/dll/win32/user32/misc/dllmain.c index 23492d3ca8d..38c9c627ddc 100644 --- a/reactos/dll/win32/user32/misc/dllmain.c +++ b/reactos/dll/win32/user32/misc/dllmain.c @@ -132,16 +132,27 @@ LoadAppInitDlls() { WCHAR buffer[KEY_LENGTH]; LPWSTR ptr; - LPWSTR seps = L" ,"; + size_t i; - RtlCopyMemory(buffer, szAppInit, KEY_LENGTH);; + RtlCopyMemory(buffer, szAppInit, KEY_LENGTH); - ptr = wcstok(buffer, seps); - while (ptr) - { - LoadLibraryW(ptr); - ptr = wcstok(NULL, seps); - } + for (i = 0; i < KEY_LENGTH; ++ i) + { + if(buffer[i] == L' ' || buffer[i] == L',') + buffer[i] = 0; + } + + for (i = 0; i < KEY_LENGTH; ) + { + if(buffer[i] == 0) + ++ i; + else + { + ptr = buffer + i; + i += wcslen(ptr); + LoadLibraryW(ptr); + } + } } } @@ -153,17 +164,28 @@ UnloadAppInitDlls() WCHAR buffer[KEY_LENGTH]; HMODULE hModule; LPWSTR ptr; - LPWSTR seps = L" ,"; + size_t i; RtlCopyMemory(buffer, szAppInit, KEY_LENGTH); - ptr = wcstok(buffer, seps); - while (ptr) - { - hModule = GetModuleHandleW(ptr); - FreeLibrary(hModule); - ptr = wcstok(NULL, seps); - } + for (i = 0; i < KEY_LENGTH; ++ i) + { + if(buffer[i] == L' ' || buffer[i] == L',') + buffer[i] = 0; + } + + for (i = 0; i < KEY_LENGTH; ) + { + if(buffer[i] == 0) + ++ i; + else + { + ptr = buffer + i; + i += wcslen(ptr); + hModule = GetModuleHandleW(ptr); + FreeLibrary(hModule); + } + } } } diff --git a/reactos/dll/win32/user32/user32.rbuild b/reactos/dll/win32/user32/user32.rbuild index 0b24fb4bf3f..246b26b1be6 100644 --- a/reactos/dll/win32/user32/user32.rbuild +++ b/reactos/dll/win32/user32/user32.rbuild @@ -1,4 +1,4 @@ - + . include