3a39f2438a
chrono: resolve time constant confusion
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:08 +02:00
7cd4d099ff
stream: cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:08 +02:00
ab8d37ee75
Turn assert() into _Analysis_assume_ on Release builds
...
While runtime asserts also served as MSVC Code Analysis hints, the lack
of asserts in Release builds provides no hints to Code Analysis which
rises a lot of warnings then.
Maybe I should learn how to use SAL to annotate <ptr, len> parameter
pairs to allow ptr==nullptr when and only when len==0? 😇
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
9ba4b21cef
Un-static global data
...
Otherwise, compiler generates instances for each compilation unit.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
36012a107b
stream: cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
b791621a2a
stream: make std:thread member rather than derive from it
...
When deriving, C++ might believe the derived class is still movable. But
it's not and rather than deleting move constructor and operator, this
approach made simpler code.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
9365f0252c
stream: add socket
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
e61720598f
stream: revise string reading and writing
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:07 +02:00
86e7ed3690
stream: add support for collection reading and writing
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
838dfabbda
string: add trim
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
82a16ef579
string: add strftime
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
a888731c39
string: extend strupr
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
02c531e2a8
string: fix strncpy and strncat buffer limit check
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
d7a44c2929
string: add strncmp
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
7ea1870552
interval: allow use with scoped enums
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:06 +02:00
010ee71d93
interval: make operators a class friend
...
This makes them better discoverable by MSVC from various non-root
namespaces.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:05 +02:00
3183b58e0d
idrec: cleanup and make operators a class friend
...
This makes them better discoverable by MSVC from various non-root
namespaces.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:43:05 +02:00
6f19e5250d
parser: weasel winsock2.h support
...
This is a royal PITA to get compiled under various combinations of
WIN32_LEAN_AND_MEAN and _WINSOCKAPI_ combinations.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:04 +02:00
c16579984d
system: add sys_info
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:04 +02:00
9f21015209
system: add sregex
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:03 +02:00
1a9b63279d
unicode: add UTF-7 and improve system charset detection
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:03 +02:00
970917f164
unicode: silence MSVC code analysis warnings
...
Those lines of code were tested.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:03 +02:00
67d328a550
watchdog: add
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-10 16:42:03 +02:00
06a896ccf6
hash: make operators a class friend
...
This makes them better discoverable by MSVC from various non-root
namespaces.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-03 14:56:15 +02:00
dfdc4369b8
base64: add base64_reader and base64_writer
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-10-03 14:56:14 +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
772dbb3524
Add README.md
...
A very vague one, but still. 😇
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-25 14:55:27 +02:00
4a5970595f
math: document add and mul
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-25 14:54:46 +02:00
41d764eeef
parser: fix compilation for macOS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-23 17:58:40 +02:00
80eecac31a
unicode: add charset_id::utf32 for Windows
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-22 13:36:13 +02:00
10d74988aa
Add mising UTF-8 BOM's
...
Curse you XCode! 😔
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-22 13:07:14 +02:00
b724ce1333
stream: fix wchar_t/UTF-16 confusion and revise readln and write_array
...
On non-Windows, wchar_t is UTF-32. This adds preliminary support for UTF-32
and changes readln and write_array members to use charset_encoder for better
performance on non-Windows platforms.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-22 13:04:41 +02:00
921d235459
unicode: upgrade and promote use of charset_encoder
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-22 13:02:27 +02:00
cb010bd72e
UnitTests: upgrade XCode project to include all .hpp files
...
This simplifies source code browsing.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-20 14:02:40 +02:00
6689aa5210
stream: add file::exists and file::readonly
...
We are targeting C++14, while C++17 already has std::filesystem::exists. 😢
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-20 13:00:20 +02:00
dcfc4752b5
stream: add stdex::sstring method variants
2023-09-20 12:09:58 +02:00
475e6734a7
stream: extend open/create disposition flags
...
User could not create file only if it did not exist.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-20 11:13:16 +02:00
50fea81f83
parser: cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-20 08:07:50 +02:00
613bba9e05
parser: refine IBAN checking
...
Allow arbitrary spacing, minor optimizations...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-19 21:40:36 +02:00
b5984ea8f2
Port to macOS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-19 18:02:18 +02:00
27afd7afa5
parser: add IBAN, RF and SI support
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-19 16:53:16 +02:00
0e8e119346
unicode: Fix charset detection on macOS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-15 16:33:20 +02:00
fea0ed7754
unicode: add system charset detection
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-15 15:32:14 +02:00
bffb48c87d
string: streamline C locale management across platforms
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-15 15:31:18 +02:00
bb2578f65c
UnitTests: Revert to XCode 13
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-14 16:10:13 +02:00
edd480d64b
macOS fixes
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-14 15:57:55 +02:00
51d7ee3493
Fix to support pre-C++17
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-14 13:01:16 +02:00