950 Commits

Author SHA1 Message Date
Alan de Freitas a34f3a4a1a docs: restructure parsing intro with correct snippets
fix #998
boost-1.92.0.beta1
2026-05-13 18:04:46 -05:00
Alan de Freitas 585c7a6930 docs: fix encoded segments output block
fix #997
2026-05-13 18:04:46 -05:00
Alan de Freitas 691f056c7a docs: declare u1 as url in set_host example
fix #996
2026-05-13 18:04:46 -05:00
Alan de Freitas 9d65427508 fix: normalize_path overflow shielding "//" path
fix #992
2026-05-13 12:52:28 -05:00
Alan de Freitas 30b41fadd6 ci: override GCC 16 container to ubuntu:26.04 2026-05-13 08:54:22 -05:00
Alan de Freitas 9e30db322c fix: integer-sanitizer findings in ci_string loops and FNV hash 2026-05-13 08:54:22 -05:00
Alan de Freitas 38196fd983 fix: unsigned-integer-overflow in integer_formatter_impl negation 2026-05-13 08:54:22 -05:00
Alan de Freitas c628bd0665 fix: unsigned-integer-overflow in decode_view::decoded_strcmp loop 2026-05-13 08:54:22 -05:00
Alan de Freitas 5440c3f3c4 fix: uninitialized read in ipv6_address_rule when "." has no preceding h16
fix #993
2026-05-13 08:54:22 -05:00
Alan de Freitas ab3c603aa1 test: non-cache PREV_BUILD_TESTING in cmake_test 2026-04-27 17:50:54 -05:00
Alan de Freitas 41b467a389 fix: decoded query-size tracking in url_base::edit_params
Latent issue exposed by b54e9e8, not introduced by it.

fix #989
2026-04-24 09:39:55 -05:00
Alan de Freitas f9633830fe fix: url_view memcpy with null source when size is zero 2026-04-23 20:59:59 -05:00
Alan de Freitas d42c74844b fix: string_view_base noexcept on throwing operator std::string() 2026-04-23 20:59:59 -05:00
Alan de Freitas b1f6f8e4fa fix: param noexcept on throwing constructor 2026-04-23 20:59:59 -05:00
Alan de Freitas 3ca2d715fe fix: segments_iter_impl decoded-length in decrement() 2026-04-23 20:59:59 -05:00
Alan de Freitas 000476c66a docs: restore library-detail.adoc with shorter description
fix #984
boost-1.91.0
2026-04-05 14:34:31 -05:00
Alan de Freitas 106552df13 docs: design rationale page 2026-04-05 14:34:31 -05:00
Alan de Freitas 2c6cdc6c60 fix: normalize_path ambiguity from dotdot cancellation
The existing ambiguity handling in normalize_path only checked the
path before running remove_dot_segments. It detected dot prefixes
("/./" or "./") hiding "//" and colons in the first segment, but
missed cases where ".." segments cancel regular segments and produce
ambiguity in the output:

- scheme:/a/..//evil -> scheme://evil (authority ambiguity)
- a/../b:c -> b:c (scheme ambiguity)
- a/..//evil -> /evil (relative path became absolute)

Fix by checking remove_dot_segments output for these conditions and
inserting a path shield or encoding colons as needed. Colon encoding
moved entirely to after dot removal, simplifying the pre-dot-removal
step to only handle shield preservation.

