nokolexbor 0.2.4 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/ext/nokolexbor/extconf.rb +12 -6
  3. data/ext/nokolexbor/libxml/SAX2.h +4 -4
  4. data/ext/nokolexbor/libxml/chvalid.h +21 -21
  5. data/ext/nokolexbor/libxml/dict.h +13 -13
  6. data/ext/nokolexbor/libxml/globals.h +202 -202
  7. data/ext/nokolexbor/libxml/hash.h +25 -25
  8. data/ext/nokolexbor/libxml/parser.h +5 -5
  9. data/ext/nokolexbor/libxml/parserInternals.h +4 -4
  10. data/ext/nokolexbor/libxml/pattern.h +14 -14
  11. data/ext/nokolexbor/libxml/threads.h +15 -15
  12. data/ext/nokolexbor/libxml/tree.h +5 -5
  13. data/ext/nokolexbor/libxml/xmlerror.h +5 -5
  14. data/ext/nokolexbor/libxml/xmlmemory.h +16 -16
  15. data/ext/nokolexbor/libxml/xmlstring.h +30 -30
  16. data/ext/nokolexbor/libxml/xpath.h +43 -43
  17. data/ext/nokolexbor/libxml/xpathInternals.h +128 -128
  18. data/ext/nokolexbor/memory.c +7 -0
  19. data/ext/nokolexbor/nl_document.c +11 -1
  20. data/ext/nokolexbor/nl_node.c +37 -16
  21. data/ext/nokolexbor/nl_node_set.c +23 -9
  22. data/ext/nokolexbor/nl_xpath_context.c +19 -14
  23. data/ext/nokolexbor/private/buf.h +1 -1
  24. data/ext/nokolexbor/private/error.h +3 -3
  25. data/ext/nokolexbor/xml_SAX2.c +8 -8
  26. data/ext/nokolexbor/xml_buf.c +19 -19
  27. data/ext/nokolexbor/xml_chvalid.c +25 -25
  28. data/ext/nokolexbor/xml_dict.c +69 -69
  29. data/ext/nokolexbor/xml_encoding.c +2 -2
  30. data/ext/nokolexbor/xml_error.c +51 -51
  31. data/ext/nokolexbor/xml_globals.c +329 -329
  32. data/ext/nokolexbor/xml_hash.c +131 -131
  33. data/ext/nokolexbor/xml_memory.c +25 -25
  34. data/ext/nokolexbor/xml_parser.c +3 -3
  35. data/ext/nokolexbor/xml_parserInternals.c +15 -15
  36. data/ext/nokolexbor/xml_pattern.c +103 -103
  37. data/ext/nokolexbor/xml_string.c +93 -93
  38. data/ext/nokolexbor/xml_threads.c +61 -61
  39. data/ext/nokolexbor/xml_tree.c +12 -12
  40. data/ext/nokolexbor/xml_xpath.c +1194 -1203
  41. data/lib/nokolexbor/version.rb +1 -1
  42. data/patches/0003-lexbor-attach-template-content-to-self.patch +13 -0
  43. metadata +2 -2
