mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Update Lexbor
Cherry-pick b2dbadcf16
Adding support for IDNA URL serialization.
This commit is contained in:
@@ -4442,9 +4442,9 @@ lxb_url_api_hash_set(lxb_url_t *url, lxb_url_parser_t *parser,
|
||||
return status;
|
||||
}
|
||||
|
||||
lxb_status_t
|
||||
lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
|
||||
bool exclude_fragment)
|
||||
static lxb_status_t
|
||||
lxb_url_serialize_body(lxb_unicode_idna_t *idna, const lxb_url_t *url, lexbor_serialize_cb_f cb,
|
||||
void *ctx, bool exclude_fragment)
|
||||
{
|
||||
lxb_status_t status;
|
||||
const lexbor_str_t *str;
|
||||
@@ -4484,7 +4484,12 @@ lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
|
||||
lexbor_serialize_write(cb, at_str.data, at_str.length, ctx, status);
|
||||
}
|
||||
|
||||
status = lxb_url_serialize_host(&url->host, cb, ctx);
|
||||
if (idna != NULL) {
|
||||
status = lxb_url_serialize_host_unicode(idna, &url->host, cb, ctx);
|
||||
} else {
|
||||
status = lxb_url_serialize_host(&url->host, cb, ctx);
|
||||
}
|
||||
|
||||
if (status != LXB_STATUS_OK) {
|
||||
return status;
|
||||
}
|
||||
@@ -4529,6 +4534,20 @@ lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
|
||||
return LXB_STATUS_OK;
|
||||
}
|
||||
|
||||
lxb_status_t
|
||||
lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
|
||||
bool exclude_fragment)
|
||||
{
|
||||
return lxb_url_serialize_body(NULL, url, cb, ctx, exclude_fragment);
|
||||
}
|
||||
|
||||
lxb_status_t
|
||||
lxb_url_serialize_idna(lxb_unicode_idna_t *idna, const lxb_url_t *url, lexbor_serialize_cb_f cb,
|
||||
void *ctx, bool exclude_fragment)
|
||||
{
|
||||
return lxb_url_serialize_body(idna, url, cb, ctx, exclude_fragment);
|
||||
}
|
||||
|
||||
lxb_status_t
|
||||
lxb_url_serialize_scheme(const lxb_url_t *url,
|
||||
lexbor_serialize_cb_f cb, void *ctx)
|
||||
|
||||
@@ -403,6 +403,10 @@ LXB_API lxb_status_t
|
||||
lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
|
||||
bool exclude_fragment);
|
||||
|
||||
LXB_API lxb_status_t
|
||||
lxb_url_serialize_idna(lxb_unicode_idna_t *idna, const lxb_url_t *url, lexbor_serialize_cb_f cb,
|
||||
void *ctx, bool exclude_fragment);
|
||||
|
||||
LXB_API lxb_status_t
|
||||
lxb_url_serialize_scheme(const lxb_url_t *url,
|
||||
lexbor_serialize_cb_f cb, void *ctx);
|
||||
|
||||
Reference in New Issue
Block a user