fix #985
2026-04-03 16:58:25 -05:00
Alan de Freitas 3f8a428bf0 fix: remove broken coveralls upload from Drone CI
The coveralls section fails on Ubuntu 24.04 because pip3 install
requires a virtual environment (PEP 668), and the resulting
cpp-coveralls command-not-found exit code was failing the build.
boost-1.91.0.beta1
2026-03-02 19:44:17 -05:00
Alan de Freitas 86b977fcef docs: error_types copy-paste deprecation messages 2026-03-02 19:44:17 -05:00
Alan de Freitas 8d98fe6530 fix: decode() noexcept on throwing template 2026-03-02 19:44:17 -05:00
Alan de Freitas 9c9850f188 fix: ci_equal arguments by const reference 2026-03-02 19:44:17 -05:00
Alan de Freitas 5bc52ed839 fix: port_rule has_number for port zero at end of input 2026-03-02 19:44:17 -05:00
Alan de Freitas b662a8f0c6 fix: encode() noexcept on throwing template 2026-03-02 19:44:17 -05:00
Alan de Freitas ab5d812c51 fix: encode_one signed char right-shift 2026-03-02 19:44:17 -05:00
Alan de Freitas fe4bdf692e fix: url move self-assignment 2026-03-02 19:44:17 -05:00
Alan de Freitas 88efbae208 fix: recycled_ptr copy self-assignment 2026-03-02 19:44:17 -05:00
Alan de Freitas d045d71fdc fix: ci_is_less OOB read 2026-03-02 19:44:17 -05:00
Alan de Freitas f5727ed9ce fix: stale pattern n.path after colon-encoding 2026-03-02 19:44:17 -05:00
Alan de Freitas 4fe2438f6a fix: decode_view::ends_with with empty string 2026-03-02 19:44:17 -05:00
Alan de Freitas d06df88ffb fix: format center-alignment padding 2026-03-02 19:44:17 -05:00
Alan de Freitas d4ae92d51f fix: recycled_ptr::get() nullptr when empty 2026-03-02 19:44:17 -05:00
Alan de Freitas 76279f5344 fix: incorrect noexcept in segments_base::front() and back() 2026-03-02 19:44:17 -05:00
Alan de Freitas 42c8fe7eff fix: ci_less::operator() return type 2026-03-02 19:44:17 -05:00
Alan de Freitas 81fcb95005 fix: LLONG_MIN negation UB in format 2026-03-02 19:44:17 -05:00
Alan de Freitas bcdc891c8f fix: url_base loop condition order 2026-03-02 19:44:17 -05:00
Alan de Freitas ec15fce38c fix: encode() UB pointer arithmetic for small buffers 2026-03-02 19:44:17 -05:00
Alan de Freitas 4f466ce8e3 test: public interface boundary and fuzz tests 2026-03-02 19:44:17 -05:00
Alan de Freitas 8fa7f9f400 build: use glob-tree-ex for test source discovery in Jamfile
Replace the manually maintained SOURCES list with glob-tree-ex to
auto-discover test .cpp files, matching the CMakeLists.txt approach.
Files needing special flags (doc_grammar.cpp, doc_3_urls.cpp, example/)
are excluded from the glob and handled by explicit run statements.
2026-03-02 19:44:17 -05:00
Alan de Freitas 59b4540d13 fix: suppress GCC false-positive -Wmaybe-uninitialized in tuple_rule
GCC 7+ at -O3 emits false -Wmaybe-uninitialized from
variant2 union storage when deeply inlining constexpr
functions. Wrap the affected parse_sequence code in
tuple_rule.hpp with a diagnostic pragma.

fix #979
2026-02-25 15:48:59 -05:00
Alan de Freitas b9db439ea3 build: remove -Wno-maybe-uninitialized from GCC flags
fix #979
2026-02-25 15:48:59 -05:00
Alan de Freitas fdb3ca44c3 ci: update cpp-actions to v1.9.3 2026-02-24 11:54:46 -05:00
Alan de Freitas 64cf24a966 ci(dependabot): disable alerts for doc npm dependencies 2026-02-24 11:54:46 -05:00
Alan de Freitas a87998a119 fix(params): correct decoded_size in params_iter_impl::decrement() for values containing '='
fix #972
2026-02-20 18:41:29 -05:00
Alan de Freitas 60c281a7a2 fix: assert size in remove_prefix/suffix
fix #973
2026-02-20 18:41:29 -05:00
Alan de Freitas e946887a5c test: URL with '?' in query
closes #926
2026-02-20 18:41:29 -05:00
Alan de Freitas 062fe009bf feat: constexpr URL parsing for C++20
fix #890
2026-02-19 21:42:24 -05:00
Alan de Freitas 6d396a4831 docs: format examples show full URL
fix #971
2026-02-19 21:42:24 -05:00
Alan de Freitas ba7bff1d3b docs: remove outdated library-detail.adoc
fix #975
2026-02-19 21:42:24 -05:00
sdarwin 4f63aeaf59 docs: cppalliance/antora-downloads-extension 2026-02-04 08:18:18 -07:00