From 00c82f4fd3b119ace0ea5e654945e9b7f3fd0b20 Mon Sep 17 00:00:00 2001 From: ThePhD Date: Sat, 28 Oct 2023 16:58:47 -0400 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20mbstate=5Ft=20proxy=20type=20for=20?= =?UTF-8?q?ztd/idk=20because=20Android=20and=20MacOS=20are=20a=20pain!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/ztd/idk/charN_t.h | 4 +- include/ztd/idk/char_traits.hpp | 3 +- include/ztd/idk/detail/posix.hpp | 6 +- include/ztd/idk/mbstate_t.h | 52 ++++++++ include/ztd/idk/mbstate_t.hpp | 39 ++++++ include/ztd/idk/span.hpp | 2 + include/ztd/tests/basic_unicode_strings.hpp | 3 +- include/ztd/version/detail/version.c++.hpp | 2 +- include/ztd/version/detail/version.c.h | 124 +++++++++++++----- source/ztd/idk/encoding_detection.c.cpp | 10 +- .../idk/inclusion/source/ztd/idk/mbstate_t.c | 31 +++++ .../inclusion/source/ztd/idk/mbstate_t.c.cpp | 31 +++++ .../inclusion/source/ztd/idk/mbstate_t.cpp | 31 +++++ 13 files changed, 292 insertions(+), 46 deletions(-) create mode 100644 include/ztd/idk/mbstate_t.h create mode 100644 include/ztd/idk/mbstate_t.hpp create mode 100644 tests/idk/inclusion/source/ztd/idk/mbstate_t.c create mode 100644 tests/idk/inclusion/source/ztd/idk/mbstate_t.c.cpp create mode 100644 tests/idk/inclusion/source/ztd/idk/mbstate_t.cpp diff --git a/include/ztd/idk/charN_t.h b/include/ztd/idk/charN_t.h index c5481fa..d7662bf 100644 --- a/include/ztd/idk/charN_t.h +++ b/include/ztd/idk/charN_t.h @@ -56,7 +56,7 @@ typedef ZTD_CHAR8_T_I_ ztd_char8_t; typedef char16_t ztd_char16_t; typedef char32_t ztd_char32_t; #else - #if ZTD_IS_ON(ZTD_UCHAR) + #if ZTD_IS_ON(ZTD_UCHAR_H) #include typedef char16_t ztd_char16_t; @@ -72,7 +72,7 @@ typedef ZTD_CHAR8_T_I_ ztd_char8_t; typedef uint_least32_t ztd_char32_t; #endif - #if ZTD_IS_ON(ZTD_WCHAR) + #if ZTD_IS_ON(ZTD_WCHAR_H) #include typedef wchar_t ztd_wchar_t; diff --git a/include/ztd/idk/char_traits.hpp b/include/ztd/idk/char_traits.hpp index 04b411e..4fbff16 100644 --- a/include/ztd/idk/char_traits.hpp +++ b/include/ztd/idk/char_traits.hpp @@ -36,6 +36,7 @@ #include #include +#include #include #include @@ -55,7 +56,7 @@ namespace ztd { using int_type = ::std::int_least32_t; using pos_type = ::std::streampos; using off_type = ::std::streamoff; - using state_type = ::std::mbstate_t; + using state_type = ztd_mbstate_t; static constexpr char_type* copy( char_type* __destination, const char_type* __source, ::std::size_t __count) noexcept { diff --git a/include/ztd/idk/detail/posix.hpp b/include/ztd/idk/detail/posix.hpp index c2691a9..991b631 100644 --- a/include/ztd/idk/detail/posix.hpp +++ b/include/ztd/idk/detail/posix.hpp @@ -41,11 +41,11 @@ // clang-format off #include -#if ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_LANGINFO_H) extern "C" { #include } -#elif ZTD_IS_ON(ZTD_NL_LANGINFO) +#elif ZTD_IS_ON(ZTD_NL_LANGINFO_H) // IBM-specific?? extern "C" { #include @@ -66,7 +66,7 @@ namespace ztd { namespace __idk_detail { namespace __posix { inline text_encoding_id __determine_active_code_page() noexcept { -#if ZTD_IS_ON(ZTD_LANGINFO) || ZTD_IS_ON(ZTD_NL_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __name = nl_langinfo(LC_CTYPE); return __idk_detail::__to_encoding_id(__name); #else diff --git a/include/ztd/idk/mbstate_t.h b/include/ztd/idk/mbstate_t.h new file mode 100644 index 0000000..3209658 --- /dev/null +++ b/include/ztd/idk/mbstate_t.h @@ -0,0 +1,52 @@ +// ============================================================================ +// +// ztd.idk +// Copyright © 2022-2023 JeanHeyd "ThePhD" Meneide and Shepherd's Oasis, LLC +// Contact: opensource@soasis.org +// +// Commercial License Usage +// Licensees holding valid commercial ztd.cuneicode licenses may use this file +// in accordance with the commercial license agreement provided with the +// Software or, alternatively, in accordance with the terms contained in +// a written agreement between you and Shepherd's Oasis, LLC. +// For licensing terms and conditions see your agreement. For +// further information contact opensource@soasis.org. +// +// Apache License Version 2 Usage +// Alternatively, this file may be used under the terms of Apache License +// Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ========================================================================= // + +#ifndef ZTD_IDK_MBSTATE_H +#define ZTD_IDK_MBSTATE_H + +#pragma once + +#include + +#if ZTD_IS_ON(ZTD_CWCHAR) +#include +#elif ZTD_IS_ON(ZTD_WCHAR_H) +#include +#endif +#if ZTD_IS_ON(ZTD_CUCHAR) +#include +#elif ZTD_IS_ON(ZTD_UCHAR_H) +ZTD_EXTERN_C_OPEN_I_ +#include +ZTD_EXTERN_C_CLOSE_I_ +#endif + +typedef ZTD_MBSTATE_SCOPE_I_ mbstate_t ztd_mbstate_t; + +#endif diff --git a/include/ztd/idk/mbstate_t.hpp b/include/ztd/idk/mbstate_t.hpp new file mode 100644 index 0000000..c8dfa95 --- /dev/null +++ b/include/ztd/idk/mbstate_t.hpp @@ -0,0 +1,39 @@ +// ============================================================================ +// +// ztd.idk +// Copyright © 2022-2023 JeanHeyd "ThePhD" Meneide and Shepherd's Oasis, LLC +// Contact: opensource@soasis.org +// +// Commercial License Usage +// Licensees holding valid commercial ztd.cuneicode licenses may use this file +// in accordance with the commercial license agreement provided with the +// Software or, alternatively, in accordance with the terms contained in +// a written agreement between you and Shepherd's Oasis, LLC. +// For licensing terms and conditions see your agreement. For +// further information contact opensource@soasis.org. +// +// Apache License Version 2 Usage +// Alternatively, this file may be used under the terms of Apache License +// Version 2.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ========================================================================= // + +#ifndef ZTD_IDK_MBSTATE_HPP +#define ZTD_IDK_MBSTATE_HPP + +#pragma once + +#include + +#include + +#endif diff --git a/include/ztd/idk/span.hpp b/include/ztd/idk/span.hpp index d66d972..e84ac8a 100644 --- a/include/ztd/idk/span.hpp +++ b/include/ztd/idk/span.hpp @@ -111,6 +111,8 @@ namespace std { // Use home-grown span from Martin Moene #define span_FEATURE_MAKE_SPAN 1 +#define span_FEATURE_COMPARISON 1 +#define span_FEATURE_WITH_INITIALIZER_LIST_P2447 1 #include #include diff --git a/include/ztd/tests/basic_unicode_strings.hpp b/include/ztd/tests/basic_unicode_strings.hpp index d98167f..c9d54fb 100644 --- a/include/ztd/tests/basic_unicode_strings.hpp +++ b/include/ztd/tests/basic_unicode_strings.hpp @@ -1614,7 +1614,8 @@ namespace ztd { namespace tests { (CharType)0x75, (CharType)0x72, (CharType)0xc3, (CharType)0xa9, (CharType)0x6c, (CharType)0x69, (CharType)0x65, (CharType)0x2e, (CharType)0x00 }; inline constexpr std::size_t x_u8_unicode_sequence_truth_native_endian_storage_size - = sizeof(x_u8_unicode_sequence_truth_native_endian_storage); + = /* GCC 13.2 x86_64 GNU Linux bug??? sizeof(x_u8_unicode_sequence_truth_native_endian_storage)*/ + 2109; inline constexpr const std::basic_string_view u32_unicode_sequence_truth_native_endian diff --git a/include/ztd/version/detail/version.c++.hpp b/include/ztd/version/detail/version.c++.hpp index 73d82aa..ab2a67d 100644 --- a/include/ztd/version/detail/version.c++.hpp +++ b/include/ztd/version/detail/version.c++.hpp @@ -61,7 +61,7 @@ #elif ZTD_IS_ON(ZTD_COMPILER_CLANG) // clang is busted right now! // taking bets: Clang 17 is when it'll get fixed! - #if (__clang_major__ >= 17) + #if (__clang_major__ >= 17) && defined(__cpp_concepts) && (__cpp_concepts >= 201907LL) #define ZTD_STD_CONCEPTS_I_ ZTD_DEFAULT_ON #else #define ZTD_STD_CONCEPTS_I_ ZTD_DEFAULT_OFF diff --git a/include/ztd/version/detail/version.c.h b/include/ztd/version/detail/version.c.h index 33bf657..35777ee 100644 --- a/include/ztd/version/detail/version.c.h +++ b/include/ztd/version/detail/version.c.h @@ -186,6 +186,26 @@ #define ZTD_PLATFORM_SUNOS_I_ ZTD_DEFAULT_OFF #endif // SunOS +#if defined(ZTD_PLATFORM_ANDROID) + #if (ZTD_PLATFORM_ANDROID_I_ != 0) + #define ZTD_PLATFORM_ANDROID_I_ ZTD_ON + #else + #define ZTD_PLATFORM_ANDROID_I_ ZTD_OFF + #endif +#elif defined(__ANDROID_API__) && (__ANDROID_API__ > 0) + #define ZTD_PLATFORM_ANDROID_I_ ZTD_DEFAULT_ON +#else + #define ZTD_PLATFORM_ANDROID_I_ ZTD_DEFAULT_OFF +#endif // Android (NDK) + +#if defined(ZTD_PLATFORM_ANDROID_VERSION) + #define ZTD_PLATFORM_ANDROID_I_ ZTD_PLATFORM_ANDROID_VERSION +#elif ZTD_IS_ON(ZTD_PLATFORM_ANDROID) + #define ZTD_PLATFORM_ANDROID_VERSION_I_ __ANDROID_API__ +#else + #define ZTD_PLATFORM_ANDROID_VERSION_I_ 0 +#endif + #if defined(ZTD_PLATFORM_UNIX) #if (ZTD_PLATFORM_UNIX != 0) #define ZTD_PLATFORM_UNIX_I_ ZTD_ON @@ -380,17 +400,25 @@ #endif -#if defined(ZTD_NL_LANGINFO) - #if (ZTD_NL_LANGINFO != 0) - #define ZTD_NL_LANGINFO_I_ ZTD_ON +#if defined(ZTD_NL_LANGINFO_H) + #if (ZTD_NL_LANGINFO_H != 0) + #define ZTD_NL_LANGINFO_H_I_ ZTD_ON #else - #define ZTD_NL_LANGINFO_I_ ZTD_OFF + #define ZTD_NL_LANGINFO_H_I_ ZTD_OFF #endif #else #if ZTD_HAS_INCLUDE_I_() - #define ZTD_NL_LANGINFO_I_ ZTD_ON + #if ZTD_IS_ON(ZTD_PLATFORM_ANDROID) + #if ZTD_USE(ZTD_PLATFORM_ANDROID_VERSION) >= 26 + #define ZTD_NL_LANGINFO_H_I_ ZTD_DEFAULT_ON + #else + #define ZTD_NL_LANGINFO_H_I_ ZTD_DEFAULT_OFF + #endif + #else + #define ZTD_NL_LANGINFO_H_I_ ZTD_DEFAULT_ON + #endif #else - #define ZTD_NL_LANGINFO_I_ ZTD_DEFAULT_OFF + #define ZTD_NL_LANGINFO_H_I_ ZTD_DEFAULT_OFF #endif #endif // nl_langinfo POSIX @@ -400,7 +428,7 @@ #else #define ZTD_LOCALE_DEPENDENT_WIDE_EXECUTION_I_ ZTD_OFF #endif -#elif ZTD_IS_ON(ZTD_NL_LANGINFO) && (ZTD_IS_ON(ZTD_PLATFORM_ZEDOS) || ZTD_IS_ON(ZTD_PLATFORM_AIX)) +#elif ZTD_IS_ON(ZTD_NL_LANGINFO_H) && (ZTD_IS_ON(ZTD_PLATFORM_ZEDOS) || ZTD_IS_ON(ZTD_PLATFORM_AIX)) #define ZTD_LOCALE_DEPENDENT_WIDE_EXECUTION_I_ ZTD_ON #else #define ZTD_LOCALE_DEPENDENT_WIDE_EXECUTION_I_ ZTD_DEFAULT_OFF @@ -477,18 +505,18 @@ #define ZTD_CHAR8_T_I_ unsigned char #endif // char8_t defined by the user -#if defined(ZTD_UCHAR) - #if (ZTD_UCHAR != 0) - #define ZTD_UCHAR_I_ ZTD_ON +#if defined(ZTD_UCHAR_H) + #if (ZTD_UCHAR_H != 0) + #define ZTD_UCHAR_H_I_ ZTD_ON #else - #define ZTD_UCHAR_I_ ZTD_OFF + #define ZTD_UCHAR_H_I_ ZTD_OFF #endif #elif ZTD_IS_OFF(ZTD_PLATFORM_MAC_OS) - #define ZTD_UCHAR_I_ ZTD_DEFAULT_ON + #define ZTD_UCHAR_H_I_ ZTD_DEFAULT_ON #elif ZTD_HAS_INCLUDE_I_() - #define ZTD_UCHAR_I_ ZTD_DEFAULT_ON + #define ZTD_UCHAR_H_I_ ZTD_DEFAULT_ON #else - #define ZTD_UCHAR_I_ ZTD_DEFAULT_OFF + #define ZTD_UCHAR_H_I_ ZTD_DEFAULT_OFF #endif #if defined(ZTD_CUCHAR) @@ -505,18 +533,18 @@ #define ZTD_CUCHAR_I_ ZTD_DEFAULT_OFF #endif -#if defined(ZTD_WCHAR) - #if (ZTD_WCHAR != 0) - #define ZTD_WCHAR_I_ ZTD_ON +#if defined(ZTD_WCHAR_H) + #if (ZTD_WCHAR_H != 0) + #define ZTD_WCHAR_H_I_ ZTD_ON #else - #define ZTD_WCHAR_I_ ZTD_OFF + #define ZTD_WCHAR_H_I_ ZTD_OFF #endif #elif ZTD_HAS_INCLUDE_I_() - #define ZTD_WCHAR_I_ ZTD_DEFAULT_ON + #define ZTD_WCHAR_H_I_ ZTD_DEFAULT_ON #elif ZTD_IS_OFF(ZTD_LIBCXX) - #define ZTD_WCHAR_I_ ZTD_DEFAULT_ON + #define ZTD_WCHAR_H_I_ ZTD_DEFAULT_ON #else - #define ZTD_WCHAR_I_ ZTD_DEFAULT_OFF + #define ZTD_WCHAR_H_I_ ZTD_DEFAULT_OFF #endif #if defined(ZTD_CWCHAR) @@ -559,38 +587,68 @@ #if ZTD_IS_ON(ZTD_CXX) #if ZTD_IS_ON(ZTD_CUCHAR) - #define ZTD_UCHAR_ACCESSOR_I_ ::std:: + #define ZTD_UCHAR_SCOPE_I_ ::std:: #else - #define ZTD_UCHAR_ACCESSOR_I_ :: + #define ZTD_UCHAR_SCOPE_I_ :: #endif #else - #define ZTD_UCHAR_ACCESSOR_I_ + #define ZTD_UCHAR_SCOPE_I_ #endif #if ZTD_IS_ON(ZTD_CXX) #if ZTD_IS_ON(ZTD_CWCHAR) - #define ZTD_WCHAR_ACCESSOR_I_ ::std:: + #define ZTD_WCHAR_SCOPE_I_ ::std:: #else - #define ZTD_WCHAR_ACCESSOR_I_ :: + #define ZTD_WCHAR_SCOPE_I_ :: #endif #else - #define ZTD_WCHAR_ACCESSOR_I_ + #define ZTD_WCHAR_SCOPE_I_ #endif -#if defined(ZTD_LANGINFO) - #if (ZTD_LANGINFO != 0) - #define ZTD_LANGINFO_I_ ZTD_ON +#if ZTD_IS_ON(ZTD_CXX) + #if ZTD_IS_ON(ZTD_CWCHAR) || ZTD_IS_ON(ZTD_CUCHAR) + #define ZTD_MBSTATE_SCOPE_I_ ::std:: #else - #define ZTD_LANGINFO_I_ ZTD_OFF + #define ZTD_MBSTATE_SCOPE_I_ :: + #endif +#else + #define ZTD_MBSTATE_SCOPE_I_ +#endif + +#if defined(ZTD_LANGINFO_H) + #if (ZTD_LANGINFO_H != 0) + #define ZTD_LANGINFO_H_I_ ZTD_ON + #else + #define ZTD_LANGINFO_H_I_ ZTD_OFF #endif #else #if ZTD_HAS_INCLUDE_I_() - #define ZTD_LANGINFO_I_ ZTD_ON + #if ZTD_IS_ON(ZTD_PLATFORM_ANDROID) + #if ZTD_USE(ZTD_PLATFORM_ANDROID_VERSION) >= 26 + #define ZTD_LANGINFO_H_I_ ZTD_DEFAULT_ON + #else + #define ZTD_LANGINFO_H_I_ ZTD_DEFAULT_OFF + #endif + #else + #define ZTD_LANGINFO_H_I_ ZTD_DEFAULT_ON + #endif #else - #define ZTD_LANGINFO_I_ ZTD_DEFAULT_OFF + #define ZTD_LANGINFO_H_I_ ZTD_DEFAULT_OFF #endif #endif // langinfo POSIX +#if defined(ZTD_NL_LANGINFO) + #if (ZTD_NL_LANGINFO != 0) + #define ZTD_NL_LANGINFO_I_ ZTD_ON + #else + #define ZTD_NL_LANGINFO_I_ ZTD_OFF + #endif +#elif ZTD_IS_ON(ZTD_NL_LANGINFO_H) || ZTD_IS_ON(ZTD_LANGINFO_H) + #define ZTD_NL_LANGINFO_I_ ZTD_DEFAULT_ON +#else + #define ZTD_NL_LANGINFO_I_ ZTD_DEFAULT_OFF +#endif + #if (ZTD_HAS_ATTRIBUTE_I_(nodiscard) != 0L) #if ZTD_IS_ON(ZTD_CXX) #if ZTD_HAS_ATTRIBUTE_I_(nodiscard) >= 201907L diff --git a/source/ztd/idk/encoding_detection.c.cpp b/source/ztd/idk/encoding_detection.c.cpp index 1ff8af9..4ae8049 100644 --- a/source/ztd/idk/encoding_detection.c.cpp +++ b/source/ztd/idk/encoding_detection.c.cpp @@ -61,7 +61,7 @@ ZTD_C_LANGUAGE_LINKAGE_I_ ZTD_IDK_API_LINKAGE_I_ bool ztdc_is_execution_encoding return true; } #endif -#if ZTD_IS_ON(ZTD_NL_LANGINFO) || ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __ctype_name = nl_langinfo(CODESET); #else const char* __ctype_name = setlocale(LC_CTYPE, nullptr); @@ -104,7 +104,7 @@ ZTD_C_LANGUAGE_LINKAGE_I_ ZTD_IDK_API_LINKAGE_I_ bool ztdc_is_execution_encoding return true; } #endif -#if ZTD_IS_ON(ZTD_NL_LANGINFO) || ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __ctype_name = nl_langinfo(CODESET); #else const char* __ctype_name = setlocale(LC_CTYPE, nullptr); @@ -134,7 +134,7 @@ ZTD_C_LANGUAGE_LINKAGE_I_ ZTD_IDK_API_LINKAGE_I_ bool ztdc_is_execution_encoding return true; } #endif -#if ZTD_IS_ON(ZTD_NL_LANGINFO) || ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __ctype_name = nl_langinfo(CODESET); #else const char* __ctype_name = setlocale(LC_CTYPE, nullptr); @@ -165,7 +165,7 @@ ZTD_C_LANGUAGE_LINKAGE_I_ ZTD_IDK_API_LINKAGE_I_ bool ztdc_is_execution_encoding return true; } #endif -#if ZTD_IS_ON(ZTD_NL_LANGINFO) || ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __ctype_name = nl_langinfo(CODESET); #else const char* __ctype_name = setlocale(LC_CTYPE, nullptr); @@ -224,7 +224,7 @@ ZTD_C_LANGUAGE_LINKAGE_I_ ZTD_IDK_API_LINKAGE_I_ const char* ztdc_execution_enco return "UTF-8"; } #endif -#if ZTD_IS_ON(ZTD_NL_LANGINFO) || ZTD_IS_ON(ZTD_LANGINFO) +#if ZTD_IS_ON(ZTD_NL_LANGINFO) const char* __ctype_name = nl_langinfo(CODESET); #else const char* __ctype_name = setlocale(LC_CTYPE, nullptr); diff --git a/tests/idk/inclusion/source/ztd/idk/mbstate_t.c b/tests/idk/inclusion/source/ztd/idk/mbstate_t.c new file mode 100644 index 0000000..bf0651d --- /dev/null +++ b/tests/idk/inclusion/source/ztd/idk/mbstate_t.c @@ -0,0 +1,31 @@ +// ============================================================================= +// +// ztd.idk +// Copyright © 2022-2023 JeanHeyd "ThePhD" Meneide and Shepherd's Oasis, LLC +// Contact: opensource@soasis.org +// +// Commercial License Usage +// Licensees holding valid commercial ztd.idk licenses may use this file in +// accordance with the commercial license agreement provided with the +// Software or, alternatively, in accordance with the terms contained in +// a written agreement between you and Shepherd's Oasis, LLC. +// For licensing terms and conditions see your agreement. For +// further information contact opensource@soasis.org. +// +// Apache License Version 2 Usage +// Alternatively, this file may be used under the terms of Apache License +// Version 2.0 (the "License") for non-commercial use; you may not use this +// file except in compliance with the License. You may obtain a copy of the +// License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============================================================================ // + +#include diff --git a/tests/idk/inclusion/source/ztd/idk/mbstate_t.c.cpp b/tests/idk/inclusion/source/ztd/idk/mbstate_t.c.cpp new file mode 100644 index 0000000..bf0651d --- /dev/null +++ b/tests/idk/inclusion/source/ztd/idk/mbstate_t.c.cpp @@ -0,0 +1,31 @@ +// ============================================================================= +// +// ztd.idk +// Copyright © 2022-2023 JeanHeyd "ThePhD" Meneide and Shepherd's Oasis, LLC +// Contact: opensource@soasis.org +// +// Commercial License Usage +// Licensees holding valid commercial ztd.idk licenses may use this file in +// accordance with the commercial license agreement provided with the +// Software or, alternatively, in accordance with the terms contained in +// a written agreement between you and Shepherd's Oasis, LLC. +// For licensing terms and conditions see your agreement. For +// further information contact opensource@soasis.org. +// +// Apache License Version 2 Usage +// Alternatively, this file may be used under the terms of Apache License +// Version 2.0 (the "License") for non-commercial use; you may not use this +// file except in compliance with the License. You may obtain a copy of the +// License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============================================================================ // + +#include diff --git a/tests/idk/inclusion/source/ztd/idk/mbstate_t.cpp b/tests/idk/inclusion/source/ztd/idk/mbstate_t.cpp new file mode 100644 index 0000000..20c5b35 --- /dev/null +++ b/tests/idk/inclusion/source/ztd/idk/mbstate_t.cpp @@ -0,0 +1,31 @@ +// ============================================================================= +// +// ztd.idk +// Copyright © 2022-2023 JeanHeyd "ThePhD" Meneide and Shepherd's Oasis, LLC +// Contact: opensource@soasis.org +// +// Commercial License Usage +// Licensees holding valid commercial ztd.idk licenses may use this file in +// accordance with the commercial license agreement provided with the +// Software or, alternatively, in accordance with the terms contained in +// a written agreement between you and Shepherd's Oasis, LLC. +// For licensing terms and conditions see your agreement. For +// further information contact opensource@soasis.org. +// +// Apache License Version 2 Usage +// Alternatively, this file may be used under the terms of Apache License +// Version 2.0 (the "License") for non-commercial use; you may not use this +// file except in compliance with the License. You may obtain a copy of the +// License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============================================================================ // + +#include