From a02bf202814ce9def605c204df1bcc3890a7f64d Mon Sep 17 00:00:00 2001 From: Justin Miller Date: Fri, 1 Nov 2024 15:55:28 -0700 Subject: [PATCH] [KERNELBASE] build path.c --- dll/win32/KernelBase/wine/CMakeLists.txt | 10 +++++ dll/win32/KernelBase/wine/hacks.h | 9 +++++ dll/win32/KernelBase/wine/locale.c | 2 - sdk/include/psdk/pathcch.h | 50 ++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 sdk/include/psdk/pathcch.h diff --git a/dll/win32/KernelBase/wine/CMakeLists.txt b/dll/win32/KernelBase/wine/CMakeLists.txt index 44de8c504d0ab..73c9eedea0407 100644 --- a/dll/win32/KernelBase/wine/CMakeLists.txt +++ b/dll/win32/KernelBase/wine/CMakeLists.txt @@ -15,8 +15,18 @@ include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) list(APPEND SOURCE_STATIC #console.c #looks like ReactOS console.c is nothing like wine. + #debug.c + #file.c loader.c locale.c + #main.c + #memory.c + path.c + #process.c + #registry.c + #security.c + #string.c + #sync.c version.c volume.c) diff --git a/dll/win32/KernelBase/wine/hacks.h b/dll/win32/KernelBase/wine/hacks.h index de15767593223..c5025c0f2eef7 100644 --- a/dll/win32/KernelBase/wine/hacks.h +++ b/dll/win32/KernelBase/wine/hacks.h @@ -1,6 +1,8 @@ #pragma once //TODO: everything here belongs somewhere, to save time put them here. +#define CRITICAL_SECTION RTL_CRITICAL_SECTION +#define CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG #define RESOURCE_ENUM_LN 0x0001 #define RESOURCE_ENUM_MUI 0x0002 @@ -43,3 +45,10 @@ NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); BOOL WINAPI GetVolumeInformationByHandleW( HANDLE handle, WCHAR *label, DWORD label_len, DWORD *serial, DWORD *filename_len, DWORD *flags, WCHAR *fsname, DWORD fsname_len ); + + +HRESULT WINAPI PathMatchSpecExW(const WCHAR *path, const WCHAR *mask, DWORD flags); +INT WINAPI DECLSPEC_HOTPATCH CompareStringOrdinal( const WCHAR *str1, INT len1, + const WCHAR *str2, INT len2, BOOL ignore_case ); + +#define URL_UNESCAPE_AS_UTF8 URL_ESCAPE_AS_UTF8 \ No newline at end of file diff --git a/dll/win32/KernelBase/wine/locale.c b/dll/win32/KernelBase/wine/locale.c index a1331579a5fcb..210b28b8f9f7f 100644 --- a/dll/win32/KernelBase/wine/locale.c +++ b/dll/win32/KernelBase/wine/locale.c @@ -45,8 +45,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(nls); #ifdef __REACTOS__ //#define RtlEnterCriticalSection EnterCriticalSection //#define RtlLeaveCriticalSection LeaveCriticalSection -#define CRITICAL_SECTION RTL_CRITICAL_SECTION -#define CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG #define swprintf snwprintf #endif diff --git a/sdk/include/psdk/pathcch.h b/sdk/include/psdk/pathcch.h new file mode 100644 index 0000000000000..72fbe2ad23bec --- /dev/null +++ b/sdk/include/psdk/pathcch.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017 Michael Müller + * + * 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 PATHCCH_NONE 0x00 +#define PATHCCH_ALLOW_LONG_PATHS 0x01 +#define PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS 0x02 +#define PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS 0x04 +#define PATHCCH_DO_NOT_NORMALIZE_SEGMENTS 0x08 +#define PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH 0x10 +#define PATHCCH_ENSURE_TRAILING_SLASH 0x20 + +#define PATHCCH_MAX_CCH 0x8000 + +WINBASEAPI HRESULT WINAPI PathAllocCanonicalize(const WCHAR *path_in, DWORD flags, WCHAR **path_out); +WINBASEAPI HRESULT WINAPI PathAllocCombine(const WCHAR *path1, const WCHAR *path2, DWORD flags, WCHAR **out); +WINBASEAPI HRESULT WINAPI PathCchAddBackslash(WCHAR *path, SIZE_T size); +WINBASEAPI HRESULT WINAPI PathCchAddBackslashEx(WCHAR *path, SIZE_T size, WCHAR **end, SIZE_T *remaining); +WINBASEAPI HRESULT WINAPI PathCchAddExtension(WCHAR *path, SIZE_T size, const WCHAR *extension); +WINBASEAPI HRESULT WINAPI PathCchAppend(WCHAR *path1, SIZE_T size, const WCHAR *path2); +WINBASEAPI HRESULT WINAPI PathCchAppendEx(WCHAR *path1, SIZE_T size, const WCHAR *path2, DWORD flags); +WINBASEAPI HRESULT WINAPI PathCchCanonicalize(WCHAR *out, SIZE_T size, const WCHAR *in); +WINBASEAPI HRESULT WINAPI PathCchCanonicalizeEx(WCHAR *out, SIZE_T size, const WCHAR *in, DWORD flags); +WINBASEAPI HRESULT WINAPI PathCchCombine(WCHAR *out, SIZE_T size, const WCHAR *path1, const WCHAR *path2); +WINBASEAPI HRESULT WINAPI PathCchCombineEx(WCHAR *out, SIZE_T size, const WCHAR *path1, const WCHAR *path2, DWORD flags); +WINBASEAPI HRESULT WINAPI PathCchFindExtension(const WCHAR *path, SIZE_T size, const WCHAR **extension); +WINBASEAPI BOOL WINAPI PathCchIsRoot(const WCHAR *path); +WINBASEAPI HRESULT WINAPI PathCchRemoveBackslash(WCHAR *path, SIZE_T path_size); +WINBASEAPI HRESULT WINAPI PathCchRemoveBackslashEx(WCHAR *path, SIZE_T path_size, WCHAR **path_end, SIZE_T *free_size); +WINBASEAPI HRESULT WINAPI PathCchRemoveExtension(WCHAR *path, SIZE_T size); +WINBASEAPI HRESULT WINAPI PathCchRemoveFileSpec(WCHAR *path, SIZE_T size); +WINBASEAPI HRESULT WINAPI PathCchRenameExtension(WCHAR *path, SIZE_T size, const WCHAR *extension); +WINBASEAPI HRESULT WINAPI PathCchSkipRoot(const WCHAR *path, const WCHAR **root_end); +WINBASEAPI HRESULT WINAPI PathCchStripPrefix(WCHAR *path, SIZE_T size); +WINBASEAPI HRESULT WINAPI PathCchStripToRoot(WCHAR *path, SIZE_T size); +WINBASEAPI BOOL WINAPI PathIsUNCEx(const WCHAR *path, const WCHAR **server);