b2af5291f5
Fix issues introduced with porting to macOS and sync with Windows
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 23:19:46 +02:00
870961cd12
chrono: port to macOS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 22:47:18 +02:00
3da2529b08
compat: add more SAL as needed by other projects
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 22:46:22 +02:00
f05bf56a61
Don't #define NOMINMAX when compiled with -DNOMINMAX
...
MSVC issues compile-time warning about redefining.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 14:27:14 +02:00
180f763184
exception: set default user_cancelled exception message
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 13:21:30 +02:00
657eac0c69
system: add PATH_SEPARATOR
...
I am aware of the std::filesystem::path::preferred_separator, but we
are targeting C++14 and we need this as a precompiler macro to allow
concatenation of the path strings in precompile stage.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-13 11:29:20 +02:00
bd14f7c629
Fix issues introduced with porting to macOS and sync with Windows
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-12 17:15:33 +02:00
83d7fd844d
Port to macOS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-12 16:55:16 +02:00
1e993c8c65
math: port unit tests to XCode
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-11 17:34:40 +02:00
b326f819ab
Fix to compile using XCode
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-11 16:44:30 +02:00
fb66eeb852
Make inout param designations XCode-friendly
2023-09-11 16:12:22 +02:00
aa4de5aa40
Make space for and add macOS unit testing stub project
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-11 16:11:57 +02:00
a13aba304a
interval: extend arithmetic
...
Additional operators allow moving intervals left and right.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-11 11:46:23 +02:00
5558bd6ccc
string: add strchr, strstr and stristr
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-08 17:54:20 +02:00
753da36672
idrec: add support for stdex::stream
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-08 11:41:23 +02:00
b8cb07f456
stream: cleanup
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-07 14:35:03 +02:00
0848056487
string: fix strnlen parameter validation assert
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-09-04 10:10:03 +02:00
670cbb8d36
Catch by reference
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-29 16:19:53 +02:00
b76db46076
system: simplify and streamline system char and string type names
...
"sys_char" sticks out of "wchar_t", "char32_t", "uint32_t"...
Likewise, "sys_string" out of "string", "wstring", "u16string",
"u32string"...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-29 10:09:35 +02:00
e1f27662a1
string: streamline locale_t experience
...
Not that we would like to promote the use of C locale_t over C++
std::locale, but we need former for sprintf and we need decent support
for it.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-25 04:45:32 +02:00
2c2680dfb3
Resolve _WINSOCKAPI_ and WIN32_LEAN_AND_MEAN hell. Hopefully!
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-25 03:56:27 +02:00
fb48db73c1
string: add strdup and strndup
...
I know this is a step backward to C, but we need this in AJT for
backward compatibility.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-24 14:07:28 +02:00
703e43d055
string: add some more helpers for locale manipulation
...
Microsoft has nonstandard implementation.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-24 14:04:23 +02:00
b0b0a91729
unicode: add variants for zero-terminated input
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-24 13:58:55 +02:00
be83f36082
stream: add write_array variants for zero-terminated strings
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-24 13:57:57 +02:00
73d03d81af
stream: fix buffered_sys and cached_file destruction
...
We had to introduce out-of-order construction for those classes, but we
forgot to implement out-of-order destruction. File gets closed first
by cached_file::m_source destructor, then inherited destructor
cache::~cache() which flushes the cache is called.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-24 13:56:41 +02:00
2b1bfc235d
sgml, unicode: fix
2023-08-23 15:30:55 +02:00
52d6f8daf1
sgml, unicode: split strcat and strcpy variants
...
Previous implementation had only strcat-class conversion using vague
function names. This commit makes function names more explicit by adding
"cat" and deprecating previous function variants.
Since many situation required strcpy variant, the move above made space
to add strcpy variants too.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-23 14:45:39 +02:00
fe47a47e4e
string: add reusable C locale
...
This is frequently needed locale.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:16:23 +02:00
4ca3ed0718
system: add missing include
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:06:17 +02:00
1c622c3091
stream: fix ISequentialStream
...
MSVC 2019 didn't handle stdex::stream::ISequentialStream and
ISequentialStream disambiguation very well.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:05:49 +02:00
f9809adf0c
sgml: add variants to convert into fixed-sized buffers
...
This is a performance requirement of PRSkupno.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:04:36 +02:00
6bb4027553
parser::date_format_t: make classic enum
...
With scoped enum, bitwise operations in C++ require insane amount of
type-casting.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:03:24 +02:00
f08aa73690
chrono: additional conversions
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-22 17:00:58 +02:00
e28c61e431
chrono: finish AOsn date and time-stamp implementations
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-21 16:33:03 +02:00
55d39b1566
stream: fix cache handling in open and close
...
Reusing same class instance for different files reused cache content
as well.
Reported-by: Peter Holozan <peter.holozan@amebis.si>
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-21 10:27:43 +02:00
e7b6ab5345
stream: using namespace in UnitTests
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-21 10:22:32 +02:00
34449d124d
system: add sys_string
...
"std::basic_string<sys_char>" is too cumbersome and error-prone for
daily use.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-21 10:20:44 +02:00
42a38802d3
stream: fix Win32
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-19 08:31:08 +02:00
8457226168
ios, stream: replace <iostream> with leaner and faster own streaming
...
Our test program runs 15 minutes using our streams vs. 25 minutes using
std::iostream derived streams.
Streams were ported from Amebis AOsn project.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:24 +02:00
4965d1eac5
unicode: add unit tests
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
d7950abe42
unicode: add more constants for Windows codepages
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
057174bef9
string: fix strtoint() template
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
43d0c4ba05
ring: add
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
501183ca3e
math: add
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
3516c546ca
interval: add contains() method
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:19 +02:00
72ce0a03e5
system: add
...
Windows is very peculiar with #include <windows.h>. Besides we need some
OS primitive wrappers that are OS-specific.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-08-18 15:05:18 +02:00
d3a12f45b1
string: Add strcpy, strcat, strncat
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-07-26 12:17:47 +02:00
c61ce2cbf9
unicode: Add Windows-specific UTF-8 charset ID
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-07-26 11:04:43 +02:00
6aa63f3bd6
ios: Combine and simplify i/odiagstream
...
We need this for a rare use-case, so maintaining three flavors of
diagstream is too expensive. Furthermore, the buffering was removed
for simplicity.
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-07-25 16:38:55 +02:00