@@ -40,7 +40,13 @@ typedef struct {
40
40
xmlNsPtr lxml_ns ;
41
41
} work_list_item ;
42
42
43
- static void lexbor_libxml2_bridge_work_list_item_push (lexbor_array_obj_t * array , lxb_dom_node_t * node , uintptr_t current_active_namespace , xmlNodePtr lxml_parent , xmlNsPtr lxml_ns )
43
+ static void lexbor_libxml2_bridge_work_list_item_push (
44
+ lexbor_array_obj_t * array ,
45
+ lxb_dom_node_t * node ,
46
+ uintptr_t current_active_namespace ,
47
+ xmlNodePtr lxml_parent ,
48
+ xmlNsPtr lxml_ns
49
+ )
44
50
{
45
51
work_list_item * item = (work_list_item * ) lexbor_array_obj_push_wo_cls (array );
46
52
item -> node = node ;
@@ -68,7 +74,12 @@ static const xmlChar *get_libxml_namespace_href(uintptr_t lexbor_namespace)
68
74
}
69
75
}
70
76
71
- static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert (lxb_dom_node_t * start_node , xmlDocPtr lxml_doc , bool compact_text_nodes , bool create_default_ns )
77
+ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert (
78
+ lxb_dom_node_t * start_node ,
79
+ xmlDocPtr lxml_doc ,
80
+ bool compact_text_nodes ,
81
+ bool create_default_ns
82
+ )
72
83
{
73
84
lexbor_libxml2_bridge_status retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OK ;
74
85
@@ -106,14 +117,27 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(lxb_dom_node_t
106
117
if (create_default_ns && UNEXPECTED (entering_namespace != current_stack_item -> current_active_namespace )) {
107
118
current_lxml_ns = xmlNewNs (lxml_element , get_libxml_namespace_href (entering_namespace ), NULL );
108
119
}
109
- lxml_element -> ns = current_lxml_ns ; /* Instead of xmlSetNs() because we know the arguments are valid. Prevents overhead. */
120
+ /* Instead of xmlSetNs() because we know the arguments are valid. Prevents overhead. */
121
+ lxml_element -> ns = current_lxml_ns ;
110
122
111
123
for (lxb_dom_node_t * child_node = element -> node .last_child ; child_node != NULL ; child_node = child_node -> prev ) {
112
- lexbor_libxml2_bridge_work_list_item_push (& work_list , child_node , entering_namespace , lxml_element , current_lxml_ns );
124
+ lexbor_libxml2_bridge_work_list_item_push (
125
+ & work_list ,
126
+ child_node ,
127
+ entering_namespace ,
128
+ lxml_element ,
129
+ current_lxml_ns
130
+ );
113
131
}
114
132
115
133
for (lxb_dom_attr_t * attr = element -> last_attr ; attr != NULL ; attr = attr -> prev ) {
116
- lexbor_libxml2_bridge_work_list_item_push (& work_list , (lxb_dom_node_t * ) attr , entering_namespace , lxml_element , current_lxml_ns );
134
+ lexbor_libxml2_bridge_work_list_item_push (
135
+ & work_list ,
136
+ (lxb_dom_node_t * ) attr ,
137
+ entering_namespace ,
138
+ lxml_element ,
139
+ current_lxml_ns
140
+ );
117
141
}
118
142
} else if (node -> type == LXB_DOM_NODE_TYPE_TEXT ) {
119
143
lxb_dom_text_t * text = lxb_dom_interface_text (node );
@@ -157,7 +181,12 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(lxb_dom_node_t
157
181
size_t public_id_len , system_id_len ;
158
182
const lxb_char_t * public_id = lxb_dom_document_type_public_id (doctype , & public_id_len );
159
183
const lxb_char_t * system_id = lxb_dom_document_type_system_id (doctype , & system_id_len );
160
- xmlDtdPtr lxml_dtd = xmlCreateIntSubset (lxml_doc , name , public_id_len ? public_id : NULL , system_id_len ? system_id : NULL );
184
+ xmlDtdPtr lxml_dtd = xmlCreateIntSubset (
185
+ lxml_doc ,
186
+ name ,
187
+ public_id_len ? public_id : NULL ,
188
+ system_id_len ? system_id : NULL
189
+ );
161
190
if (UNEXPECTED (lxml_dtd == NULL )) {
162
191
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM ;
163
192
goto out ;
@@ -199,13 +228,22 @@ void lexbor_libxml2_bridge_parse_context_init(lexbor_libxml2_bridge_parse_contex
199
228
memset (ctx , 0 , sizeof (* ctx ));
200
229
}
201
230
202
- void lexbor_libxml2_bridge_parse_set_error_callbacks (lexbor_libxml2_bridge_parse_context * ctx , lexbor_libxml2_bridge_tokenizer_error_reporter tokenizer_error_reporter , lexbor_libxml2_bridge_tree_error_reporter tree_error_reporter )
231
+ void lexbor_libxml2_bridge_parse_set_error_callbacks (
232
+ lexbor_libxml2_bridge_parse_context * ctx ,
233
+ lexbor_libxml2_bridge_tokenizer_error_reporter tokenizer_error_reporter ,
234
+ lexbor_libxml2_bridge_tree_error_reporter tree_error_reporter
235
+ )
203
236
{
204
237
ctx -> tokenizer_error_reporter = tokenizer_error_reporter ;
205
238
ctx -> tree_error_reporter = tree_error_reporter ;
206
239
}
207
240
208
- lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert_document (lxb_html_document_t * document , xmlDocPtr * doc_out , bool compact_text_nodes , bool create_default_ns )
241
+ lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert_document (
242
+ lxb_html_document_t * document ,
243
+ xmlDocPtr * doc_out ,
244
+ bool compact_text_nodes ,
245
+ bool create_default_ns
246
+ )
209
247
{
210
248
#ifdef LIBXML_HTML_ENABLED
211
249
xmlDocPtr lxml_doc = htmlNewDocNoDtD (NULL , NULL );
@@ -218,7 +256,12 @@ lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert_document(lxb_html_doc
218
256
if (!lxml_doc ) {
219
257
return LEXBOR_LIBXML2_BRIDGE_STATUS_OOM ;
220
258
}
221
- lexbor_libxml2_bridge_status status = lexbor_libxml2_bridge_convert (lxb_dom_interface_node (document )-> last_child , lxml_doc , compact_text_nodes , create_default_ns );
259
+ lexbor_libxml2_bridge_status status = lexbor_libxml2_bridge_convert (
260
+ lxb_dom_interface_node (document )-> last_child ,
261
+ lxml_doc ,
262
+ compact_text_nodes ,
263
+ create_default_ns
264
+ );
222
265
if (status != LEXBOR_LIBXML2_BRIDGE_STATUS_OK ) {
223
266
xmlFreeDoc (lxml_doc );
224
267
return status ;
@@ -227,7 +270,14 @@ lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert_document(lxb_html_doc
227
270
return LEXBOR_LIBXML2_BRIDGE_STATUS_OK ;
228
271
}
229
272
230
- void lexbor_libxml2_bridge_report_errors (const lexbor_libxml2_bridge_parse_context * ctx , lxb_html_parser_t * parser , const lxb_char_t * input_html , size_t chunk_offset , size_t * error_index_offset_tokenizer , size_t * error_index_offset_tree )
273
+ void lexbor_libxml2_bridge_report_errors (
274
+ const lexbor_libxml2_bridge_parse_context * ctx ,
275
+ lxb_html_parser_t * parser ,
276
+ const lxb_char_t * input_html ,
277
+ size_t chunk_offset ,
278
+ size_t * error_index_offset_tokenizer ,
279
+ size_t * error_index_offset_tree
280
+ )
231
281
{
232
282
void * error ;
233
283
@@ -238,7 +288,11 @@ void lexbor_libxml2_bridge_report_errors(const lexbor_libxml2_bridge_parse_conte
238
288
/* See https://github.com/lexbor/lexbor/blob/master/source/lexbor/html/tokenizer/error.h */
239
289
lxb_html_tokenizer_error_t * token_error = error ;
240
290
if (ctx -> tokenizer_error_reporter ) {
241
- ctx -> tokenizer_error_reporter (ctx -> application_data , token_error , token_error -> pos - input_html + chunk_offset );
291
+ ctx -> tokenizer_error_reporter (
292
+ ctx -> application_data ,
293
+ token_error ,
294
+ token_error -> pos - input_html + chunk_offset
295
+ );
242
296
}
243
297
index ++ ;
244
298
}
@@ -251,7 +305,13 @@ void lexbor_libxml2_bridge_report_errors(const lexbor_libxml2_bridge_parse_conte
251
305
/* See https://github.com/lexbor/lexbor/blob/master/source/lexbor/html/tree/error.h */
252
306
lxb_html_tree_error_t * tree_error = error ;
253
307
if (ctx -> tree_error_reporter ) {
254
- ctx -> tree_error_reporter (ctx -> application_data , tree_error , tree_error -> line + 1 , tree_error -> column + 1 , tree_error -> length );
308
+ ctx -> tree_error_reporter (
309
+ ctx -> application_data ,
310
+ tree_error ,
311
+ tree_error -> line + 1 ,
312
+ tree_error -> column + 1 ,
313
+ tree_error -> length
314
+ );
255
315
}
256
316
index ++ ;
257
317
}
0 commit comments