2
0
mirror of https://github.com/boostorg/url.git synced 2026-01-19 04:42:15 +00:00

49 Commits

Author SHA1 Message Date
Vinnie Falco
b5a940fbc1 chore: ci_is_equal slow path is fixed 2025-11-16 11:35:38 -08:00
Alan de Freitas
cbaf493668 fix(parse_query): guard empty string_view inputs from null data
fix #946
2025-11-13 12:04:12 -05:00
Alan de Freitas
1e010e5ba1 perf: constructing segments subviews has a constant cost 2025-11-04 19:07:09 -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
Alan de Freitas
24c6143ce4 feat: host setters support zone id 2025-08-29 12:01:50 -05:00
Alan de Freitas
9909ca5a91 fix: encoded_host_address asserts depend on zone id 2025-08-29 12:01:50 -05:00
Alan de Freitas
b1f1418b2e feat: zone_id setters 2025-08-29 12:01:50 -05:00
Alan de Freitas
9b4c4b440e fix: resolve replicates ref fragment in all cases
fix #920
2025-08-26 17:44:59 -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
Alan de Freitas
64859a8fc2 fix: consistent behavior for space-as-plus option
This commit refactors all functions so they have consistent behavior for the space-as-plus encoding option.

- any_params_iter objects store and apply the appropriate option when measuring and copying
- when the option is enabled, encoding functions encode space-as-plus and plus as %2B regardless of the charset
- normalization and comparison algorithms take into consideration special query chars whose meaning changes depending on encoding
- all params_view objects created with default options enable space-as-plus encoding

fix #903
2025-05-15 16:04:06 -05:00
alandefreitas
da331e4c99 docs: refactor javadoc
Refactor javadoc to use new MrDocs features
2025-01-10 19:59:51 -03:00
alandefreitas
d8cacb5658 refactor(url_base): copy operation uses reference to underlying implementation
The copy operation from a url_view_base should use the pointed implementation rather than the underlying implementation so that url_views that refer to other urls are accounted for.

fix #872
2024-10-24 22:01:22 -03:00
alandefreitas
5118483c8b refactor: query_rule consistent interpretation
query_rule broke a grammar parse invariant by using different interpretations of the string depending on whether the reason for termination was the end of a string or a continuation with an invalid character.

fix #864
2024-10-04 11:32:08 -03:00
alandefreitas
cb17cf9b14 feat: set_params supports encoding_opts
fix #856
2024-08-19 21:48:54 -03:00
Brian Weed
4998971f13 refactor: buf unused variable 2024-08-16 13:18:31 -03:00
alandefreitas
a1ecad8243 docs: implementation defined filters 2024-07-11 03:21:49 -03:00
Vinnie Falco
50f7247e7c workaround for craypp crash
fix #839
2024-04-16 13:29:02 -07:00
alandefreitas
fddf6b75d5 test: shared recycled_ptrs
This commit includes tests for shared `recycled_ptr`s. Unreachable paths are also marked.

This is the last in a series of commits that intend to fix #828, where `recycled_ptr` had low coverage.

fix #828
2024-03-15 21:01:16 -03:00
alandefreitas
5b86565807 test: cover pct_string_view::decode
This commit simplifies duplicated code so that we tests all paths for the pct_string_view::decode function. Unreachable paths are also marked.

This is a partial solution to #828, where src/detail/decode.cpp has low coverage.
2024-03-15 17:56:14 -03:00
alandefreitas
9d4a4a5f15 test: authority_view host functions
This commit includes tests for the authority_view host functions when the host type is invalid.

This is a partial solution to #828, where authority_view.cpp has low coverage.
2024-03-15 15:23:26 -03:00
alandefreitas
0f97a6d4ed test: static_url url_base functions
This commit includes tests for the url_base functions whose behavior is customized by static_url.

This is a partial solution to #828, where static_url.cpp has low coverage.
2024-03-13 23:10:04 -03:00
alandefreitas
1a6871339c refactor: unsafe encoding assumes default options
The private unsafe encoding functions received a parameter to determine the encoding options. However, these functions are never used in any context where these options should diverge from the default values.

This is a partial solution to #828, where `detail/encode.hpp` is the file with the lowest coverage.
2024-03-13 19:13:34 -03:00
alandefreitas
6ec189b931 docs: remove detail::pattern from reference
fix #822
2024-03-12 21:25:55 -03:00
alandefreitas
e2e3fe35f4 refactor: remove params_ref unused functions 2024-03-08 16:00:30 -03:00
alandefreitas
e1660fc506 refactor: invert normalized_path_digest likely condition 2024-03-08 16:00:30 -03:00
alandefreitas
c2bddc2b20 refactor: assert remove_dot_segments never receives encoded dots 2024-03-08 16:00:30 -03:00
alandefreitas
40a3599215 fix: handle encoded slash in hash
fix #818
2024-03-08 16:00:30 -03:00
alandefreitas
e023860efe test: remove unused detail function
fix #818
2024-03-08 16:00:30 -03:00
alandefreitas
60d5ee24e0 refactor: source files have no header guards
fix #819
2024-03-04 15:59:44 -03:00
alandefreitas
1beb32245d fix: url_impl std::size_t overflow 2024-02-07 18:02:58 -03:00
alandefreitas
8a8204103f refactor: move detail headers to src 2024-01-19 15:34:31 -03:00
alandefreitas
2df5f62f55 fix: resolve abnormal hrefs
fix #808
2024-01-03 17:55:04 -03:00
sdarwin
33cfb939d0 ci: self-hosted runners 2023-07-22 15:21:03 -03:00
alandefreitas
f2bb191b90 fix: IP-literal can be IPv6addrz
This commit changes the IP-literal rule to also accept IPv6addrz as a valid ipv6 host type. IPv6addrz includes a ZoneID at the end, delimited by an encoded "%25". The ipv6_address class is unmodified, as the mapping from the ZoneID to a std::uint32_t is dependent on the application context. The original ZoneID can be obtained from the url_view.

fix #711
2023-07-20 14:13:32 -03:00
alandefreitas
c97bc2782c fix: parse_query does not recreate string_view
fix #757
2023-07-18 15:34:23 -03:00
Ed Tanous
f06f595ae7 fix: format_args zero serialization
Fixes #758

The parsing and measuring code didn't have explicit handling for integer
zero, and the while(v > 0) loop wouldn't execute.

Also add tests to cover both of these cases.
2023-06-29 02:32:51 -03:00
alandefreitas
2bae458a79 fix: member of dll interface class may not be declared with dll interface
fix #748
2023-06-09 21:12:59 -03:00
alandefreitas
96438f683e remove type aliases
fix #743
2023-04-28 17:27:26 -03:00
Vinnie Falco
963bf5a4b7 Refactor library translation units 2023-04-14 15:46:53 -03:00
alandefreitas
de907fe2f3 update links 2022-09-09 16:13:32 -03:00
Vinnie Falco
7d2f714f5a Move shared files to extra/ 2021-09-16 13:37:16 -07:00
Vinnie Falco
c980194672 url_view work and docs 2021-09-14 22:58:40 -07:00
Vinnie Falco
b1e597a6a5 Add wpt tests and fixes 2021-09-14 09:58:28 -07:00
Vinnie Falco
c4ad35a606 Refactor source structure 2021-08-30 17:37:06 -07:00
Vinnie Falco
2c70fc7b8e Tidying 2019-11-27 12:13:22 -08:00
Vinnie Falco
ab84af954f Port beast uri 2019-11-27 08:11:12 -08:00