Commit Graph

295 Commits

Author SHA1 Message Date
Kevin Saul
be0fbd5203
Update at_path(toml::path) to handle missing component (#168)
* test(paths): check at_path handles missing path component

* fix(paths): update at_path to handle missing component
2022-08-25 08:13:22 +03:00
Mark Gillard
cc3c6606f8 documentation + CI updates 2022-08-14 16:43:19 +03:00
Mark Gillard
59ad6e6dfe removing use of std::aligned_storage
That shit is deprecated in C++23, yo.
2022-08-11 16:13:25 +03:00
Mark Gillard
67c18a3251 fixed spurious Wnull-dereference warning on GCC
closes #164
2022-08-08 23:41:32 +03:00
Mark Gillard
b6fa7e1891 arm fixes
- disambiguated `print_to_stream()` for ints (fixes #167)
- relaxed mantissa and digits10 requirements of extended floats
2022-08-03 00:16:04 +03:00
Mark Gillard
501a80e231 preprocessor + CI cleanup
also:
- minor refactors in path
- updated conformance tests
2022-07-31 18:34:53 +03:00
Mark Gillard
e2edd69399 Merge branch 'paths' 2022-07-31 13:58:29 +03:00
Andrea Pappacoda
cda9ca6cfe
Revert "build(meson): Update path for .pc and .cmake files (#165)" (#166)
If you want to read the full story please see pull request [#165][], but
in short moving files from share/ to lib/ was needed because FreeBSD
didn't look for .pc files in share/pkgconfig/.

After a quick [discussion][] upstream, FreeBSD's [pkgconf was patched][]
to also honour .pc files in share/pkgconfig/.

Now that everybody looks for stuff in share/, the commit
b1ecdf0ed8 can be reverted, so that stuff
like cross-compilation can continue working fine.

[#165]: https://github.com/marzer/tomlplusplus/pull/165
[discussion]: https://lists.freebsd.org/archives/freebsd-hackers/2022-July/001355.html
[pkgconf was patched]: https://cgit.freebsd.org/ports/commit/?id=d48fab59daa56e0b3b6ffecef57a69c32ae9c0a7
2022-07-30 21:14:55 +03:00
Daniel Engberg
b1ecdf0ed8
build(meson): Update path for .pc and .cmake files (#165)
Thanks for your contribution @diizzyy!
2022-07-21 23:50:16 +03:00
Tristan Jones
4047eb28b1
feat(paths): Removed use of std::variant in path_component_value (#161) 2022-06-25 12:19:40 +03:00
Mark Gillard
6a47ce703d update toml_merger example 2022-06-16 01:27:32 +03:00
Tristan Jones
fa8b6d472e
added operator= for path_components to keep component type and value synchronized (#159)
* feat(path): added operator= for path_components to keep component type and value synchronized

* fix(path): added missing TOML_EXPORTED_MEMBER_FUNCTION directives

* refactor(path): changed constructors to preserve type - value correlation in path_component

* fix(path): added TOML_EXPORTED_CLASS for path_component

* fix(path): corrected placement of TOML_EXPORTED_CLASS for path_component. urgh.

* fix(path): tidied up some constructors/accessors in path_component
2022-06-10 23:03:40 +03:00
Mark Gillard
0058d68bbc added node::operator[] for toml::path
also:
- added missing relational operators for `source_position`
- TOML_CHARCONV cleanup (was too keen)
- minor refactors
2022-06-06 23:46:04 +03:00
Mark Gillard
5baa568a6b unified internal path parsing using callbacks 2022-06-06 13:59:14 +03:00
Mark Gillard
0f5d986df1 added TOML_CALLCONV config option 2022-06-06 12:21:46 +03:00
Mark Gillard
3f4acc7c32 additonal path work
- re-ordered most of the `.inl` implementations to match the declaration order in the class body
- fixed a few missing cases of `noexcept`
- added additional operator overloads for +=
- added `operator==` and `operator!=` to `path_component`
- changed parse method to "parse into" so it could be re-used in more places without creating a temporary vector
- changed all binary operators to be 'hidden friends'
- moved the "to string" logic to a "print_to" for streams to avoid creating a temporary string in the ostream<< operator
- made the string conversion operators `explicit`
- renamed `string()` to `str()` to be consistent with `toml::key` and `std::stringstream`
- renamed `wstring()` to `wide_str()` to be consistent with `toml::source_region`
- renamed `parent_path()` to `parent()`
- removed the `const (w)char*` operator overloads - these were already sufficiently covered by the `std::(w)string_view` ones
- removed the `operator/` overloads - since we aren't a file path the `/` doesn't have the same meaning (also `operator+` was doing the same thing)
2022-06-05 00:14:50 +03:00
Mark Gillard
f4c2749179 Merge branch 'master' into paths 2022-06-04 16:50:20 +03:00
Tristan Jones
65d4b84710
Path (#156) 2022-06-04 16:49:26 +03:00
Mark Gillard
6126437d6c relaxed cvref requirements of some functions
also:
- added additional conformance test (toml/issues/908)
- added gitter badge image to docs/images
2022-05-31 14:02:01 +03:00
Tristan Jones
07ada616d9 feat: add gitter badge on readme 2022-05-26 00:30:40 +03:00
Mark Gillard
e257fd8098 added toml_merger example
closes #155
2022-05-20 17:54:58 +03:00
Hennadii Chernyshchyk
b75212c5dd
Move install rules under PROJECT_IS_TOP_LEVEL (#154) 2022-05-18 13:00:37 +03:00
Mark Gillard
39b80f6c56 fixed table source columns being off by one
closes #152

also other minor refactors
2022-05-14 15:22:21 +03:00
Mark Gillard
e55ac0288f MSVC used "Emotional Damage". It's super effective! 2022-05-09 15:15:00 +03:00
Mark Gillard
9e9b44dc14 made the toml_generator example Not Shit 2022-05-09 12:32:04 +03:00
Mark Gillard
5eec04b951 added value type deduction to emplace() methods
also:
- minor CI work
2022-05-09 00:33:43 +03:00
Mark Gillard
27816dbbd1 added meson option use_vendored_libs 2022-05-01 15:09:09 +03:00
Mark Gillard
e47ef8cfb2 removed git submodules to fix various tooling issues (closes #151)
- removed submodules in `external/`
- vendored `Catch2` and `nlohmann/json directly`
- updated conformance test generator to look outside the repo for test sources
2022-05-01 12:20:03 +03:00
Yannic Staudt
1c09239fbd
tipi.build support for tomlplusplus (#150) 2022-04-29 15:54:50 +03:00
Mark Gillard
25058a070a minor documentation updates 2022-04-25 19:41:36 +03:00
Mark Gillard
85c5128f90 fix for_each() for older MSVC 2022-04-24 21:19:09 +03:00
Mark Gillard
bf13bbd42e added for_each() for tables and arrays
also:
- refactoring
- documentation fixes
- updated conformance tests
- made submodules shallow
2022-04-24 21:02:55 +03:00
Mark Gillard
db04ac8918 added tests for visit()
Also some minor refactors.
2022-04-23 17:28:25 +03:00
Mark Gillard
af637f7e89 Updated support for unicode in bare keys
Now matches toml/pull/891.
2022-04-23 12:58:15 +03:00
Mark Gillard
62c4c34e15 ci: fix doxygen generation not running
Also took the opportunity to add some sensible filters to the main ci script.
2022-04-22 23:32:57 +03:00
Mark Gillard
2c5580c71d minor meson refactor
Yeah so it turns out meson supports splitting compound boolean logic over multiple lines. Duh. Of course it does.

Also enabled ubsan for CI example builds.
2022-04-22 22:44:52 +03:00
Mark Gillard
0f6a856dc4 CI: add release builds to matrix 2022-04-18 12:47:05 +03:00
Mark Gillard
6e7942788d minor refactor 2022-04-18 12:27:54 +03:00
Ivan Shynkarenka
31cf6efbb9
clang 10.0: error: unknown warning group '-Wsuggest-destructor-override' #145 (#146)
Co-authored-by: Ivan Shynkarenka <Ivan_Shynkarenka@epam.com>
2022-03-14 12:21:36 +02:00
Mark Gillard
5b79305c6e Add support for \e (toml-lang/toml/pull/790) 2022-03-06 16:09:14 +02:00
Mark Gillard
1c26ce1dcf fixed UB in internal unicode machinery (closes #144)
also:
- updated conformance tests
- added ubsan options to meson.build
2022-02-26 18:07:11 +02:00
Andrea Pappacoda
36030cace8 build(meson): use system deps when avalable
When building tests, Meson will now look for system dependencies and use
them if found. Otherwise, it will check if the submodules are cloned and
create a dependency object wrapping the include path of each external
dependency (this breaks Meson's sandbox, but the previous approach did
too). This also allows passing actual dependencies to the various build
targets instead of include paths (a bit more idiomatic).

I've also made it possible to skip the tl-optional tests when the lib is
not found, so that it is still possible to run tests even from a
tarball (i.e. no git checkout)
2022-02-17 22:45:07 +02:00
Andrea Pappacoda
7306fd2ae5 ci(windows): don't use a container
Windows containers in GitHub Actions are simply bad. While it is
possible to use them, it is a horrible hack with terrible usability.

It was a fun experiment, but I don't want anybody to maintain this mess,
especially when you can use a normal Windows image (less cool, bloated,
but well supported).
2022-02-17 22:45:07 +02:00
Andrea Pappacoda
a35c7bc631 ci: switch to GitHub Actions 2022-02-12 22:04:16 +02:00
Andrea Pappacoda
029160c280 build(meson): add compile_library option 2022-02-12 22:04:16 +02:00
Andrea Pappacoda
5e6008329f refactor: deprecate TOML_API, add more specific defines 2022-02-12 22:04:16 +02:00
Andrea Pappacoda
4bd9bda09f
build(meson): install CMake Config files to datadir (#141)
* build(meson): install CMake Config files to datadir

Since Meson doesn't yet support CMake's ARCH_INDEPENDENT option, a
pre-generated Package Version file is installed instead of generating it
at configure time.

I've also cleaned up a bit the nearby lines of code.

Fixes #140

* build(meson): don't hardcode include in CMake Config
2022-02-02 16:01:52 +02:00
Mark Gillard
8e669aa699 release v3.0.1 2022-01-13 12:09:07 +02:00
Mark Gillard
71b57a3238 added regression test to detect ODR violations 2022-01-13 01:24:09 +02:00
Mark Gillard
0388589810 fixed erroneous use of TOML_API causing ODR issue (closes #136) 2022-01-13 00:36:43 +02:00