summaryrefslogtreecommitdiff
path: root/Added-function-_wcsncmp.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-01 15:09:08 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-01 15:09:08 +0000
commit0b1f438f59e230389519ba100f28b896df14e08b (patch)
tree22651934332deb73602326a03ddb24bffa8d18fc /Added-function-_wcsncmp.patch
parent5c96aee787beb29707ea3203fcef7f3b3b637153 (diff)
automatic import of freerdpopeneuler24.03_LTSopeneuler23.09
Diffstat (limited to 'Added-function-_wcsncmp.patch')
-rw-r--r--Added-function-_wcsncmp.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/Added-function-_wcsncmp.patch b/Added-function-_wcsncmp.patch
new file mode 100644
index 0000000..cef8a66
--- /dev/null
+++ b/Added-function-_wcsncmp.patch
@@ -0,0 +1,62 @@
+From e482b394efc371412ce659b731a9b1e1d73bdf0e Mon Sep 17 00:00:00 2001
+From: akallabeth <akallabeth@posteo.net>
+Date: Mon, 24 Oct 2022 10:42:56 +0200
+Subject: [PATCH] Added function _wcsncmp
+
+* Compare WCHAR strings up to n characters
+
+(cherry picked from commit 8178ed26a459356ece17414c6e871a7e0735a4ec)
+---
+ winpr/include/winpr/string.h | 2 ++
+ winpr/libwinpr/crt/string.c | 15 ++++++++++++++-
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/winpr/include/winpr/string.h b/winpr/include/winpr/string.h
+index 8ce83bc1d..3b907c444 100644
+--- a/winpr/include/winpr/string.h
++++ b/winpr/include/winpr/string.h
+@@ -57,6 +57,7 @@ extern "C"
+ WINPR_API int _strnicmp(const char* string1, const char* string2, size_t count);
+
+ WINPR_API int _wcscmp(const WCHAR* string1, const WCHAR* string2);
++ WINPR_API int _wcsncmp(const WCHAR* string1, const WCHAR* string2, size_t count);
+
+ WINPR_API size_t _wcslen(const WCHAR* str);
+ WINPR_API size_t _wcsnlen(const WCHAR* str, size_t maxNumberOfElements);
+@@ -70,6 +71,7 @@ extern "C"
+ #else
+
+ #define _wcscmp wcscmp
++#define _wcsncmp wcsncmp
+ #define _wcslen wcslen
+ #define _wcsnlen wcsnlen
+ #define _wcschr wcschr
+diff --git a/winpr/libwinpr/crt/string.c b/winpr/libwinpr/crt/string.c
+index 37fcb4b25..c25ffa279 100644
+--- a/winpr/libwinpr/crt/string.c
++++ b/winpr/libwinpr/crt/string.c
+@@ -90,7 +90,20 @@ int _wcscmp(const WCHAR* string1, const WCHAR* string2)
+
+ Data_Read_UINT16(string1, value1);
+ Data_Read_UINT16(string2, value2);
+- return value1 - value2;
++ return (int)value1 - value2;
++}
++
++int _wcsncmp(const WCHAR* string1, const WCHAR* string2, size_t count)
++{
++ for (size_t x = 0; x < count; x++)
++ {
++ const WCHAR a = string1[x];
++ const WCHAR b = string2[x];
++
++ if (a != b)
++ return (int)a - b;
++ }
++ return 0;
+ }
+
+ /* _wcslen -> wcslen */
+--
+2.37.1
+