From 1010c1a66f1f0fb2340526aeb5191f3bf5dc6ba7 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Mon, 7 Sep 2015 17:16:25 +0000 Subject: [PATCH] [NORMALIZ][KERNEL32_VISTA] - Add normaliz.dll to the build - Move the appropriate functions from kernel32_vista to normaliz - Import IsNormalizedString and NormalizeString stubs from Wine Now Scilab starts CORE-10124 #resolve svn path=/trunk/; revision=69093 --- reactos/dll/CMakeLists.txt | 1 + reactos/dll/nls/CMakeLists.txt | 6 +-- reactos/dll/nls/normaliz/CMakeLists.txt | 21 ++++++-- .../normaliz}/IdnToAscii.c | 0 .../normaliz}/IdnToUnicode.c | 0 reactos/dll/nls/normaliz/dummy.c | 1 - .../normaliz}/nameprep.c | 0 reactos/dll/nls/normaliz/normaliz.spec | 10 ++-- reactos/dll/nls/normaliz/normalize.c | 51 +++++++++++++++++++ .../dll/win32/kernel32_vista/CMakeLists.txt | 3 -- .../win32/kernel32_vista/kernel32_vista.spec | 2 - reactos/dll/win32/wininet/CMakeLists.txt | 2 +- 12 files changed, 76 insertions(+), 21 deletions(-) rename reactos/dll/{win32/kernel32_vista => nls/normaliz}/IdnToAscii.c (100%) rename reactos/dll/{win32/kernel32_vista => nls/normaliz}/IdnToUnicode.c (100%) delete mode 100644 reactos/dll/nls/normaliz/dummy.c rename reactos/dll/{win32/kernel32_vista => nls/normaliz}/nameprep.c (100%) create mode 100644 reactos/dll/nls/normaliz/normalize.c diff --git a/reactos/dll/CMakeLists.txt b/reactos/dll/CMakeLists.txt index 1fc949867f4..fe133d72c65 100644 --- a/reactos/dll/CMakeLists.txt +++ b/reactos/dll/CMakeLists.txt @@ -3,6 +3,7 @@ add_subdirectory(3rdparty) add_subdirectory(cpl) add_subdirectory(directx) add_subdirectory(keyboard) +add_subdirectory(nls) add_subdirectory(ntdll) add_subdirectory(opengl) add_subdirectory(shellext) diff --git a/reactos/dll/nls/CMakeLists.txt b/reactos/dll/nls/CMakeLists.txt index d6448d3ad32..f1630669fcf 100644 --- a/reactos/dll/nls/CMakeLists.txt +++ b/reactos/dll/nls/CMakeLists.txt @@ -1,5 +1,3 @@ -if(NOT MSVC) - add_subdirectory(idndl) # FIXME: msvc build. -endif() -#add_subdirectory(normaliz) # Win Vista +#add_subdirectory(idndl) # FIXME: fix build +add_subdirectory(normaliz) diff --git a/reactos/dll/nls/normaliz/CMakeLists.txt b/reactos/dll/nls/normaliz/CMakeLists.txt index fcda54b7970..95a41e5d88c 100644 --- a/reactos/dll/nls/normaliz/CMakeLists.txt +++ b/reactos/dll/nls/normaliz/CMakeLists.txt @@ -1,6 +1,17 @@ -spec2def(normaliz.dll normaliz.spec) -add_library(normaliz SHARED dummy.c ${CMAKE_CURRENT_BINARY_DIR}/normaliz.def) -set_entrypoint(normaliz 0) -add_importlibs(normaliz kernel32) -add_dependencies(normaliz psdk) +remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502) +add_definitions(-D_WIN32_WINNT=0x600 -DWINVER=0x600) + +spec2def(normaliz.dll normaliz.spec ADD_IMPORTLIB) + +list(APPEND SOURCE + IdnToAscii.c + IdnToUnicode.c + nameprep.c + normalize.c + ${CMAKE_CURRENT_BINARY_DIR}/normaliz.def) + +add_library(normaliz SHARED ${SOURCE}) +set_module_type(normaliz win32dll ENTRYPOINT 0) +add_importlibs(normaliz msvcrt kernel32 ntdll) +add_cd_file(TARGET normaliz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/kernel32_vista/IdnToAscii.c b/reactos/dll/nls/normaliz/IdnToAscii.c similarity index 100% rename from reactos/dll/win32/kernel32_vista/IdnToAscii.c rename to reactos/dll/nls/normaliz/IdnToAscii.c diff --git a/reactos/dll/win32/kernel32_vista/IdnToUnicode.c b/reactos/dll/nls/normaliz/IdnToUnicode.c similarity index 100% rename from reactos/dll/win32/kernel32_vista/IdnToUnicode.c rename to reactos/dll/nls/normaliz/IdnToUnicode.c diff --git a/reactos/dll/nls/normaliz/dummy.c b/reactos/dll/nls/normaliz/dummy.c deleted file mode 100644 index bdba1b41dd0..00000000000 --- a/reactos/dll/nls/normaliz/dummy.c +++ /dev/null @@ -1 +0,0 @@ -/* Leave empty */ diff --git a/reactos/dll/win32/kernel32_vista/nameprep.c b/reactos/dll/nls/normaliz/nameprep.c similarity index 100% rename from reactos/dll/win32/kernel32_vista/nameprep.c rename to reactos/dll/nls/normaliz/nameprep.c diff --git a/reactos/dll/nls/normaliz/normaliz.spec b/reactos/dll/nls/normaliz/normaliz.spec index 54e3206fa69..ba97fa66753 100644 --- a/reactos/dll/nls/normaliz/normaliz.spec +++ b/reactos/dll/nls/normaliz/normaliz.spec @@ -1,6 +1,6 @@ - @ stdcall IdnToAscii(long wstr long wstr long) kernel32.IdnToAscii - @ stdcall IdnToNameprepUnicode(long wstr long wstr long) kernel32.IdnToNameprepUnicode - @ stdcall IdnToUnicode(long wstr long wstr long) kernel32.IdnToUnicode - @ stdcall IsNormalizedString(long wstr long) kernel32.IsNormalizedString - @ stdcall NormalizeString(long wstr long wstr long) kernel32.NormalizeString +@ stdcall IdnToAscii(long wstr long ptr long) +@ stdcall IdnToNameprepUnicode(long wstr long ptr long) +@ stdcall IdnToUnicode(long wstr long ptr long) +@ stdcall IsNormalizedString(long wstr long) +@ stdcall NormalizeString(long wstr long ptr long) diff --git a/reactos/dll/nls/normaliz/normalize.c b/reactos/dll/nls/normaliz/normalize.c new file mode 100644 index 00000000000..e6f78b852a1 --- /dev/null +++ b/reactos/dll/nls/normaliz/normalize.c @@ -0,0 +1,51 @@ +/* + * Locale support + * + * Copyright 1995 Martin von Loewis + * Copyright 1998 David Lee Lambert + * Copyright 2000 Julio César Gázquez + * Copyright 2002 Alexandre Julliard for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define WIN32_NO_STATUS +#include + +#define NDEBUG +#include + +/* Taken from Wine kernel32/locale.c */ + +/****************************************************************************** + * NormalizeString (KERNEL32.@) + */ +INT WINAPI NormalizeString(NORM_FORM NormForm, LPCWSTR lpSrcString, INT cwSrcLength, + LPWSTR lpDstString, INT cwDstLength) +{ + DPRINT1("%x %p %d %p %d\n", NormForm, lpSrcString, cwSrcLength, lpDstString, cwDstLength); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return 0; +} + +/****************************************************************************** + * IsNormalizedString (KERNEL32.@) + */ +BOOL WINAPI IsNormalizedString(NORM_FORM NormForm, LPCWSTR lpString, INT cwLength) +{ + DPRINT1("%x %p %d\n", NormForm, lpString, cwLength); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} \ No newline at end of file diff --git a/reactos/dll/win32/kernel32_vista/CMakeLists.txt b/reactos/dll/win32/kernel32_vista/CMakeLists.txt index 94de1a21d3a..e787202ba06 100644 --- a/reactos/dll/win32/kernel32_vista/CMakeLists.txt +++ b/reactos/dll/win32/kernel32_vista/CMakeLists.txt @@ -8,10 +8,7 @@ spec2def(kernel32_vista.dll kernel32_vista.spec ADD_IMPORTLIB) list(APPEND SOURCE DllMain.c GetTickCount64.c - IdnToAscii.c - IdnToUnicode.c InitOnceExecuteOnce.c - nameprep.c ${CMAKE_CURRENT_BINARY_DIR}/kernel32_vista.def) add_library(kernel32_vista SHARED ${SOURCE}) diff --git a/reactos/dll/win32/kernel32_vista/kernel32_vista.spec b/reactos/dll/win32/kernel32_vista/kernel32_vista.spec index 9f5e63fdef0..4594116eb22 100644 --- a/reactos/dll/win32/kernel32_vista/kernel32_vista.spec +++ b/reactos/dll/win32/kernel32_vista/kernel32_vista.spec @@ -1,5 +1,3 @@ @ stdcall -ret64 GetTickCount64() -@ stdcall IdnToAscii(long wstr long ptr long) -@ stdcall IdnToUnicode(long wstr long ptr long) @ stdcall InitOnceExecuteOnce(ptr ptr ptr ptr) diff --git a/reactos/dll/win32/wininet/CMakeLists.txt b/reactos/dll/win32/wininet/CMakeLists.txt index 8c7e0cba460..effe478cf64 100644 --- a/reactos/dll/win32/wininet/CMakeLists.txt +++ b/reactos/dll/win32/wininet/CMakeLists.txt @@ -33,6 +33,6 @@ add_library(wininet SHARED set_module_type(wininet win32dll) target_link_libraries(wininet wine ${PSEH_LIB} zlib) add_delay_importlibs(wininet secur32 crypt32 cryptui) -add_importlibs(wininet mpr shlwapi shell32 user32 advapi32 ws2_32 kernel32_vista msvcrt kernel32 ntdll) +add_importlibs(wininet mpr shlwapi shell32 user32 advapi32 ws2_32 normaliz kernel32_vista msvcrt kernel32 ntdll) add_pch(wininet internet.h SOURCE) add_cd_file(TARGET wininet DESTINATION reactos/system32 FOR all) -- 2.17.1