102 Commits

Author SHA1 Message Date
38fac2837f parser: Duplicate locale
The Release testing revealed that compiler might free temporary
std::locale instances sooner than we thought, exposing UaF.

On 64-bit arch, a reference takes 8 bytes, a std::locale copy takes 16
bytes. So duplicating a locale in each parser instance is not such a big
deal to risk an UaF.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 11:02:23 +01:00
127704d2d8 parser: Rename "tester" to "parser"
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 10:58:15 +01:00
33012e1513 parser: Use ranged for loops where appropriate
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 09:38:53 +01:00
aa233bd5f9 Convert space to tab indentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 21:51:39 +01:00
308f63490c Rename .h to .hpp
These files are C++ only. They should either have no extension like
standard C++ headers (which is cumbersome on Windows environments), or
.hpp.

.h is used for C and hybrid C/C++ headers.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 21:49:41 +01:00
261ad98812 Add string parsers
Ported from Amebis AOsn library to standard C++

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 21:38:57 +01:00
d13421e4b6 Add noop deleter
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:09:23 +01:00
601cfec62d interval: Add empty() method
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:03:01 +01:00
b43b853235 Add SGML↔Unicode conversion
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:02:25 +01:00
9ce8e6bff9 Add support for character testing, strncmp, strnstr and number parsing
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:02:21 +01:00
f0d37935ec Add missing #include <assert.h>
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-09 13:54:15 +01:00
fe3580792f Update Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 13:34:04 +01:00
a59971fdbd Add strnchr() and crlf2nl()
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 12:01:57 +01:00
dda761a692 Add progress indicator templates
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:08:16 +01:00
fbc2afb450 Add interval template
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:50 +01:00
be8cffc109 Add user_cancelled exception type
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:31 +01:00
515d92b035 Add errno_error exception type
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:08 +01:00
ff8ca7f073 Use uint8_t where appropriate
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-09-15 12:22:37 +02:00
857b0b36c0 Adjust to compile with gcc
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-09-13 15:36:47 +02:00
09d0f347e8 Add .h extension to #include files
Using extension-less #include files brought more issues than it was
worth.

Reverts: dfa34420d9ff29932f1e7d06bb98f1f757373bd5
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 11:37:35 +01:00
13666a0d2f Move vector_queue from WinStd to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-04 13:49:12 +01:00
c7c3ee71d1 Switch to MIT license
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 15:38:03 +01:00
f76ece6ca5 Move Hex from WinStd to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 15:14:33 +01:00
76a90a203c Discontinue manual inline hinting
Compiler knows better than we do.

Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 14:20:51 +01:00
4521ea8f00 Move our Base64 implementation from WinStd
Base64 is general algorithm not provided with Win32 API.

Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 13:43:15 +01:00
b2e4c7dc4a Discontinue manual inline hinting
Compiler knows better than we do.

Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 13:34:41 +01:00
90de5d7140 Switch to standard C++ header filename convention
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 13:33:25 +01:00
6b9972b0a6 Update Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-01-07 11:37:01 +01:00
e3ad3fe729 Switch to SPDX license notice
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-11-30 11:05:28 +01:00
3d90357905 Cleanup common.h
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-03-30 11:57:13 +02:00
919b44573a Copyright: Bump year
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-03-25 08:35:33 +01:00
7a7030b9e3 Add UTF-8 BOM markers
MSVC needs them to use correct charset when Language for non-Unicode
programs is set to Windows-1252 or anything different than UTF-8.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-19 10:53:27 +01:00
325f9d6b08 Address code analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-12 20:33:41 +01:00
e6a06ee2d1 Extend copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-11 15:12:27 +01:00
eeff73ce37 Discontinue versioning
As stdex has been made static library it really makes no sense to
continue labeling versions.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-11 15:12:14 +01:00
7d1ba8c1d1 Extend copyright year 2018-09-07 23:47:57 +02:00
913158633a Make stdex static library 2018-09-07 22:54:58 +02:00
abf068584a Update build year 2017-12-22 10:16:14 +01:00
245715b10a Set version to 1.0.1 2017-12-19 11:49:31 +01:00
f843736067 Copyright extended to 2017 2017-04-18 13:50:57 +02:00
d38be14633 stdex::heap_allocator moved to winstd::heap_allocator 2016-10-06 15:55:36 +02:00
7d6e3dc7f5 CloseHandle_delete removed to be replaced by winstd::win_handle 2016-10-06 15:55:15 +02:00
b091bc90bc heap_allocator<> extended 2016-05-30 12:10:21 +02:00
0ed2d0a53d HeapAlloc allocator introduced 2016-05-26 15:55:11 +02:00
49c5b47230 CloseHandle deleter added 2016-05-26 12:58:22 +02:00
c004f8c2ef Doxygen support added 2016-04-11 13:48:32 +02:00
f413026bbc stdex::idrec::read_id added 2016-03-02 14:42:23 +01:00
fbb20a2042 _In_/_Out_ parameter declaration added 2016-03-01 15:22:17 +01:00
f5a2b04caa stdex::idrec reading fixed 2016-03-01 14:48:43 +01:00
32391e55a3 stdex::idrec::record template fixed 2016-03-01 14:01:41 +01:00