@@ -4442,9 +4442,9 @@ lxb_url_api_hash_set(lxb_url_t *url, lxb_url_parser_t *parser,
4442
4442
return status ;
4443
4443
}
4444
4444
4445
- lxb_status_t
4446
- lxb_url_serialize ( const lxb_url_t * url , lexbor_serialize_cb_f cb , void * ctx ,
4447
- bool exclude_fragment )
4445
+ static lxb_status_t
4446
+ lxb_url_serialize_body ( lxb_unicode_idna_t * idna , const lxb_url_t * url , lexbor_serialize_cb_f cb ,
4447
+ void * ctx , bool exclude_fragment )
4448
4448
{
4449
4449
lxb_status_t status ;
4450
4450
const lexbor_str_t * str ;
@@ -4484,7 +4484,12 @@ lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
4484
4484
lexbor_serialize_write (cb , at_str .data , at_str .length , ctx , status );
4485
4485
}
4486
4486
4487
- status = lxb_url_serialize_host (& url -> host , cb , ctx );
4487
+ if (idna != NULL ) {
4488
+ status = lxb_url_serialize_host_unicode (idna , & url -> host , cb , ctx );
4489
+ } else {
4490
+ status = lxb_url_serialize_host (& url -> host , cb , ctx );
4491
+ }
4492
+
4488
4493
if (status != LXB_STATUS_OK ) {
4489
4494
return status ;
4490
4495
}
@@ -4529,6 +4534,20 @@ lxb_url_serialize(const lxb_url_t *url, lexbor_serialize_cb_f cb, void *ctx,
4529
4534
return LXB_STATUS_OK ;
4530
4535
}
4531
4536
4537
+ lxb_status_t
4538
+ lxb_url_serialize (const lxb_url_t * url , lexbor_serialize_cb_f cb , void * ctx ,
4539
+ bool exclude_fragment )
4540
+ {
4541
+ return lxb_url_serialize_body (NULL , url , cb , ctx , exclude_fragment );
4542
+ }
4543
+
4544
+ lxb_status_t
4545
+ lxb_url_serialize_idna (lxb_unicode_idna_t * idna , const lxb_url_t * url , lexbor_serialize_cb_f cb ,
4546
+ void * ctx , bool exclude_fragment )
4547
+ {
4548
+ return lxb_url_serialize_body (idna , url , cb , ctx , exclude_fragment );
4549
+ }
4550
+
4532
4551
lxb_status_t
4533
4552
lxb_url_serialize_scheme (const lxb_url_t * url ,
4534
4553
lexbor_serialize_cb_f cb , void * ctx )
0 commit comments