@@ -39,7 +39,7 @@ extern "C" {
39
39
  * Raises an error.
40
40
  */
41
41
  #define xmlXPathSetError(ctxt, err) \
42
- { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
42
+ { nl_xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
43
43
  if ((ctxt) != NULL) (ctxt)->error = (err); }
44
44
 
45
45
  /**
@@ -101,15 +101,15 @@ extern "C" {
101
101
  #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
102
102
 
103
103
  XMLPUBFUN int XMLCALL
104
- xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
104
+ nl_xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
105
105
  XMLPUBFUN double XMLCALL
106
- xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
106
+ nl_xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
107
107
  XMLPUBFUN xmlChar * XMLCALL
108
- xmlXPathPopString (xmlXPathParserContextPtr ctxt);
108
+ nl_xmlXPathPopString (xmlXPathParserContextPtr ctxt);
109
109
  XMLPUBFUN xmlNodeSetPtr XMLCALL
110
- xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
110
+ nl_xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
111
111
  XMLPUBFUN void * XMLCALL
112
- xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
112
+ nl_xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
113
113
 
114
114
  /**
115
115
  * xmlXPathReturnBoolean:
@@ -119,7 +119,7 @@ XMLPUBFUN void * XMLCALL
119
119
  * Pushes the boolean @val on the context stack.
120
120
  */
121
121
  #define xmlXPathReturnBoolean(ctxt, val) \
122
- valuePush((ctxt), xmlXPathNewBoolean(val))
122
+ valuePush((ctxt), nl_xmlXPathNewBoolean(val))
123
123
 
124
124
  /**
125
125
  * xmlXPathReturnTrue:
@@ -145,7 +145,7 @@ XMLPUBFUN void * XMLCALL
145
145
  * Pushes the double @val on the context stack.
146
146
  */
147
147
  #define xmlXPathReturnNumber(ctxt, val) \
148
- valuePush((ctxt), xmlXPathNewFloat(val))
148
+ valuePush((ctxt), nl_xmlXPathNewFloat(val))
149
149
 
150
150
  /**
151
151
  * xmlXPathReturnString:
@@ -155,7 +155,7 @@ XMLPUBFUN void * XMLCALL
155
155
  * Pushes the string @str on the context stack.
156
156
  */
157
157
  #define xmlXPathReturnString(ctxt, str) \
158
- valuePush((ctxt), xmlXPathWrapString(str))
158
+ valuePush((ctxt), nl_xmlXPathWrapString(str))
159
159
 
160
160
  /**
161
161
  * xmlXPathReturnEmptyString:
@@ -164,7 +164,7 @@ XMLPUBFUN void * XMLCALL
164
164
  * Pushes an empty string on the stack.
165
165
  */
166
166
  #define xmlXPathReturnEmptyString(ctxt) \
167
- valuePush((ctxt), xmlXPathNewCString(""))
167
+ valuePush((ctxt), nl_xmlXPathNewCString(""))
168
168
 
169
169
  /**
170
170
  * xmlXPathReturnNodeSet:
@@ -174,7 +174,7 @@ XMLPUBFUN void * XMLCALL
174
174
  * Pushes the node-set @ns on the context stack.
175
175
  */
176
176
  #define xmlXPathReturnNodeSet(ctxt, ns) \
177
- valuePush((ctxt), xmlXPathWrapNodeSet(ns))
177
+ valuePush((ctxt), nl_xmlXPathWrapNodeSet(ns))
178
178
 
179
179
  /**
180
180
  * xmlXPathReturnEmptyNodeSet:
@@ -183,7 +183,7 @@ XMLPUBFUN void * XMLCALL
183
183
  * Pushes an empty node-set on the context stack.
184
184
  */
185
185
  #define xmlXPathReturnEmptyNodeSet(ctxt) \
186
- valuePush((ctxt), xmlXPathNewNodeSet(NULL))
186
+ valuePush((ctxt), nl_xmlXPathNewNodeSet(NULL))
187
187
 
188
188
  /**
189
189
  * xmlXPathReturnExternal:
@@ -193,7 +193,7 @@ XMLPUBFUN void * XMLCALL
193
193
  * Pushes user data on the context stack.
194
194
  */
195
195
  #define xmlXPathReturnExternal(ctxt, val) \
196
- valuePush((ctxt), xmlXPathWrapExternal(val))
196
+ valuePush((ctxt), nl_xmlXPathWrapExternal(val))
197
197
 
198
198
  /**
199
199
  * xmlXPathStackIsNodeSet:
@@ -254,7 +254,7 @@ XMLPUBFUN void * XMLCALL
254
254
  * Macro to raise an XPath error and return.
255
255
  */
256
256
  #define XP_ERROR(X) \
257
- { xmlXPathErr(ctxt, X); return; }
257
+ { nl_xmlXPathErr(ctxt, X); return; }
258
258
 
259
259
  /**
260
260
  * XP_ERROR0:
@@ -263,7 +263,7 @@ XMLPUBFUN void * XMLCALL
263
263
  * Macro to raise an XPath error and return 0.
264
264
  */
265
265
  #define XP_ERROR0(X) \
266
- { xmlXPathErr(ctxt, X); return(0); }
266
+ { nl_xmlXPathErr(ctxt, X); return(0); }
267
267
 
268
268
  /**
269
269
  * CHECK_TYPE:
@@ -307,7 +307,7 @@ XMLPUBFUN void * XMLCALL
307
307
  */
308
308
  #define CAST_TO_STRING \
309
309
  if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
310
- xmlXPathStringFunction(ctxt, 1);
310
+ nl_xmlXPathStringFunction(ctxt, 1);
311
311
 
312
312
  /**
313
313
  * CAST_TO_NUMBER:
@@ -316,7 +316,7 @@ XMLPUBFUN void * XMLCALL
316
316
  */
317
317
  #define CAST_TO_NUMBER \
318
318
  if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
319
- xmlXPathNumberFunction(ctxt, 1);
319
+ nl_xmlXPathNumberFunction(ctxt, 1);
320
320
 
321
321
  /**
322
322
  * CAST_TO_BOOLEAN:
@@ -325,14 +325,14 @@ XMLPUBFUN void * XMLCALL
325
325
  */
326
326
  #define CAST_TO_BOOLEAN \
327
327
  if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
328
- xmlXPathBooleanFunction(ctxt, 1);
328
+ nl_xmlXPathBooleanFunction(ctxt, 1);
329
329
 
330
330
  /*
331
331
  * Variable Lookup forwarding.
332
332
  */
333
333
 
334
334
  XMLPUBFUN void XMLCALL
335
- xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
335
+ nl_xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
336
336
  xmlXPathVariableLookupFunc f,
337
337
  void *data);
338
338
 
@@ -341,7 +341,7 @@ XMLPUBFUN void XMLCALL
341
341
  */
342
342
 
343
343
  XMLPUBFUN void XMLCALL
344
- xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
344
+ nl_xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
345
345
  xmlXPathFuncLookupFunc f,
346
346
  void *funcCtxt);
