Alan de Freitas
9d65427508
fix: normalize_path overflow shielding "//" path
...
fix #992
2026-05-13 12:52:28 -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
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
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
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
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
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
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
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
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
b54e9e8697
perf: store url_impl offsets as 32-bit
...
fix #913
2026-01-28 14:15:06 -05:00
Alan de Freitas
689530386c
docs: align README/Antora examples
...
fix #967
2026-01-27 11:56:01 -05:00
Alan de Freitas
14fb347896
feat(ranges): specialize enable_borrowed_range for view types
...
All view types in Boost.URL have iterators that store raw pointers
to external data rather than references to the view object itself.
This means iterators remain valid even after the view is destroyed,
satisfying the borrowed_range requirements.
Specializations added for:
- decode_view, pct_string_view
- params_view, params_ref, params_encoded_view, params_encoded_ref
- segments_view, segments_ref, segments_encoded_view, segments_encoded_ref
fix #927
2026-01-26 12:01:22 -05:00
Alan de Freitas
4c6d357f7a
docs: add examples to normalization functions
...
fix #929
2026-01-23 15:59:12 -05:00
Alan de Freitas
f4a80080b1
feat(grammar): EBO and default construction to token_rule_t
...
fix #936
2026-01-22 22:54:30 -05:00
Alan de Freitas
aef0b8bbba
fix: ensure decode_view is complete for pct_string_view::operator*()
...
fix #937
2026-01-22 16:56:19 -05:00
Alan de Freitas
13f0110da6
fix(natvis): add visualizers for segments
...
Validated against the official [natvis.xsd](https://github.com/microsoft/MIEngine/blob/main/src/MIDebugEngine/Natvis.Impl/natvis.xsd ) schema using xmllint. CustomListItems is not supported for individual segments.
fix #942
2026-01-22 11:53:25 -05:00
Alan de Freitas
e618e69fc4
docs: avoid shadow warnings while improving param_view docs
...
fix #957
2026-01-20 12:00:47 -05:00
Alan de Freitas
176cea8a29
feat: grammar::range user-provided RangeRule
...
#943
2026-01-19 20:35:32 -05:00
Alan de Freitas
142fe37745
feat: decode free functions
...
fix #947
2026-01-19 16:00:56 -05:00
Alan de Freitas
dc14702786
feat: get_or for query containers
...
fix #945
2026-01-19 13:59:56 -05:00
Alan de Freitas
1e010e5ba1
perf: constructing segments subviews has a constant cost
2025-11-04 19:07:09 -05:00
Alan de Freitas
0d082014f5
refactor: preserve absolute semantics for segment subviews
...
fix #939
2025-11-04 18:12:26 -05:00
Vinnie Falco
7e60e85fe7
static assert is in detail
2025-10-23 21:53:22 -07:00
Alan de Freitas
0b7fd495a4
feat: segments_view iterator constructors
2025-10-22 11:05:46 -05:00
Alan de Freitas
83d8166d50
refactor: replace BOOST_STATIC_ASSERT with BOOST_CORE_STATIC_ASSERT
...
fix #934
2025-10-22 11:05:46 -05:00
Vinnie Falco
e1c9031361
chore: op<< is dll exported
2025-10-19 20:14:58 -07:00
ivanpanch
669123178b
docs: exposition typos
2025-09-01 20:33:16 -05:00
Alan de Freitas
b1f1418b2e
feat: zone_id setters
2025-08-29 12:01:50 -05:00
Alan de Freitas
e9bec4c8d1
docs: functions that cannot round-trip
...
fix #921
2025-08-26 17:44:59 -05:00
Alan de Freitas
82a74dd7e7
docs: fix encoded_size ref
2025-08-05 21:09:23 -05:00
Mohammad Nejati
8fa6c87637
docs: static_url copy constructor is noexcept
2025-05-21 19:19:01 -05:00
Alan de Freitas
2e72afd0e6
docs: no Doxygen documentation variant
...
This commit removes comments in the Doxygen documentation format from source files. This documentation format was there in a transition stage where we supported both Doxygen and MrDocs.
We only leave documentation in the MrDocs format now. This means the `BOOST_URL_DOCS` macro is no longer necessary: symbols are documented where they are defined instead of fake implementation defined symbols.
2025-05-19 16:28:34 -05:00