From 4fd128a40db7c6097522998b16490b534179d6f4 Mon Sep 17 00:00:00 2001 From: boykopovar Date: Sun, 6 Sep 2026 12:45:37 +0300 Subject: [PATCH] refactor(libc): remove strings.h linux specific --- core/libs/prx/libc/src/Strings.cpp | 35 ++++++++++++++++++- .../libc/src/specifics/linux/PosixStrings.cpp | 19 ---------- 2 files changed, 34 insertions(+), 20 deletions(-) delete mode 100644 core/libs/prx/libc/src/specifics/linux/PosixStrings.cpp diff --git a/core/libs/prx/libc/src/Strings.cpp b/core/libs/prx/libc/src/Strings.cpp index e0ec1d8a5..4bdf41539 100644 --- a/core/libs/prx/libc/src/Strings.cpp +++ b/core/libs/prx/libc/src/Strings.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -115,4 +116,36 @@ wchar_t* wmemmove_nid_postfix(wchar_t* dest, const wchar_t* src, size_t n) { } -#include "prx/libc/src/specifics/linux/PosixStrings.cpp" + +extern "C" { + +int strcasecmp_nid_postfix(const char* s1, const char* s2) { + while (*s1 && *s2) { + unsigned char a = static_cast(std::tolower(static_cast(*s1))); + unsigned char b = static_cast(std::tolower(static_cast(*s2))); + if (a != b) return a - b; + ++s1; ++s2; + } + return static_cast(*s1) - static_cast(*s2); +} + +int strncasecmp_nid_postfix(const char* s1, const char* s2, size_t n) { + while (n && *s1 && *s2) { + unsigned char a = static_cast(std::tolower(static_cast(*s1))); + unsigned char b = static_cast(std::tolower(static_cast(*s2))); + if (a != b) return a - b; + ++s1; ++s2; --n; + } + if (!n) return 0; + return static_cast(*s1) - static_cast(*s2); +} + +char* strdup_nid_postfix(const char* s) { + std::size_t len = std::strlen(s) + 1; + char* copy = static_cast(std::malloc(len)); + if (!copy) return nullptr; + std::memcpy(copy, s, len); + return copy; +} + +} diff --git a/core/libs/prx/libc/src/specifics/linux/PosixStrings.cpp b/core/libs/prx/libc/src/specifics/linux/PosixStrings.cpp deleted file mode 100644 index 09710d6bc..000000000 --- a/core/libs/prx/libc/src/specifics/linux/PosixStrings.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include - -extern "C" { - -int strcasecmp_nid_postfix(const char* s1, const char* s2) { - return ::strcasecmp(s1, s2); -} - -int strncasecmp_nid_postfix(const char* s1, const char* s2, size_t n) { - return ::strncasecmp(s1, s2, n); -} - -char* strdup_nid_postfix(const char* s) { - return ::strdup(s); -} - -}