347
347
 
@@ -349,13 +349,13 @@ XMLPUBFUN void XMLCALL
349
349
  * Error reporting.
350
350
  */
351
351
  XMLPUBFUN void XMLCALL
352
- xmlXPatherror (xmlXPathParserContextPtr ctxt,
352
+ nl_xmlXPatherror (xmlXPathParserContextPtr ctxt,
353
353
  const char *file,
354
354
  int line,
355
355
  int no);
356
356
 
357
357
  XMLPUBFUN void XMLCALL
358
- xmlXPathErr (xmlXPathParserContextPtr ctxt,
358
+ nl_xmlXPathErr (xmlXPathParserContextPtr ctxt,
359
359
  int error);
360
360
 
361
361
  #ifdef LIBXML_DEBUG_ENABLED
@@ -372,48 +372,48 @@ XMLPUBFUN void XMLCALL
372
372
  * NodeSet handling.
373
373
  */
374
374
  XMLPUBFUN int XMLCALL
375
- xmlXPathNodeSetContains (xmlNodeSetPtr cur,
375
+ nl_xmlXPathNodeSetContains (xmlNodeSetPtr cur,
376
376
  lxb_dom_node_t_ptr val);
377
377
  XMLPUBFUN xmlNodeSetPtr XMLCALL
378
- xmlXPathDifference (xmlNodeSetPtr nodes1,
378
+ nl_xmlXPathDifference (xmlNodeSetPtr nodes1,
379
379
  xmlNodeSetPtr nodes2);
380
380
  XMLPUBFUN xmlNodeSetPtr XMLCALL
381
- xmlXPathIntersection (xmlNodeSetPtr nodes1,
381
+ nl_xmlXPathIntersection (xmlNodeSetPtr nodes1,
382
382
  xmlNodeSetPtr nodes2);
383
383
 
384
384
  XMLPUBFUN xmlNodeSetPtr XMLCALL
385
- xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
385
+ nl_xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
386
386
  XMLPUBFUN xmlNodeSetPtr XMLCALL
387
- xmlXPathDistinct (xmlNodeSetPtr nodes);
387
+ nl_xmlXPathDistinct (xmlNodeSetPtr nodes);
388
388
 
389
389
  XMLPUBFUN int XMLCALL
390
- xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
390
+ nl_xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
391
391
  xmlNodeSetPtr nodes2);
392
392
 
393
393
  XMLPUBFUN xmlNodeSetPtr XMLCALL
394
- xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
394
+ nl_xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
395
395
  lxb_dom_node_t_ptr node);
396
396
  XMLPUBFUN xmlNodeSetPtr XMLCALL
397
- xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
397
+ nl_xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
398
398
  xmlNodeSetPtr nodes2);
399
399
  XMLPUBFUN xmlNodeSetPtr XMLCALL
400
- xmlXPathNodeLeading (xmlNodeSetPtr nodes,
400
+ nl_xmlXPathNodeLeading (xmlNodeSetPtr nodes,
401
401
  lxb_dom_node_t_ptr node);
402
402
  XMLPUBFUN xmlNodeSetPtr XMLCALL
403
- xmlXPathLeading (xmlNodeSetPtr nodes1,
403
+ nl_xmlXPathLeading (xmlNodeSetPtr nodes1,
404
404
  xmlNodeSetPtr nodes2);
405
405
 
406
406
  XMLPUBFUN xmlNodeSetPtr XMLCALL
407
- xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
407
+ nl_xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
408
408
  lxb_dom_node_t_ptr node);
409
409
  XMLPUBFUN xmlNodeSetPtr XMLCALL
410
- xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
410
+ nl_xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
411
411
  xmlNodeSetPtr nodes2);
412
412
  XMLPUBFUN xmlNodeSetPtr XMLCALL
413
- xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
413
+ nl_xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
414
414
  lxb_dom_node_t_ptr node);
415
415
  XMLPUBFUN xmlNodeSetPtr XMLCALL
416
- xmlXPathTrailing (xmlNodeSetPtr nodes1,
416
+ nl_xmlXPathTrailing (xmlNodeSetPtr nodes1,
417
417
  xmlNodeSetPtr nodes2);
418
418
 
419
419
 
@@ -422,207 +422,207 @@ XMLPUBFUN xmlNodeSetPtr XMLCALL
422
422
  */
423
423
 
424
424
  XMLPUBFUN int XMLCALL
425
- xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
425
+ nl_xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
426
426
  const xmlChar *prefix,
427
427
  const xmlChar *ns_uri);
428
428
  XMLPUBFUN const xmlChar * XMLCALL
429
- xmlXPathNsLookup (xmlXPathContextPtr ctxt,
429
+ nl_xmlXPathNsLookup (xmlXPathContextPtr ctxt,
430
430
  const xmlChar *prefix);
431
431
  XMLPUBFUN void XMLCALL
432
- xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
432
+ nl_xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
433
433
 
434
434
  XMLPUBFUN int XMLCALL
435
- xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
435
+ nl_xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
436
436
  const xmlChar *name,
437
437
  xmlXPathFunction f);
438
438
  XMLPUBFUN int XMLCALL
439
- xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
439
+ nl_xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
440
440
  const xmlChar *name,
441
441
  const xmlChar *ns_uri,
442
442
  xmlXPathFunction f);
