Alexandre Julliard : ntdll: Export a few more codepage functions from ntdll.so.
Alexandre Julliard
julliard at winehq.org
Tue Apr 12 15:35:15 CDT 2022
Module: wine
Branch: master
Commit: 6eae7a24e2f91b348b854b2d6e6c62ef4cc471e7
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6eae7a24e2f91b348b854b2d6e6c62ef4cc471e7
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Apr 12 10:09:45 2022 +0200
ntdll: Export a few more codepage functions from ntdll.so.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/unix/env.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/dlls/ntdll/unix/env.c b/dlls/ntdll/unix/env.c
index 47bc0118802..89297472a34 100644
--- a/dlls/ntdll/unix/env.c
+++ b/dlls/ntdll/unix/env.c
@@ -2252,6 +2252,39 @@ WCHAR WINAPI RtlDowncaseUnicodeChar( WCHAR wch )
return ntdll_towlower( wch );
}
+/******************************************************************
+ * RtlInitCodePageTable (ntdll.so)
+ */
+void WINAPI RtlInitCodePageTable( USHORT *ptr, CPTABLEINFO *info )
+{
+ static const CPTABLEINFO utf8_cpinfo = { CP_UTF8, 4, '?', 0xfffd, '?', '?' };
+
+ if (ptr[1] == CP_UTF8) *info = utf8_cpinfo;
+ else init_codepage_table( ptr, info );
+}
+
+/**************************************************************************
+ * RtlCustomCPToUnicodeN (ntdll.so)
+ */
+NTSTATUS WINAPI RtlCustomCPToUnicodeN( CPTABLEINFO *info, WCHAR *dst, DWORD dstlen, DWORD *reslen,
+ const char *src, DWORD srclen )
+{
+ unsigned int ret = cp_mbstowcs( info, dst, dstlen / sizeof(WCHAR), src, srclen );
+ if (reslen) *reslen = ret * sizeof(WCHAR);
+ return STATUS_SUCCESS;
+}
+
+/**************************************************************************
+ * RtlUnicodeToCustomCPN (ntdll.so)
+ */
+NTSTATUS WINAPI RtlUnicodeToCustomCPN( CPTABLEINFO *info, char *dst, DWORD dstlen, DWORD *reslen,
+ const WCHAR *src, DWORD srclen )
+{
+ unsigned int ret = cp_wcstombs( info, dst, dstlen, src, srclen / sizeof(WCHAR) );
+ if (reslen) *reslen = ret;
+ return STATUS_SUCCESS;
+}
+
/**********************************************************************
* RtlUTF8ToUnicodeN (ntdll.so)
*/
@@ -2269,6 +2302,23 @@ NTSTATUS WINAPI RtlUTF8ToUnicodeN( WCHAR *dst, DWORD dstlen, DWORD *reslen, cons
return status;
}
+/**************************************************************************
+ * RtlUnicodeToUTF8N (ntdll.so)
+ */
+NTSTATUS WINAPI RtlUnicodeToUTF8N( char *dst, DWORD dstlen, DWORD *reslen, const WCHAR *src, DWORD srclen )
+{
+ unsigned int ret;
+ NTSTATUS status;
+
+ if (!dst)
+ status = utf8_wcstombs_size( src, srclen / sizeof(WCHAR), &ret );
+ else
+ status = utf8_wcstombs( dst, dstlen, &ret, src, srclen / sizeof(WCHAR) );
+
+ *reslen = ret;
+ return status;
+}
+
/**********************************************************************
* RtlNtStatusToDosError (ntdll.so)
*/
More information about the wine-cvs
mailing list