337 Commits

Author SHA1 Message Date
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
82a0ea69f9 unicode: don't specify MB_PRECOMPOSED for UTF-7&8
MultiByteToWideChar returns ERROR_INVALID_FLAGS on pre Windows 10.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-12 13:02:06 +01:00
fb6ac904af sys_info: fix Windows x86 compilation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-09 09:02:12 +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
5b80f24830 string: fix vsnprintf on macOS
vsnprintf_l and vswprintf_l mutate va_list parameter on some versions of macOS (11.7 Big Sur).
This makes it impossible to call printf multiple times with a growing buffer.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 14:16:36 +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
a4ca4df926 locale: use nullptr as default locale on non-Windows systems
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 14:02:20 +01:00
f5f4cbf308 sys_info: make platform_id enum
This allows same platform management across different operating systems.
Like with charset_id, the Windows numbering was adopted.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 13:08:29 +01:00
08a18d1519 macOS support
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-02-08 12:09:33 +01:00
b6be4f040e #if defined(_DEBUG) → #if !defined(NDEBUG)
Microsoft declares all identifiers starting with underscore _ as
internal to MSVC. Thus, we should either use defined(DEBUG) or
!defined(NDEBUG) to distinguish Debug and Release builds.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-25 10:35:09 +01:00
ce1688964a progress: add timeout_progress
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-25 09:52:43 +01:00
10830d5583 html: cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-24 18:19:01 +01:00
4a8ba9eb60 mapping: add + operator
This allows cleaner arithmetic when adjusting mapping by an offset.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-24 12:26:54 +01:00
18c41ebfdf interval: add += and -= operators
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-24 12:25:47 +01:00
cf73f8a48d zlib: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-23 11:01:12 +01:00
016577dbec endian: mark one-byte "swap" functions as constexpr
While being here only for templates to work with various data types, the
one-byte "swap" functions are actually noop.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-22 16:57:25 +01:00
bf029efd07 parser: switch to own endian conversion
htonl and htons require Ws2_32.lib on Windows, while we already have
endian swapping functions in stdex.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-22 16:55:40 +01:00
bdb266f039 parser: fix detected IPv4 and IPv6 byte order
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-22 11:40:51 +01:00
848979950c progress: add aggregate_progress
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-19 15:00:53 +01:00
f3e117afcc watchdog: upgrade to rearm rather than die on initial timeout
This makes watchdog reusable.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-19 14:48:23 +01:00
528ea5fffe pool: add clear
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-19 14:44:37 +01:00
8839c80fec debug: add benchmark
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-18 12:19:44 +01:00
ab94d7014f stream: cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-16 08:24:37 +01:00
59a53e10f4 string: update documentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-11 09:09:46 +01:00
9f3d65d910 zlib: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:06 +01:00
790c26789a sys_info: add is_screen_reader
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:06:02 +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
b42aa969dc unicode: Write directly into std::string buffer
This removes extra memory allocation.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 22:55:15 +01:00
114609274f string: address Code Analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 22:45:41 +01:00
293da738b9 string: upgrade sprintf to write directly into std::string buffer
This removes extra memory allocation.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 20:32:00 +01:00
1685cd3283 string: fix sprintf
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 17:01:43 +01:00
0eebde6d81 parser::http_media_type: fix stack overflow
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-03 15:49:01 +01:00
b96d909cfe html: fix to build
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-03 13:16:35 +01:00
d981225ba8 sgml: add sgmlerr
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-23 08:19:43 +01:00
fdf16a65b6 string: add is7bit
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-23 08:19:26 +01:00
e1f53f31ad string: add glyphrlen
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 21:36:21 +01:00
9c9fd9d05a math: add muldiv
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 21:35:56 +01:00
024f3f7172 string: add strncpy for fixed-size buffers
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:10 +01:00
61bf25ac6a string: switch from intptr_t to ptrdiff_t at strtoi()
strtoi() is complementary to strtoui() returning size_t. But, intptr_t
is complementary to uintptr_t, and ptrdiff_t is complementary to size_t.

I know it doesn't matter on flat-memory platforms, but nevertheless, we
try to keep things organized in a portable way.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:10 +01:00
ba38dad49d string: add strrcmp and strrncmp
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:10 +01:00
09b59e698d Refactor
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:09 +01:00
c212e68bb5 debug: add
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:09 +01:00
088dd86d63 string: add strtod
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-22 14:17:09 +01:00