443
443
  XMLPUBFUN int XMLCALL
444
- xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
444
+ nl_xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
445
445
  const xmlChar *name,
446
446
  xmlXPathObjectPtr value);
447
447
  XMLPUBFUN int XMLCALL
448
- xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
448
+ nl_xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
449
449
  const xmlChar *name,
450
450
  const xmlChar *ns_uri,
451
451
  xmlXPathObjectPtr value);
452
452
  XMLPUBFUN xmlXPathFunction XMLCALL
453
- xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
453
+ nl_xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
454
454
  const xmlChar *name);
455
455
  XMLPUBFUN xmlXPathFunction XMLCALL
456
- xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
456
+ nl_xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
457
457
  const xmlChar *name,
458
458
  const xmlChar *ns_uri);
459
459
  XMLPUBFUN void XMLCALL
460
- xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
460
+ nl_xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
461
461
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
462
- xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
462
+ nl_xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
463
463
  const xmlChar *name);
464
464
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
465
- xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
465
+ nl_xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
466
466
  const xmlChar *name,
467
467
  const xmlChar *ns_uri);
468
468
  XMLPUBFUN void XMLCALL
469
- xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
469
+ nl_xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
470
470
 
471
471
  /**
472
472
  * Utilities to extend XPath.
473
473
  */
