1- From cf07699ca0f5fa4e1f7fd05c2135fd38e6d196c2 Mon Sep 17 00:00:00 2001
1+ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
22From: Alexander Borisov <lex.borisov@gmail.com>
33Date: Fri, 26 Jun 2026 18:55:56 +0300
4- Subject: [PATCH] URL: fixed setters for empty hosts.
4+ Subject: [PATCH 7/7 ] URL: fixed setters for empty hosts.
55MIME-Version: 1.0
66Content-Type: text/plain; charset=UTF-8
77Content-Transfer-Encoding: 8bit
@@ -22,13 +22,13 @@ This relates to #387 issue on GitHub.
2222 3 files changed, 86 insertions(+), 9 deletions(-)
2323
2424diff --git a/source/lexbor/url/url.c b/source/lexbor/url/url.c
25- index ced4462b..e1da2c38 100644
25+ index 5a11434..86bcf8f 100644
2626--- a/source/lexbor/url/url.c
2727+++ b/source/lexbor/url/url.c
28- @@ -1116 ,11 +1116 ,13 @@ lxb_url_host_copy(const lxb_url_host_t *src, lxb_url_host_t *dst,
29-
28+ @@ -1115 ,11 +1115 ,13 @@ lxb_url_host_copy(const lxb_url_host_t *src, lxb_url_host_t *dst,
29+
3030 dst->type = src->type;
31-
31+
3232- if (src->type <= LXB_URL_HOST_TYPE_OPAQUE) {
3333- if (src->type == LXB_URL_HOST_TYPE__UNDEF) {
3434- return LXB_STATUS_OK;
@@ -38,15 +38,15 @@ index ced4462b..e1da2c38 100644
3838+ {
3939+ return LXB_STATUS_OK;
4040+ }
41-
41+
4242+ if (src->type <= LXB_URL_HOST_TYPE_OPAQUE) {
4343 return lxb_url_str_copy(&src->u.domain,
4444 &dst->u.domain, dst_mraw);
4545 }
46- @@ -1153 ,6 +1155 ,24 @@ lxb_url_host_set_empty(lxb_url_host_t *host, lexbor_mraw_t *mraw)
46+ @@ -1152 ,6 +1154 ,24 @@ lxb_url_host_set_empty(lxb_url_host_t *host, lexbor_mraw_t *mraw)
4747 host->type = LXB_URL_HOST_TYPE_EMPTY;
4848 }
49-
49+
5050+ lxb_inline bool
5151+ lxb_url_host_is_empty(const lxb_url_host_t *host)
5252+ {
@@ -68,7 +68,7 @@ index ced4462b..e1da2c38 100644
6868 static bool
6969 lxb_url_host_eq(lxb_url_host_t *host, const lxb_char_t *data, size_t length)
7070 {
71- @@ -1252 ,7 +1272 ,7 @@ lxb_url_normalized_windows_drive_letter(const lxb_char_t *data,
71+ @@ -1251 ,7 +1271 ,7 @@ lxb_url_normalized_windows_drive_letter(const lxb_char_t *data,
7272 static bool
7373 lxb_url_cannot_have_user_pass_port(lxb_url_t *url)
7474 {
@@ -77,20 +77,20 @@ index ced4462b..e1da2c38 100644
7777 || url->host.type == LXB_URL_HOST_TYPE__UNDEF
7878 || url->scheme.type == LXB_URL_SCHEMEL_TYPE_FILE;
7979 }
80- @@ -3979 ,6 +3999 ,11 @@ lxb_url_opaque_host_parse(lxb_url_parser_t *parser, const lxb_char_t *data,
80+ @@ -3978 ,6 +3998 ,11 @@ lxb_url_opaque_host_parse(lxb_url_parser_t *parser, const lxb_char_t *data,
8181 lxb_status_t status;
8282 const lxb_char_t *p;
83-
83+
8484+ if (data == end) {
8585+ lxb_url_host_set_empty(host, mraw);
8686+ return LXB_STATUS_OK;
8787+ }
8888+
8989 p = data;
90-
90+
9191 while (p < end) {
9292diff --git a/test/files/lexbor/url/changes.ton b/test/files/lexbor/url/changes.ton
93- index 07bc9449..1a0b6e35 100644
93+ index 07bc944..1a0b6e3 100644
9494--- a/test/files/lexbor/url/changes.ton
9595+++ b/test/files/lexbor/url/changes.ton
9696@@ -1,5 +1,5 @@
@@ -167,7 +167,7 @@ index 07bc9449..1a0b6e35 100644
167167 }
168168 ]
169169diff --git a/test/files/lexbor/url/url.ton b/test/files/lexbor/url/url.ton
170- index 2baa4bc2..85794c5b 100644
170+ index 2baa4bc..85794c5 100644
171171--- a/test/files/lexbor/url/url.ton
172172+++ b/test/files/lexbor/url/url.ton
173173@@ -1,5 +1,5 @@
0 commit comments