Commit Graph

132 Commits

Author SHA1 Message Date
Simon Rozman
a59163733a parser: Add missing constructors to allow locale propagation
Classes using m_locale must allow locale configuration in their
constructor. Otherwise m_locale was always set to default by
basic_parser<> constructor.

Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 11:21:53 +01:00
Simon Rozman
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
Simon Rozman
127704d2d8 parser: Rename "tester" to "parser"
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 10:58:15 +01:00
Simon Rozman
33012e1513 parser: Use ranged for loops where appropriate
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-16 09:38:53 +01:00
Simon Rozman
aa233bd5f9 Convert space to tab indentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 21:51:39 +01:00
Simon Rozman
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
Simon Rozman
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
Simon Rozman
d13421e4b6 Add noop deleter
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:09:23 +01:00
Simon Rozman
601cfec62d interval: Add empty() method
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:03:01 +01:00
Simon Rozman
b43b853235 Add SGML↔Unicode conversion
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-15 09:02:25 +01:00
Simon Rozman
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
Simon Rozman
f0d37935ec Add missing #include <assert.h>
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-09 13:54:15 +01:00
Simon Rozman
fe3580792f Update Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 13:34:04 +01:00
Simon Rozman
a59971fdbd Add strnchr() and crlf2nl()
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-08 12:01:57 +01:00
Simon Rozman
dda761a692 Add progress indicator templates
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:08:16 +01:00
Simon Rozman
fbc2afb450 Add interval template
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:50 +01:00
Simon Rozman
be8cffc109 Add user_cancelled exception type
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:31 +01:00
Simon Rozman
515d92b035 Add errno_error exception type
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-03-06 16:07:08 +01:00
Simon Rozman
ff8ca7f073 Use uint8_t where appropriate
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-09-15 12:22:37 +02:00
Simon Rozman
857b0b36c0 Adjust to compile with gcc
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-09-13 15:36:47 +02:00
Simon Rozman
09d0f347e8 Add .h extension to #include files
Using extension-less #include files brought more issues than it was
worth.

Reverts: dfa34420d9
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 11:37:35 +01:00
Simon Rozman
a100acff13 Doxygen: Update project description
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 11:29:24 +01:00
Simon Rozman
8602b469db Doxygen: Instruct GitHub Actions to build documentation on push
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 11:26:20 +01:00
Simon Rozman
dfa34420d9 Doxygen: Fix skipping extension-less C++ #include files
Careful, not to include `Doxyfile` and ``LICENSE` extension-less files
from repository root.

Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 11:26:20 +01:00
Simon Rozman
11df03b0ad Doxygen: Add static functions and templates
Being portable, means having all function implementations in #include
files and functions marked as static. We have no global functions in
this project yet, but it took me quite some head scratching in WinStd
project why all the global functions are missing in the documentation.

Signed-off-by: Simon Rozman <simon@rozman.si>
2022-03-07 10:55:35 +01:00
Simon Rozman
1fbff95bd7 Doxyfile: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-04 14:42:06 +01:00
Simon Rozman
13666a0d2f Move vector_queue from WinStd to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-04 13:49:12 +01:00
Simon Rozman
c7c3ee71d1 Switch to MIT license
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 15:38:03 +01:00
Simon Rozman
f76ece6ca5 Move Hex from WinStd to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 15:14:33 +01:00
Simon Rozman
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
Simon Rozman
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
Simon Rozman
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
Simon Rozman
90de5d7140 Switch to standard C++ header filename convention
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 13:33:25 +01:00
Simon Rozman
364ed2cfd4 Declare as portable
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-02-03 13:17:59 +01:00
Simon Rozman
6b9972b0a6 Update Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2022-01-07 11:37:01 +01:00
Simon Rozman
c694b22fae Redirect output files to the output folder
Thou linker can locate the output .lib file of referenced projects
wherever .lib is just fine, this helps us to gather all .pdb files in
the output folder.

Signed-off-by: Simon Rozman <simon@rozman.si>
2021-12-01 08:46:17 +01:00
Simon Rozman
704de7808c AppVeyor: Remove Visual Studio 2017 from build matrix
As we no longer explicitly set WindowsTargetPlatformVersion property,
AppVeyor Visual Studio 2017 builders assume 8.1 SDK for ARM64 too,
resulting in an unknown platform.

Signed-off-by: Simon Rozman <simon@rozman.si>
2021-12-01 08:46:17 +01:00
Simon Rozman
b614865e2b Cleanup project files
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-12-01 08:46:17 +01:00
Simon Rozman
e3ad3fe729 Switch to SPDX license notice
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-11-30 11:05:28 +01:00
Simon Rozman
69d0a92288 AppVeyor: Add Visual Studio 2022 to the build matrix
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-11-30 09:30:41 +01:00
Simon Rozman
b5999a4520 Retire Visual Studio 2010 support and merge 2017 and 2019 project files
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-11-30 09:26:42 +01:00
Simon Rozman
3d90357905 Cleanup common.h
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-03-30 11:57:13 +02:00
Simon Rozman
919b44573a Copyright: Bump year
Signed-off-by: Simon Rozman <simon@rozman.si>
2021-03-25 08:35:33 +01:00
Simon Rozman
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
Simon Rozman
325f9d6b08 Address code analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-12 20:33:41 +01:00
Simon Rozman
e6a06ee2d1 Extend copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-11 15:12:27 +01:00
Simon Rozman
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
Simon Rozman
da7ca1c368 Configure precompiled headers locally
Build is using precompiled headers in pch.h. Explicitly configure it so
it does not rely on host solution configuration.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-10 15:15:25 +01:00
Simon Rozman
caa85e1da8 Reference solution property pages only if they exist
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-10 15:09:59 +01:00
Simon Rozman
37335edb71 Add AppVeyor support
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-02-10 15:07:44 +01:00