474
474
  XMLPUBFUN xmlXPathParserContextPtr XMLCALL
475
- xmlXPathNewParserContext (const xmlChar *str,
475
+ nl_xmlXPathNewParserContext (const xmlChar *str,
476
476
  xmlXPathContextPtr ctxt);
477
477
  XMLPUBFUN void XMLCALL
478
- xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
478
+ nl_xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
479
479
 
480
480
  /* TODO: remap to xmlXPathValuePop and Push. */
481
- XMLPUBFUN xmlXPathObjectPtr XMLCALL
481
+ static xmlXPathObjectPtr XMLCALL
482
482
  valuePop (xmlXPathParserContextPtr ctxt);
483
- XMLPUBFUN int XMLCALL
483
+ static int XMLCALL
484
484
  valuePush (xmlXPathParserContextPtr ctxt,
485
485
  xmlXPathObjectPtr value);
486
486
 
487
487
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
488
- xmlXPathNewString (const xmlChar *val);
488
+ nl_xmlXPathNewString (const xmlChar *val);
489
489
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
490
- xmlXPathNewCString (const char *val);
490
+ nl_xmlXPathNewCString (const char *val);
491
491
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
492
- xmlXPathWrapString (xmlChar *val);
492
+ nl_xmlXPathWrapString (xmlChar *val);
493
493
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
494
- xmlXPathWrapCString (char * val);
494
+ nl_xmlXPathWrapCString (char * val);
495
495
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
496
- xmlXPathNewFloat (double val);
496
+ nl_xmlXPathNewFloat (double val);
497
497
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
498
- xmlXPathNewBoolean (int val);
498
+ nl_xmlXPathNewBoolean (int val);
499
499
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
500
- xmlXPathNewNodeSet (lxb_dom_node_t_ptr val);
500
+ nl_xmlXPathNewNodeSet (lxb_dom_node_t_ptr val);
501
501
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
502
- xmlXPathNewValueTree (lxb_dom_node_t_ptr val);
502
+ nl_xmlXPathNewValueTree (lxb_dom_node_t_ptr val);
503
503
  XMLPUBFUN int XMLCALL
504
- xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
504
+ nl_xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
505
505
  lxb_dom_node_t_ptr val);
506
506
  XMLPUBFUN int XMLCALL
507
- xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
507
+ nl_xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
508
508
  lxb_dom_node_t_ptr val);
509
509
  XMLPUBFUN int XMLCALL
510
- xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
510
+ nl_xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
511
511
  lxb_dom_node_t_ptr node,
512
512
  xmlNsPtr ns);
513
513
  XMLPUBFUN void XMLCALL
514
- xmlXPathNodeSetSort (xmlNodeSetPtr set);
514
+ nl_xmlXPathNodeSetSort (xmlNodeSetPtr set);
515
515
 
516
516
  XMLPUBFUN void XMLCALL
517
- xmlXPathRoot (xmlXPathParserContextPtr ctxt);
517
+ nl_xmlXPathRoot (xmlXPathParserContextPtr ctxt);
518
518
  XMLPUBFUN void XMLCALL
519
- xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
519
+ nl_xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
520
520
  XMLPUBFUN xmlChar * XMLCALL
