85 Commits

Author SHA1 Message Date
5fc35751a3 UnitTest: Switch to Assert::IsTrue for primitive datatypes
Visual Studio 2019 has issues compiling Assert::AreEqual<stdex::langid>.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 15:45:24 +01:00
51d472d8b2 UnitTest: ShortProjectName is not available in VS2019
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 14:26:54 +01:00
832daf89d6 UnitTests: Fix source code charset
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 14:17:29 +01:00
aae79719cb AppVeyor: Initial support
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 13:31:14 +01:00
2694f59d79 Sync with Xcode
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-12 11:14:19 +01:00
2674bb0e32 string: add variants for char16_t/char32_t strings
char16_t is not exactly the wchar_t on Windows. char32_t is not exactly
the wchar_t on POSIX. Rather than selecting the appropriate variant,
polymorphism picked the template implementation of strncmp, strcpy and
strncpy. The one that does not convert UTF16 surrogate pairs against
their UTF32 representation.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-13 11:01:01 +01:00
a7543cf9ab string: add snprintf
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-13 11:01:01 +01:00
db413bb5ce UnitTests: fix to compile on Windows
sys_info.hpp requires an extra #define and linker library.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-13 11:01:01 +01:00
8fd9fbf191 Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-08 12:36:35 +01:00
5675f8b139 string: add recoding from UTF-16 to UTF-32
I know there are system functions for this (and libiconv), but this is
so trivial and quick in our implementation.
2024-09-27 14:11:11 +02:00
c4e57f15df langid: extend and fix conversions
LANGID 9 should convert to "en" and 1033 to "en-US". 36 to "sl" and
1060 to "sl-SI". Likewise backwards. Otherwise, we are loosing
disambiguation between generic and country-specific language variants.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-08-22 17:02:44 +02:00
e65eb35cc2 Cleanup precompiler directives
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-08-21 13:32:58 +02:00
8bd8143c6b langid: sync Windows build
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-08-19 13:01:29 +02:00
7b21a3983c stdex: add langid
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-08-19 11:20:42 +02:00
5436dda7f6 assert: initial version
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-05-28 10:22:24 +02:00
9809765b33 minisign: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-15 14:45:27 +01:00
7e07d14de7 scoped_executor: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-01 09:28:48 +01:00
c6f5a72e70 zlib: fix length comparison in unit test
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-21 15:51:21 +01:00
31a53e9e43 UnitTests: Specify intermediate and output folders
Microsoft changed defaults in recent Visual Studio update. To worse
IMHO.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-21 15:50:30 +01:00
0a719e3081 Xcode: turn on and resolve all warnings 2024-02-14 15:05:41 +01:00
0560c7bce9 Add missing UTF-8 BOM
This is required on Windows with default charset set to Windows-1252 or
another non-UTF-8 charset.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-14 12:33:29 +01:00
8ac0efa85d Xcode: resolve -Wsign-compare
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-14 12:28:39 +01:00
681a6955d8 Xcode: resolve -Wunknown-pragmas
This is a multi-platform project and while trying to reduce amount of

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-14 12:26:52 +01:00
2232b0d23e UnitTests: remove Xcode settings set as default already 2024-02-14 08:49:36 +01:00
b0c682edd6 Fix to compile for Windows
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 15:26:20 +01:00
9acd185d44 UnitTest: redesing to avoid #include ".cpp" in Xcode
Each unit test .cpp file is not a separate compilation unit in Xcode project
like it is in Visual Studio. Hopefully, Visual Studio test tool still likes
this arrangement.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 15:18:42 +01:00
1e627e1c6b UnitTests: add zlib testing
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 14:38:34 +01:00
6e121395f3 UnitTest: switch to C++17
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 14:17:15 +01:00
b5e35922f1 string: revert emojis in unit test
Actually, using ill-created locale was the cause sprintf returned EILSEQ on %ls inserts containing emoji.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 14:04:15 +01:00
08a18d1519 macOS support
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 12:09:33 +01:00
cf73f8a48d zlib: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-23 11:01:12 +01:00
9f3d65d910 zlib: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:06 +01:00
c5feba2ed0 string: add unit test for sprintf
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 19:31:07 +01:00
38c6b40b21 Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:55:09 +01:00
2610547137 Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-21 09:21:32 +01:00
2e65d0351c Trim excessive inline
Methods and templates are implicitly marked as inline already.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-11 11:33:27 +01:00
bb9988933e unicode: add unit test for normalize
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-08 14:21:52 +01:00
6d1d9bd1b8 sgml: fix unit tests 2023-12-08 14:21:20 +01:00
5a4194c9ba wav: add 2023-12-01 19:06:20 +01:00
87c41c0947 html: add simple tokenizer and parser
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-17 15:14:54 +01:00
424f297c7b sgml: sgml2wstr→sgml2str, wstr2sgml→str2sgml 🧨
This is analogous to string.hpp's strlen, strcpy, strcat, which use C++
polymorphism rather than function name decorations for char/wchar_t
flavors.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-17 15:14:53 +01:00
bea4b5b408 spinlock, pool: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-10 12:38:13 +01:00
3dfd62ec2f socket: add own cross-platform declaration
Like with stdex::locale_t, this frees us from using Windowsizms on other
platforms. Sockets came from Unix to Windows and not the other way
around in the first place.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-09 09:25:42 +01:00
2c45749f78 string, locale: make stdex::locale(_t) independent .hpp file
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-09 08:12:31 +01:00
89a5c6e5e6 sys_info: move to a separate .hpp
The stdex::sys_info is instantiated for each compilation unit. To reduce
amount of copies, move it to a separate .hpp as system.hpp is almost
always #included.

Breaking-change: Add #include <stdex/sys_info.hpp>
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-19 10:16:53 +02:00
67d328a550 watchdog: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:03 +02:00
49b741c94f Replace errno_error with std::system_error
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-01 23:09:50 +02:00
b8fae2d0dd pch.h -> pch.hpp
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-25 15:05:36 +02:00
4e25c13d08 hash: macOS support
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-25 15:04:19 +02:00
c4e94150d1 hash: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-25 14:57:14 +02:00