521
- xmlXPathParseName (xmlXPathParserContextPtr ctxt);
521
+ nl_xmlXPathParseName (xmlXPathParserContextPtr ctxt);
522
522
  XMLPUBFUN xmlChar * XMLCALL
523
- xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
523
+ nl_xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
524
524
 
525
525
  /*
526
526
  * Existing functions.
527
527
  */
528
528
  XMLPUBFUN double XMLCALL
529
- xmlXPathStringEvalNumber (const xmlChar *str);
529
+ nl_xmlXPathStringEvalNumber (const xmlChar *str);
530
530
  XMLPUBFUN int XMLCALL
531
- xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
531
+ nl_xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
532
532
  xmlXPathObjectPtr res);
533
533
  XMLPUBFUN void XMLCALL
534
- xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
534
+ nl_xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
535
535
  XMLPUBFUN xmlNodeSetPtr XMLCALL
536
- xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
536
+ nl_xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
537
537
  xmlNodeSetPtr val2);
538
538
  XMLPUBFUN void XMLCALL
539
- xmlXPathNodeSetDel (xmlNodeSetPtr cur,
539
+ nl_xmlXPathNodeSetDel (xmlNodeSetPtr cur,
540
540
  lxb_dom_node_t_ptr val);
541
541
  XMLPUBFUN void XMLCALL
542
- xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
542
+ nl_xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
543
543
  int val);
544
544
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
545
- xmlXPathNewNodeSetList (xmlNodeSetPtr val);
545
+ nl_xmlXPathNewNodeSetList (xmlNodeSetPtr val);
546
546
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
547
- xmlXPathWrapNodeSet (xmlNodeSetPtr val);
547
+ nl_xmlXPathWrapNodeSet (xmlNodeSetPtr val);
548
548
  XMLPUBFUN xmlXPathObjectPtr XMLCALL
549
- xmlXPathWrapExternal (void *val);
549
+ nl_xmlXPathWrapExternal (void *val);
550
550
 
551
- XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
552
- XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
553
- XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
554
- XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
555
- XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
556
- XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
557
- XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
558
- XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
559
- XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
551
+ XMLPUBFUN int XMLCALL nl_xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
552
+ XMLPUBFUN int XMLCALL nl_xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
553
+ XMLPUBFUN int XMLCALL nl_xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
554
+ XMLPUBFUN void XMLCALL nl_xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
555
+ XMLPUBFUN void XMLCALL nl_xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
556
+ XMLPUBFUN void XMLCALL nl_xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
557
+ XMLPUBFUN void XMLCALL nl_xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
558
+ XMLPUBFUN void XMLCALL nl_xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
559
+ XMLPUBFUN void XMLCALL nl_xmlXPathModValues(xmlXPathParserContextPtr ctxt);
560
560
 
561
- XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
561
+ XMLPUBFUN int XMLCALL nl_xmlXPathIsNodeType(const xmlChar *name);
562
562
 
563
563
  /*
564
564
  * Some of the axis navigation routines.
565
565
  */
566
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
566
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
567
567
  lxb_dom_node_t_ptr cur);
568
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
568
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
569
569
  lxb_dom_node_t_ptr cur);
570
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
570
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
571
571
  lxb_dom_node_t_ptr cur);
572
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
572
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
573
573
  lxb_dom_node_t_ptr cur);
574
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
574
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
575
575
  lxb_dom_node_t_ptr cur);
576
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
576
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
577
577
  lxb_dom_node_t_ptr cur);
578
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
578
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
579
579
  lxb_dom_node_t_ptr cur);
580
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
580
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
581
581
  lxb_dom_node_t_ptr cur);
582
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
582
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
583
583
  lxb_dom_node_t_ptr cur);
584
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
584
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
585
585
  lxb_dom_node_t_ptr cur);
586
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
586
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
587
587
  lxb_dom_node_t_ptr cur);
588
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
588
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
589
589
  lxb_dom_node_t_ptr cur);
590
- XMLPUBFUN lxb_dom_node_t_ptr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
590
+ XMLPUBFUN lxb_dom_node_t_ptr XMLCALL nl_xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
591
591
  lxb_dom_node_t_ptr cur);
592
592
  /*
593
593
  * The official core of XPath functions.
594
594
  */
595
- XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
596
- XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
597
- XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
598
- XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
599
- XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
600
- XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
601
- XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
602
- XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
603
- XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
604
- XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
605
- XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
606
- XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
607
- XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
608
- XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
609
- XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
610
- XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
611
- XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
612
- XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
613
- XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
614
- XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
615
- XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
616
- XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
617
- XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
618
- XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
619
- XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
620
- XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
595
+ XMLPUBFUN void XMLCALL nl_xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
596
+ XMLPUBFUN void XMLCALL nl_xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
597
+ XMLPUBFUN void XMLCALL nl_xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
598
+ XMLPUBFUN void XMLCALL nl_xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
599
+ XMLPUBFUN void XMLCALL nl_xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
600
+ XMLPUBFUN void XMLCALL nl_xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
601
+ XMLPUBFUN void XMLCALL nl_xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
602
+ XMLPUBFUN void XMLCALL nl_xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
603
+ XMLPUBFUN void XMLCALL nl_xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
604
+ XMLPUBFUN void XMLCALL nl_xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
605
+ XMLPUBFUN void XMLCALL nl_xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
606
+ XMLPUBFUN void XMLCALL nl_xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
607
+ XMLPUBFUN void XMLCALL nl_xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
608
+ XMLPUBFUN void XMLCALL nl_xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
609
+ XMLPUBFUN void XMLCALL nl_xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
610
+ XMLPUBFUN void XMLCALL nl_xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
611
+ XMLPUBFUN void XMLCALL nl_xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
612
+ XMLPUBFUN void XMLCALL nl_xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
613
+ XMLPUBFUN void XMLCALL nl_xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
614
+ XMLPUBFUN void XMLCALL nl_xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
615
+ XMLPUBFUN void XMLCALL nl_xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
616
+ XMLPUBFUN void XMLCALL nl_xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
617
+ XMLPUBFUN void XMLCALL nl_xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
618
+ XMLPUBFUN void XMLCALL nl_xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
619
+ XMLPUBFUN void XMLCALL nl_xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
620
+ XMLPUBFUN void XMLCALL nl_xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
621
621
 
622
622
  /**
623
623
  * Really internal functions
624
624
  */
625
- XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
625
+ XMLPUBFUN void XMLCALL nl_xmlXPathNodeSetFreeNs(xmlNsPtr ns);
626
626
 
627
627
  #ifdef __cplusplus
628
628
  }
@@ -13,6 +13,11 @@
13
13
  #include <ruby.h>
14
14
  #include "lexbor/core/base.h"
15
15
 
16
+ // Disable using ruby memory functions when ASAN is enabled,
17
+ // otherwise memory leak info will be all about ruby which
18
+ // is useless.
19
+ #ifndef NOKOLEXBOR_ASAN
20
+
16
21
  void *
17
22
  lexbor_malloc(size_t size)
18
23
  {
@@ -37,3 +42,5 @@ lexbor_free(void *dst)
37
42
  ruby_xfree(dst);
38
43
  return NULL;
39
44
  }
45
+
46
+ #endif
@@ -22,8 +22,18 @@ const rb_data_type_t nl_document_type = {
22
22
  };
23
23
 
24
24
  static VALUE
25
- nl_document_parse(VALUE self, VALUE rb_html)
25
+ nl_document_parse(VALUE self, VALUE rb_string_or_io)
26
26
  {
27
+ VALUE id_read = rb_intern("read");
28
+ VALUE rb_html;
29
+ if (rb_respond_to(rb_string_or_io, id_read))
30
+ {
31
+ rb_html = rb_funcall(rb_string_or_io, id_read, 0);
32
+ }
33
+ else
34
+ {
35
+ rb_html = rb_string_or_io;
36
+ }
27
37
  const char *html_c = StringValuePtr(rb_html);
28
38
  size_t html_len = RSTRING_LEN(rb_html);
29
39