pocxxeci 0.30.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pocxxeci might be problematic. Click here for more details.

Files changed (160) hide show
  1. package/LICENSE +19 -0
  2. package/Makefile +18 -0
  3. package/README.md +52 -0
  4. package/binding.gyp +81 -0
  5. package/index.d.ts +273 -0
  6. package/index.js +45 -0
  7. package/lib/bindings.js +1 -0
  8. package/lib/document.js +122 -0
  9. package/lib/element.js +82 -0
  10. package/lib/sax_parser.js +38 -0
  11. package/package.json +70 -0
  12. package/src/html_document.cc +7 -0
  13. package/src/html_document.h +18 -0
  14. package/src/libxmljs.cc +252 -0
  15. package/src/libxmljs.h +53 -0
  16. package/src/xml_attribute.cc +173 -0
  17. package/src/xml_attribute.h +40 -0
  18. package/src/xml_comment.cc +117 -0
  19. package/src/xml_comment.h +30 -0
  20. package/src/xml_document.cc +810 -0
  21. package/src/xml_document.h +67 -0
  22. package/src/xml_element.cc +565 -0
  23. package/src/xml_element.h +61 -0
  24. package/src/xml_namespace.cc +158 -0
  25. package/src/xml_namespace.h +39 -0
  26. package/src/xml_node.cc +761 -0
  27. package/src/xml_node.h +73 -0
  28. package/src/xml_pi.cc +161 -0
  29. package/src/xml_pi.h +34 -0
  30. package/src/xml_sax_parser.cc +424 -0
  31. package/src/xml_sax_parser.h +73 -0
  32. package/src/xml_syntax_error.cc +66 -0
  33. package/src/xml_syntax_error.h +25 -0
  34. package/src/xml_text.cc +320 -0
  35. package/src/xml_text.h +48 -0
  36. package/src/xml_textwriter.cc +315 -0
  37. package/src/xml_textwriter.h +62 -0
  38. package/src/xml_xpath_context.cc +70 -0
  39. package/src/xml_xpath_context.h +23 -0
  40. package/vendor/libxml/Copyright +23 -0
  41. package/vendor/libxml/DOCBparser.c +305 -0
  42. package/vendor/libxml/HTMLparser.c +7287 -0
  43. package/vendor/libxml/HTMLtree.c +1200 -0
  44. package/vendor/libxml/Makefile +2983 -0
  45. package/vendor/libxml/SAX.c +180 -0
  46. package/vendor/libxml/SAX2.c +3036 -0
  47. package/vendor/libxml/buf.c +1351 -0
  48. package/vendor/libxml/buf.h +72 -0
  49. package/vendor/libxml/c14n.c +2234 -0
  50. package/vendor/libxml/catalog.c +3828 -0
  51. package/vendor/libxml/chvalid.c +336 -0
  52. package/vendor/libxml/config.h +294 -0
  53. package/vendor/libxml/config.h.gch +0 -0
  54. package/vendor/libxml/debugXML.c +3423 -0
  55. package/vendor/libxml/dict.c +1298 -0
  56. package/vendor/libxml/elfgcchack.h +17818 -0
  57. package/vendor/libxml/enc.h +32 -0
  58. package/vendor/libxml/encoding.c +3975 -0
  59. package/vendor/libxml/entities.c +1163 -0
  60. package/vendor/libxml/error.c +998 -0
  61. package/vendor/libxml/globals.c +1126 -0
  62. package/vendor/libxml/hash.c +1146 -0
  63. package/vendor/libxml/include/libxml/DOCBparser.h +96 -0
  64. package/vendor/libxml/include/libxml/HTMLparser.h +306 -0
  65. package/vendor/libxml/include/libxml/HTMLtree.h +147 -0
  66. package/vendor/libxml/include/libxml/Makefile +725 -0
  67. package/vendor/libxml/include/libxml/Makefile.am +54 -0
  68. package/vendor/libxml/include/libxml/Makefile.in +725 -0
  69. package/vendor/libxml/include/libxml/SAX.h +173 -0
  70. package/vendor/libxml/include/libxml/SAX2.h +178 -0
  71. package/vendor/libxml/include/libxml/c14n.h +128 -0
  72. package/vendor/libxml/include/libxml/catalog.h +182 -0
  73. package/vendor/libxml/include/libxml/chvalid.h +230 -0
  74. package/vendor/libxml/include/libxml/debugXML.h +217 -0
  75. package/vendor/libxml/include/libxml/dict.h +79 -0
  76. package/vendor/libxml/include/libxml/encoding.h +245 -0
  77. package/vendor/libxml/include/libxml/entities.h +151 -0
  78. package/vendor/libxml/include/libxml/globals.h +508 -0
  79. package/vendor/libxml/include/libxml/hash.h +236 -0
  80. package/vendor/libxml/include/libxml/list.h +137 -0
  81. package/vendor/libxml/include/libxml/nanoftp.h +163 -0
  82. package/vendor/libxml/include/libxml/nanohttp.h +81 -0
  83. package/vendor/libxml/include/libxml/parser.h +1243 -0
  84. package/vendor/libxml/include/libxml/parserInternals.h +644 -0
  85. package/vendor/libxml/include/libxml/pattern.h +100 -0
  86. package/vendor/libxml/include/libxml/relaxng.h +217 -0
  87. package/vendor/libxml/include/libxml/schemasInternals.h +958 -0
  88. package/vendor/libxml/include/libxml/schematron.h +142 -0
  89. package/vendor/libxml/include/libxml/threads.h +89 -0
  90. package/vendor/libxml/include/libxml/tree.h +1311 -0
  91. package/vendor/libxml/include/libxml/uri.h +94 -0
  92. package/vendor/libxml/include/libxml/valid.h +458 -0
  93. package/vendor/libxml/include/libxml/xinclude.h +129 -0
  94. package/vendor/libxml/include/libxml/xlink.h +189 -0
  95. package/vendor/libxml/include/libxml/xmlIO.h +368 -0
  96. package/vendor/libxml/include/libxml/xmlautomata.h +146 -0
  97. package/vendor/libxml/include/libxml/xmlerror.h +945 -0
  98. package/vendor/libxml/include/libxml/xmlexports.h +77 -0
  99. package/vendor/libxml/include/libxml/xmlmemory.h +224 -0
  100. package/vendor/libxml/include/libxml/xmlmodule.h +57 -0
  101. package/vendor/libxml/include/libxml/xmlreader.h +428 -0
  102. package/vendor/libxml/include/libxml/xmlregexp.h +222 -0
  103. package/vendor/libxml/include/libxml/xmlsave.h +88 -0
  104. package/vendor/libxml/include/libxml/xmlschemas.h +246 -0
  105. package/vendor/libxml/include/libxml/xmlschemastypes.h +151 -0
  106. package/vendor/libxml/include/libxml/xmlstring.h +140 -0
  107. package/vendor/libxml/include/libxml/xmlunicode.h +202 -0
  108. package/vendor/libxml/include/libxml/xmlversion.h +484 -0
  109. package/vendor/libxml/include/libxml/xmlwin32version.h +239 -0
  110. package/vendor/libxml/include/libxml/xmlwriter.h +488 -0
  111. package/vendor/libxml/include/libxml/xpath.h +564 -0
  112. package/vendor/libxml/include/libxml/xpathInternals.h +632 -0
  113. package/vendor/libxml/include/libxml/xpointer.h +114 -0
  114. package/vendor/libxml/include/win32config.h +122 -0
  115. package/vendor/libxml/include/wsockcompat.h +54 -0
  116. package/vendor/libxml/legacy.c +1343 -0
  117. package/vendor/libxml/libxml.h +134 -0
  118. package/vendor/libxml/list.c +779 -0
  119. package/vendor/libxml/nanoftp.c +2118 -0
  120. package/vendor/libxml/nanohttp.c +1899 -0
  121. package/vendor/libxml/parser.c +15553 -0
  122. package/vendor/libxml/parserInternals.c +2164 -0
  123. package/vendor/libxml/pattern.c +2621 -0
  124. package/vendor/libxml/relaxng.c +11101 -0
  125. package/vendor/libxml/rngparser.c +1595 -0
  126. package/vendor/libxml/runsuite.c +1157 -0
  127. package/vendor/libxml/save.h +36 -0
  128. package/vendor/libxml/schematron.c +1787 -0
  129. package/vendor/libxml/threads.c +1049 -0
  130. package/vendor/libxml/timsort.h +601 -0
  131. package/vendor/libxml/tree.c +10183 -0
  132. package/vendor/libxml/trio.c +6895 -0
  133. package/vendor/libxml/trio.h +230 -0
  134. package/vendor/libxml/triodef.h +228 -0
  135. package/vendor/libxml/trionan.c +914 -0
  136. package/vendor/libxml/trionan.h +84 -0
  137. package/vendor/libxml/triop.h +150 -0
  138. package/vendor/libxml/triostr.c +2112 -0
  139. package/vendor/libxml/triostr.h +144 -0
  140. package/vendor/libxml/uri.c +2561 -0
  141. package/vendor/libxml/valid.c +7138 -0
  142. package/vendor/libxml/xinclude.c +2657 -0
  143. package/vendor/libxml/xlink.c +183 -0
  144. package/vendor/libxml/xmlIO.c +4135 -0
  145. package/vendor/libxml/xmlcatalog.c +624 -0
  146. package/vendor/libxml/xmllint.c +3796 -0
  147. package/vendor/libxml/xmlmemory.c +1163 -0
  148. package/vendor/libxml/xmlmodule.c +468 -0
  149. package/vendor/libxml/xmlreader.c +6033 -0
  150. package/vendor/libxml/xmlregexp.c +8271 -0
  151. package/vendor/libxml/xmlsave.c +2735 -0
  152. package/vendor/libxml/xmlschemas.c +29173 -0
  153. package/vendor/libxml/xmlschemastypes.c +6276 -0
  154. package/vendor/libxml/xmlstring.c +1050 -0
  155. package/vendor/libxml/xmlunicode.c +3179 -0
  156. package/vendor/libxml/xmlwriter.c +4738 -0
  157. package/vendor/libxml/xpath.c +14734 -0
  158. package/vendor/libxml/xpointer.c +2969 -0
  159. package/vendor/libxml/xzlib.c +815 -0
  160. package/vendor/libxml/xzlib.h +19 -0
@@ -0,0 +1,1126 @@
1
+ /*
2
+ * globals.c: definition and handling of the set of global variables
3
+ * of the library
4
+ *
5
+ * The bottom of this file is automatically generated by build_glob.py
6
+ * based on the description file global.data
7
+ *
8
+ * See Copyright for the status of this software.
9
+ *
10
+ * Gary Pennington <Gary.Pennington@uk.sun.com>
11
+ * daniel@veillard.com
12
+ */
13
+
14
+ #define IN_LIBXML
15
+ #include "libxml.h"
16
+
17
+ #ifdef HAVE_STDLIB_H
18
+ #include <stdlib.h>
19
+ #endif
20
+ #include <string.h>
21
+
22
+ #include <libxml/globals.h>
23
+ #include <libxml/xmlmemory.h>
24
+ #include <libxml/threads.h>
25
+
26
+ /* #define DEBUG_GLOBALS */
27
+
28
+ /*
29
+ * Helpful Macro
30
+ */
31
+ #ifdef LIBXML_THREAD_ENABLED
32
+ #define IS_MAIN_THREAD (xmlIsMainThread())
33
+ #else
34
+ #define IS_MAIN_THREAD 1
35
+ #endif
36
+
37
+ /*
38
+ * Mutex to protect "ForNewThreads" variables
39
+ */
40
+ static xmlMutexPtr xmlThrDefMutex = NULL;
41
+
42
+ /**
43
+ * xmlInitGlobals:
44
+ *
45
+ * Additional initialisation for multi-threading
46
+ */
47
+ void xmlInitGlobals(void)
48
+ {
49
+ if (xmlThrDefMutex == NULL)
50
+ xmlThrDefMutex = xmlNewMutex();
51
+ }
52
+
53
+ /**
54
+ * xmlCleanupGlobals:
55
+ *
56
+ * Additional cleanup for multi-threading
57
+ */
58
+ void xmlCleanupGlobals(void)
59
+ {
60
+ if (xmlThrDefMutex != NULL) {
61
+ xmlFreeMutex(xmlThrDefMutex);
62
+ xmlThrDefMutex = NULL;
63
+ }
64
+ __xmlGlobalInitMutexDestroy();
65
+ }
66
+
67
+ /************************************************************************
68
+ * *
69
+ * All the user accessible global variables of the library *
70
+ * *
71
+ ************************************************************************/
72
+
73
+ /*
74
+ * Memory allocation routines
75
+ */
76
+ #undef xmlFree
77
+ #undef xmlMalloc
78
+ #undef xmlMallocAtomic
79
+ #undef xmlMemStrdup
80
+ #undef xmlRealloc
81
+
82
+ #if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
83
+ xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
84
+ xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
85
+ xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
86
+ xmlReallocFunc xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
87
+ xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
88
+ #else
89
+ /**
90
+ * xmlFree:
91
+ * @mem: an already allocated block of memory
92
+ *
93
+ * The variable holding the libxml free() implementation
94
+ */
95
+ xmlFreeFunc xmlFree = free;
96
+ /**
97
+ * xmlMalloc:
98
+ * @size: the size requested in bytes
99
+ *
100
+ * The variable holding the libxml malloc() implementation
101
+ *
102
+ * Returns a pointer to the newly allocated block or NULL in case of error
103
+ */
104
+ xmlMallocFunc xmlMalloc = malloc;
105
+ /**
106
+ * xmlMallocAtomic:
107
+ * @size: the size requested in bytes
108
+ *
109
+ * The variable holding the libxml malloc() implementation for atomic
110
+ * data (i.e. blocks not containing pointers), useful when using a
111
+ * garbage collecting allocator.
112
+ *
113
+ * Returns a pointer to the newly allocated block or NULL in case of error
114
+ */
115
+ xmlMallocFunc xmlMallocAtomic = malloc;
116
+ /**
117
+ * xmlRealloc:
118
+ * @mem: an already allocated block of memory
119
+ * @size: the new size requested in bytes
120
+ *
121
+ * The variable holding the libxml realloc() implementation
122
+ *
123
+ * Returns a pointer to the newly reallocated block or NULL in case of error
124
+ */
125
+ xmlReallocFunc xmlRealloc = realloc;
126
+ /**
127
+ * xmlPosixStrdup
128
+ * @cur: the input char *
129
+ *
130
+ * a strdup implementation with a type signature matching POSIX
131
+ *
132
+ * Returns a new xmlChar * or NULL
133
+ */
134
+ static char *
135
+ xmlPosixStrdup(const char *cur) {
136
+ return((char*) xmlCharStrdup(cur));
137
+ }
138
+ /**
139
+ * xmlMemStrdup:
140
+ * @str: a zero terminated string
141
+ *
142
+ * The variable holding the libxml strdup() implementation
143
+ *
144
+ * Returns the copy of the string or NULL in case of error
145
+ */
146
+ xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup;
147
+ #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
148
+
149
+ #include <libxml/threads.h>
150
+ #include <libxml/globals.h>
151
+ #include <libxml/SAX.h>
152
+
153
+ #undef docbDefaultSAXHandler
154
+ #undef htmlDefaultSAXHandler
155
+ #undef oldXMLWDcompatibility
156
+ #undef xmlBufferAllocScheme
157
+ #undef xmlDefaultBufferSize
158
+ #undef xmlDefaultSAXHandler
159
+ #undef xmlDefaultSAXLocator
160
+ #undef xmlDoValidityCheckingDefaultValue
161
+ #undef xmlGenericError
162
+ #undef xmlStructuredError
163
+ #undef xmlGenericErrorContext
164
+ #undef xmlStructuredErrorContext
165
+ #undef xmlGetWarningsDefaultValue
166
+ #undef xmlIndentTreeOutput
167
+ #undef xmlTreeIndentString
168
+ #undef xmlKeepBlanksDefaultValue
169
+ #undef xmlLineNumbersDefaultValue
170
+ #undef xmlLoadExtDtdDefaultValue
171
+ #undef xmlParserDebugEntities
172
+ #undef xmlParserVersion
173
+ #undef xmlPedanticParserDefaultValue
174
+ #undef xmlSaveNoEmptyTags
175
+ #undef xmlSubstituteEntitiesDefaultValue
176
+ #undef xmlRegisterNodeDefaultValue
177
+ #undef xmlDeregisterNodeDefaultValue
178
+ #undef xmlLastError
179
+
180
+ #undef xmlParserInputBufferCreateFilenameValue
181
+ #undef xmlOutputBufferCreateFilenameValue
182
+ /**
183
+ * xmlParserVersion:
184
+ *
185
+ * Constant string describing the internal version of the library
186
+ */
187
+ const char *xmlParserVersion = LIBXML_VERSION_STRING LIBXML_VERSION_EXTRA;
188
+
189
+ /**
190
+ * xmlBufferAllocScheme:
191
+ *
192
+ * Global setting, default allocation policy for buffers, default is
193
+ * XML_BUFFER_ALLOC_EXACT
194
+ */
195
+ xmlBufferAllocationScheme xmlBufferAllocScheme = XML_BUFFER_ALLOC_EXACT;
196
+ static xmlBufferAllocationScheme xmlBufferAllocSchemeThrDef = XML_BUFFER_ALLOC_EXACT;
197
+ /**
198
+ * xmlDefaultBufferSize:
199
+ *
200
+ * Global setting, default buffer size. Default value is BASE_BUFFER_SIZE
201
+ */
202
+ int xmlDefaultBufferSize = BASE_BUFFER_SIZE;
203
+ static int xmlDefaultBufferSizeThrDef = BASE_BUFFER_SIZE;
204
+
205
+ /*
206
+ * Parser defaults
207
+ */
208
+
209
+ /**
210
+ * oldXMLWDcompatibility:
211
+ *
212
+ * Global setting, DEPRECATED.
213
+ */
214
+ int oldXMLWDcompatibility = 0; /* DEPRECATED */
215
+ /**
216
+ * xmlParserDebugEntities:
217
+ *
218
+ * Global setting, asking the parser to print out debugging information.
219
+ * while handling entities.
220
+ * Disabled by default
221
+ */
222
+ int xmlParserDebugEntities = 0;
223
+ static int xmlParserDebugEntitiesThrDef = 0;
224
+ /**
225
+ * xmlDoValidityCheckingDefaultValue:
226
+ *
227
+ * Global setting, indicate that the parser should work in validating mode.
228
+ * Disabled by default.
229
+ */
230
+ int xmlDoValidityCheckingDefaultValue = 0;
231
+ static int xmlDoValidityCheckingDefaultValueThrDef = 0;
232
+ /**
233
+ * xmlGetWarningsDefaultValue:
234
+ *
235
+ * Global setting, indicate that the parser should provide warnings.
236
+ * Activated by default.
237
+ */
238
+ int xmlGetWarningsDefaultValue = 1;
239
+ static int xmlGetWarningsDefaultValueThrDef = 1;
240
+ /**
241
+ * xmlLoadExtDtdDefaultValue:
242
+ *
243
+ * Global setting, indicate that the parser should load DTD while not
244
+ * validating.
245
+ * Disabled by default.
246
+ */
247
+ int xmlLoadExtDtdDefaultValue = 0;
248
+ static int xmlLoadExtDtdDefaultValueThrDef = 0;
249
+ /**
250
+ * xmlPedanticParserDefaultValue:
251
+ *
252
+ * Global setting, indicate that the parser be pedantic
253
+ * Disabled by default.
254
+ */
255
+ int xmlPedanticParserDefaultValue = 0;
256
+ static int xmlPedanticParserDefaultValueThrDef = 0;
257
+ /**
258
+ * xmlLineNumbersDefaultValue:
259
+ *
260
+ * Global setting, indicate that the parser should store the line number
261
+ * in the content field of elements in the DOM tree.
262
+ * Disabled by default since this may not be safe for old classes of
263
+ * application.
264
+ */
265
+ int xmlLineNumbersDefaultValue = 0;
266
+ static int xmlLineNumbersDefaultValueThrDef = 0;
267
+ /**
268
+ * xmlKeepBlanksDefaultValue:
269
+ *
270
+ * Global setting, indicate that the parser should keep all blanks
271
+ * nodes found in the content
272
+ * Activated by default, this is actually needed to have the parser
273
+ * conformant to the XML Recommendation, however the option is kept
274
+ * for some applications since this was libxml1 default behaviour.
275
+ */
276
+ int xmlKeepBlanksDefaultValue = 1;
277
+ static int xmlKeepBlanksDefaultValueThrDef = 1;
278
+ /**
279
+ * xmlSubstituteEntitiesDefaultValue:
280
+ *
281
+ * Global setting, indicate that the parser should not generate entity
282
+ * references but replace them with the actual content of the entity
283
+ * Disabled by default, this should be activated when using XPath since
284
+ * the XPath data model requires entities replacement and the XPath
285
+ * engine does not handle entities references transparently.
286
+ */
287
+ int xmlSubstituteEntitiesDefaultValue = 0;
288
+ static int xmlSubstituteEntitiesDefaultValueThrDef = 0;
289
+
290
+ xmlRegisterNodeFunc xmlRegisterNodeDefaultValue = NULL;
291
+ static xmlRegisterNodeFunc xmlRegisterNodeDefaultValueThrDef = NULL;
292
+ xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue = NULL;
293
+ static xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValueThrDef = NULL;
294
+
295
+ xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue = NULL;
296
+ static xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValueThrDef = NULL;
297
+
298
+ xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue = NULL;
299
+ static xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValueThrDef = NULL;
300
+
301
+ /*
302
+ * Error handling
303
+ */
304
+
305
+ /* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
306
+ /* Must initialize xmlGenericError in xmlInitParser */
307
+ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED,
308
+ const char *msg,
309
+ ...);
310
+ /**
311
+ * xmlGenericError:
312
+ *
313
+ * Global setting: function used for generic error callbacks
314
+ */
315
+ xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc;
316
+ static xmlGenericErrorFunc xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
317
+ /**
318
+ * xmlStructuredError:
319
+ *
320
+ * Global setting: function used for structured error callbacks
321
+ */
322
+ xmlStructuredErrorFunc xmlStructuredError = NULL;
323
+ static xmlStructuredErrorFunc xmlStructuredErrorThrDef = NULL;
324
+ /**
325
+ * xmlGenericErrorContext:
326
+ *
327
+ * Global setting passed to generic error callbacks
328
+ */
329
+ void *xmlGenericErrorContext = NULL;
330
+ static void *xmlGenericErrorContextThrDef = NULL;
331
+ /**
332
+ * xmlStructuredErrorContext:
333
+ *
334
+ * Global setting passed to structured error callbacks
335
+ */
336
+ void *xmlStructuredErrorContext = NULL;
337
+ static void *xmlStructuredErrorContextThrDef = NULL;
338
+ xmlError xmlLastError;
339
+
340
+ /*
341
+ * output defaults
342
+ */
343
+ /**
344
+ * xmlIndentTreeOutput:
345
+ *
346
+ * Global setting, asking the serializer to indent the output tree by default
347
+ * Enabled by default
348
+ */
349
+ int xmlIndentTreeOutput = 1;
350
+ static int xmlIndentTreeOutputThrDef = 1;
351
+
352
+ /**
353
+ * xmlTreeIndentString:
354
+ *
355
+ * The string used to do one-level indent. By default is equal to " " (two spaces)
356
+ */
357
+ const char *xmlTreeIndentString = " ";
358
+ static const char *xmlTreeIndentStringThrDef = " ";
359
+
360
+ /**
361
+ * xmlSaveNoEmptyTags:
362
+ *
363
+ * Global setting, asking the serializer to not output empty tags
364
+ * as <empty/> but <empty></empty>. those two forms are indistinguishable
365
+ * once parsed.
366
+ * Disabled by default
367
+ */
368
+ int xmlSaveNoEmptyTags = 0;
369
+ static int xmlSaveNoEmptyTagsThrDef = 0;
370
+
371
+ #ifdef LIBXML_SAX1_ENABLED
372
+ /**
373
+ * xmlDefaultSAXHandler:
374
+ *
375
+ * Default SAX version1 handler for XML, builds the DOM tree
376
+ */
377
+ xmlSAXHandlerV1 xmlDefaultSAXHandler = {
378
+ xmlSAX2InternalSubset,
379
+ xmlSAX2IsStandalone,
380
+ xmlSAX2HasInternalSubset,
381
+ xmlSAX2HasExternalSubset,
382
+ xmlSAX2ResolveEntity,
383
+ xmlSAX2GetEntity,
384
+ xmlSAX2EntityDecl,
385
+ xmlSAX2NotationDecl,
386
+ xmlSAX2AttributeDecl,
387
+ xmlSAX2ElementDecl,
388
+ xmlSAX2UnparsedEntityDecl,
389
+ xmlSAX2SetDocumentLocator,
390
+ xmlSAX2StartDocument,
391
+ xmlSAX2EndDocument,
392
+ xmlSAX2StartElement,
393
+ xmlSAX2EndElement,
394
+ xmlSAX2Reference,
395
+ xmlSAX2Characters,
396
+ xmlSAX2Characters,
397
+ xmlSAX2ProcessingInstruction,
398
+ xmlSAX2Comment,
399
+ xmlParserWarning,
400
+ xmlParserError,
401
+ xmlParserError,
402
+ xmlSAX2GetParameterEntity,
403
+ xmlSAX2CDataBlock,
404
+ xmlSAX2ExternalSubset,
405
+ 0,
406
+ };
407
+ #endif /* LIBXML_SAX1_ENABLED */
408
+
409
+ /**
410
+ * xmlDefaultSAXLocator:
411
+ *
412
+ * The default SAX Locator
413
+ * { getPublicId, getSystemId, getLineNumber, getColumnNumber}
414
+ */
415
+ xmlSAXLocator xmlDefaultSAXLocator = {
416
+ xmlSAX2GetPublicId,
417
+ xmlSAX2GetSystemId,
418
+ xmlSAX2GetLineNumber,
419
+ xmlSAX2GetColumnNumber
420
+ };
421
+
422
+ #ifdef LIBXML_HTML_ENABLED
423
+ /**
424
+ * htmlDefaultSAXHandler:
425
+ *
426
+ * Default old SAX v1 handler for HTML, builds the DOM tree
427
+ */
428
+ xmlSAXHandlerV1 htmlDefaultSAXHandler = {
429
+ xmlSAX2InternalSubset,
430
+ NULL,
431
+ NULL,
432
+ NULL,
433
+ NULL,
434
+ xmlSAX2GetEntity,
435
+ NULL,
436
+ NULL,
437
+ NULL,
438
+ NULL,
439
+ NULL,
440
+ xmlSAX2SetDocumentLocator,
441
+ xmlSAX2StartDocument,
442
+ xmlSAX2EndDocument,
443
+ xmlSAX2StartElement,
444
+ xmlSAX2EndElement,
445
+ NULL,
446
+ xmlSAX2Characters,
447
+ xmlSAX2IgnorableWhitespace,
448
+ xmlSAX2ProcessingInstruction,
449
+ xmlSAX2Comment,
450
+ xmlParserWarning,
451
+ xmlParserError,
452
+ xmlParserError,
453
+ xmlSAX2GetParameterEntity,
454
+ xmlSAX2CDataBlock,
455
+ NULL,
456
+ 0,
457
+ };
458
+ #endif /* LIBXML_HTML_ENABLED */
459
+
460
+ #ifdef LIBXML_DOCB_ENABLED
461
+ /**
462
+ * docbDefaultSAXHandler:
463
+ *
464
+ * Default old SAX v1 handler for SGML DocBook, builds the DOM tree
465
+ */
466
+ xmlSAXHandlerV1 docbDefaultSAXHandler = {
467
+ xmlSAX2InternalSubset,
468
+ xmlSAX2IsStandalone,
469
+ xmlSAX2HasInternalSubset,
470
+ xmlSAX2HasExternalSubset,
471
+ xmlSAX2ResolveEntity,
472
+ xmlSAX2GetEntity,
473
+ xmlSAX2EntityDecl,
474
+ NULL,
475
+ NULL,
476
+ NULL,
477
+ NULL,
478
+ xmlSAX2SetDocumentLocator,
479
+ xmlSAX2StartDocument,
480
+ xmlSAX2EndDocument,
481
+ xmlSAX2StartElement,
482
+ xmlSAX2EndElement,
483
+ xmlSAX2Reference,
484
+ xmlSAX2Characters,
485
+ xmlSAX2IgnorableWhitespace,
486
+ NULL,
487
+ xmlSAX2Comment,
488
+ xmlParserWarning,
489
+ xmlParserError,
490
+ xmlParserError,
491
+ xmlSAX2GetParameterEntity,
492
+ NULL,
493
+ NULL,
494
+ 0,
495
+ };
496
+ #endif /* LIBXML_DOCB_ENABLED */
497
+
498
+ /**
499
+ * xmlInitializeGlobalState:
500
+ * @gs: a pointer to a newly allocated global state
501
+ *
502
+ * xmlInitializeGlobalState() initialize a global state with all the
503
+ * default values of the library.
504
+ */
505
+ void
506
+ xmlInitializeGlobalState(xmlGlobalStatePtr gs)
507
+ {
508
+ #ifdef DEBUG_GLOBALS
509
+ fprintf(stderr, "Initializing globals at %lu for thread %d\n",
510
+ (unsigned long) gs, xmlGetThreadId());
511
+ #endif
512
+
513
+ /*
514
+ * Perform initialization as required by libxml
515
+ */
516
+ if (xmlThrDefMutex == NULL)
517
+ xmlInitGlobals();
518
+
519
+ xmlMutexLock(xmlThrDefMutex);
520
+
521
+ #if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
522
+ initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
523
+ #endif
524
+ #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
525
+ inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler);
526
+ #endif
527
+
528
+ gs->oldXMLWDcompatibility = 0;
529
+ gs->xmlBufferAllocScheme = xmlBufferAllocSchemeThrDef;
530
+ gs->xmlDefaultBufferSize = xmlDefaultBufferSizeThrDef;
531
+ #if defined(LIBXML_SAX1_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
532
+ initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
533
+ #endif /* LIBXML_SAX1_ENABLED */
534
+ gs->xmlDefaultSAXLocator.getPublicId = xmlSAX2GetPublicId;
535
+ gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId;
536
+ gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber;
537
+ gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber;
538
+ gs->xmlDoValidityCheckingDefaultValue =
539
+ xmlDoValidityCheckingDefaultValueThrDef;
540
+ #if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY)
541
+ gs->xmlFree = (xmlFreeFunc) xmlMemFree;
542
+ gs->xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
543
+ gs->xmlMallocAtomic = (xmlMallocFunc) xmlMemMalloc;
544
+ gs->xmlRealloc = (xmlReallocFunc) xmlMemRealloc;
545
+ gs->xmlMemStrdup = (xmlStrdupFunc) xmlMemoryStrdup;
546
+ #else
547
+ gs->xmlFree = (xmlFreeFunc) free;
548
+ gs->xmlMalloc = (xmlMallocFunc) malloc;
549
+ gs->xmlMallocAtomic = (xmlMallocFunc) malloc;
550
+ gs->xmlRealloc = (xmlReallocFunc) realloc;
551
+ gs->xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
552
+ #endif
553
+ gs->xmlGetWarningsDefaultValue = xmlGetWarningsDefaultValueThrDef;
554
+ gs->xmlIndentTreeOutput = xmlIndentTreeOutputThrDef;
555
+ gs->xmlTreeIndentString = xmlTreeIndentStringThrDef;
556
+ gs->xmlKeepBlanksDefaultValue = xmlKeepBlanksDefaultValueThrDef;
557
+ gs->xmlLineNumbersDefaultValue = xmlLineNumbersDefaultValueThrDef;
558
+ gs->xmlLoadExtDtdDefaultValue = xmlLoadExtDtdDefaultValueThrDef;
559
+ gs->xmlParserDebugEntities = xmlParserDebugEntitiesThrDef;
560
+ gs->xmlParserVersion = LIBXML_VERSION_STRING;
561
+ gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef;
562
+ gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef;
563
+ gs->xmlSubstituteEntitiesDefaultValue =
564
+ xmlSubstituteEntitiesDefaultValueThrDef;
565
+
566
+ gs->xmlGenericError = xmlGenericErrorThrDef;
567
+ gs->xmlStructuredError = xmlStructuredErrorThrDef;
568
+ gs->xmlGenericErrorContext = xmlGenericErrorContextThrDef;
569
+ gs->xmlStructuredErrorContext = xmlStructuredErrorContextThrDef;
570
+ gs->xmlRegisterNodeDefaultValue = xmlRegisterNodeDefaultValueThrDef;
571
+ gs->xmlDeregisterNodeDefaultValue = xmlDeregisterNodeDefaultValueThrDef;
572
+
573
+ gs->xmlParserInputBufferCreateFilenameValue = xmlParserInputBufferCreateFilenameValueThrDef;
574
+ gs->xmlOutputBufferCreateFilenameValue = xmlOutputBufferCreateFilenameValueThrDef;
575
+ memset(&gs->xmlLastError, 0, sizeof(xmlError));
576
+
577
+ xmlMutexUnlock(xmlThrDefMutex);
578
+ }
579
+
580
+ /**
581
+ * DOC_DISABLE : we ignore missing doc for the xmlThrDef functions,
582
+ * those are really internal work
583
+ */
584
+ void
585
+ xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
586
+ xmlMutexLock(xmlThrDefMutex);
587
+ xmlGenericErrorContextThrDef = ctx;
588
+ if (handler != NULL)
589
+ xmlGenericErrorThrDef = handler;
590
+ else
591
+ xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc;
592
+ xmlMutexUnlock(xmlThrDefMutex);
593
+ }
594
+
595
+ void
596
+ xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
597
+ xmlMutexLock(xmlThrDefMutex);
598
+ xmlStructuredErrorContextThrDef = ctx;
599
+ xmlStructuredErrorThrDef = handler;
600
+ xmlMutexUnlock(xmlThrDefMutex);
601
+ }
602
+
603
+ /**
604
+ * xmlRegisterNodeDefault:
605
+ * @func: function pointer to the new RegisterNodeFunc
606
+ *
607
+ * Registers a callback for node creation
608
+ *
609
+ * Returns the old value of the registration function
610
+ */
611
+ xmlRegisterNodeFunc
612
+ xmlRegisterNodeDefault(xmlRegisterNodeFunc func)
613
+ {
614
+ xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue;
615
+
616
+ __xmlRegisterCallbacks = 1;
617
+ xmlRegisterNodeDefaultValue = func;
618
+ return(old);
619
+ }
620
+
621
+ xmlRegisterNodeFunc
622
+ xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
623
+ {
624
+ xmlRegisterNodeFunc old;
625
+
626
+ xmlMutexLock(xmlThrDefMutex);
627
+ old = xmlRegisterNodeDefaultValueThrDef;
628
+
629
+ __xmlRegisterCallbacks = 1;
630
+ xmlRegisterNodeDefaultValueThrDef = func;
631
+ xmlMutexUnlock(xmlThrDefMutex);
632
+
633
+ return(old);
634
+ }
635
+
636
+ /**
637
+ * xmlDeregisterNodeDefault:
638
+ * @func: function pointer to the new DeregisterNodeFunc
639
+ *
640
+ * Registers a callback for node destruction
641
+ *
642
+ * Returns the previous value of the deregistration function
643
+ */
644
+ xmlDeregisterNodeFunc
645
+ xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func)
646
+ {
647
+ xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue;
648
+
649
+ __xmlRegisterCallbacks = 1;
650
+ xmlDeregisterNodeDefaultValue = func;
651
+ return(old);
652
+ }
653
+
654
+ xmlDeregisterNodeFunc
655
+ xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
656
+ {
657
+ xmlDeregisterNodeFunc old;
658
+
659
+ xmlMutexLock(xmlThrDefMutex);
660
+ old = xmlDeregisterNodeDefaultValueThrDef;
661
+
662
+ __xmlRegisterCallbacks = 1;
663
+ xmlDeregisterNodeDefaultValueThrDef = func;
664
+ xmlMutexUnlock(xmlThrDefMutex);
665
+
666
+ return(old);
667
+ }
668
+
669
+ xmlParserInputBufferCreateFilenameFunc
670
+ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func)
671
+ {
672
+ xmlParserInputBufferCreateFilenameFunc old;
673
+
674
+ xmlMutexLock(xmlThrDefMutex);
675
+ old = xmlParserInputBufferCreateFilenameValueThrDef;
676
+ if (old == NULL) {
677
+ old = __xmlParserInputBufferCreateFilename;
678
+ }
679
+
680
+ xmlParserInputBufferCreateFilenameValueThrDef = func;
681
+ xmlMutexUnlock(xmlThrDefMutex);
682
+
683
+ return(old);
684
+ }
685
+
686
+ xmlOutputBufferCreateFilenameFunc
687
+ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func)
688
+ {
689
+ xmlOutputBufferCreateFilenameFunc old;
690
+
691
+ xmlMutexLock(xmlThrDefMutex);
692
+ old = xmlOutputBufferCreateFilenameValueThrDef;
693
+ #ifdef LIBXML_OUTPUT_ENABLED
694
+ if (old == NULL) {
695
+ old = __xmlOutputBufferCreateFilename;
696
+ }
697
+ #endif
698
+ xmlOutputBufferCreateFilenameValueThrDef = func;
699
+ xmlMutexUnlock(xmlThrDefMutex);
700
+
701
+ return(old);
702
+ }
703
+
704
+ #ifdef LIBXML_DOCB_ENABLED
705
+ #undef docbDefaultSAXHandler
706
+ xmlSAXHandlerV1 *
707
+ __docbDefaultSAXHandler(void) {
708
+ if (IS_MAIN_THREAD)
709
+ return (&docbDefaultSAXHandler);
710
+ else
711
+ return (&xmlGetGlobalState()->docbDefaultSAXHandler);
712
+ }
713
+ #endif
714
+
715
+ #ifdef LIBXML_HTML_ENABLED
716
+ #undef htmlDefaultSAXHandler
717
+ xmlSAXHandlerV1 *
718
+ __htmlDefaultSAXHandler(void) {
719
+ if (IS_MAIN_THREAD)
720
+ return (&htmlDefaultSAXHandler);
721
+ else
722
+ return (&xmlGetGlobalState()->htmlDefaultSAXHandler);
723
+ }
724
+ #endif
725
+
726
+ #undef xmlLastError
727
+ xmlError *
728
+ __xmlLastError(void) {
729
+ if (IS_MAIN_THREAD)
730
+ return (&xmlLastError);
731
+ else
732
+ return (&xmlGetGlobalState()->xmlLastError);
733
+ }
734
+
735
+ /*
736
+ * The following memory routines were apparently lost at some point,
737
+ * and were re-inserted at this point on June 10, 2004. Hope it's
738
+ * the right place for them :-)
739
+ */
740
+ #if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
741
+ #undef xmlMalloc
742
+ xmlMallocFunc *
743
+ __xmlMalloc(void){
744
+ if (IS_MAIN_THREAD)
745
+ return (&xmlMalloc);
746
+ else
747
+ return (&xmlGetGlobalState()->xmlMalloc);
748
+ }
749
+
750
+ #undef xmlMallocAtomic
751
+ xmlMallocFunc *
752
+ __xmlMallocAtomic(void){
753
+ if (IS_MAIN_THREAD)
754
+ return (&xmlMallocAtomic);
755
+ else
756
+ return (&xmlGetGlobalState()->xmlMallocAtomic);
757
+ }
758
+
759
+ #undef xmlRealloc
760
+ xmlReallocFunc *
761
+ __xmlRealloc(void){
762
+ if (IS_MAIN_THREAD)
763
+ return (&xmlRealloc);
764
+ else
765
+ return (&xmlGetGlobalState()->xmlRealloc);
766
+ }
767
+
768
+ #undef xmlFree
769
+ xmlFreeFunc *
770
+ __xmlFree(void){
771
+ if (IS_MAIN_THREAD)
772
+ return (&xmlFree);
773
+ else
774
+ return (&xmlGetGlobalState()->xmlFree);
775
+ }
776
+
777
+ xmlStrdupFunc *
778
+ __xmlMemStrdup(void){
779
+ if (IS_MAIN_THREAD)
780
+ return (&xmlMemStrdup);
781
+ else
782
+ return (&xmlGetGlobalState()->xmlMemStrdup);
783
+ }
784
+
785
+ #endif
786
+
787
+ /*
788
+ * Everything starting from the line below is
789
+ * Automatically generated by build_glob.py.
790
+ * Do not modify the previous line.
791
+ */
792
+
793
+
794
+ #undef oldXMLWDcompatibility
795
+ int *
796
+ __oldXMLWDcompatibility(void) {
797
+ if (IS_MAIN_THREAD)
798
+ return (&oldXMLWDcompatibility);
799
+ else
800
+ return (&xmlGetGlobalState()->oldXMLWDcompatibility);
801
+ }
802
+
803
+ #undef xmlBufferAllocScheme
804
+ xmlBufferAllocationScheme *
805
+ __xmlBufferAllocScheme(void) {
806
+ if (IS_MAIN_THREAD)
807
+ return (&xmlBufferAllocScheme);
808
+ else
809
+ return (&xmlGetGlobalState()->xmlBufferAllocScheme);
810
+ }
811
+ xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) {
812
+ xmlBufferAllocationScheme ret;
813
+ xmlMutexLock(xmlThrDefMutex);
814
+ ret = xmlBufferAllocSchemeThrDef;
815
+ xmlBufferAllocSchemeThrDef = v;
816
+ xmlMutexUnlock(xmlThrDefMutex);
817
+ return ret;
818
+ }
819
+
820
+ #undef xmlDefaultBufferSize
821
+ int *
822
+ __xmlDefaultBufferSize(void) {
823
+ if (IS_MAIN_THREAD)
824
+ return (&xmlDefaultBufferSize);
825
+ else
826
+ return (&xmlGetGlobalState()->xmlDefaultBufferSize);
827
+ }
828
+ int xmlThrDefDefaultBufferSize(int v) {
829
+ int ret;
830
+ xmlMutexLock(xmlThrDefMutex);
831
+ ret = xmlDefaultBufferSizeThrDef;
832
+ xmlDefaultBufferSizeThrDef = v;
833
+ xmlMutexUnlock(xmlThrDefMutex);
834
+ return ret;
835
+ }
836
+
837
+ #ifdef LIBXML_SAX1_ENABLED
838
+ #undef xmlDefaultSAXHandler
839
+ xmlSAXHandlerV1 *
840
+ __xmlDefaultSAXHandler(void) {
841
+ if (IS_MAIN_THREAD)
842
+ return (&xmlDefaultSAXHandler);
843
+ else
844
+ return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
845
+ }
846
+ #endif /* LIBXML_SAX1_ENABLED */
847
+
848
+ #undef xmlDefaultSAXLocator
849
+ xmlSAXLocator *
850
+ __xmlDefaultSAXLocator(void) {
851
+ if (IS_MAIN_THREAD)
852
+ return (&xmlDefaultSAXLocator);
853
+ else
854
+ return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
855
+ }
856
+
857
+ #undef xmlDoValidityCheckingDefaultValue
858
+ int *
859
+ __xmlDoValidityCheckingDefaultValue(void) {
860
+ if (IS_MAIN_THREAD)
861
+ return (&xmlDoValidityCheckingDefaultValue);
862
+ else
863
+ return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultValue);
864
+ }
865
+ int xmlThrDefDoValidityCheckingDefaultValue(int v) {
866
+ int ret;
867
+ xmlMutexLock(xmlThrDefMutex);
868
+ ret = xmlDoValidityCheckingDefaultValueThrDef;
869
+ xmlDoValidityCheckingDefaultValueThrDef = v;
870
+ xmlMutexUnlock(xmlThrDefMutex);
871
+ return ret;
872
+ }
873
+
874
+ #undef xmlGenericError
875
+ xmlGenericErrorFunc *
876
+ __xmlGenericError(void) {
877
+ if (IS_MAIN_THREAD)
878
+ return (&xmlGenericError);
879
+ else
880
+ return (&xmlGetGlobalState()->xmlGenericError);
881
+ }
882
+
883
+ #undef xmlStructuredError
884
+ xmlStructuredErrorFunc *
885
+ __xmlStructuredError(void) {
886
+ if (IS_MAIN_THREAD)
887
+ return (&xmlStructuredError);
888
+ else
889
+ return (&xmlGetGlobalState()->xmlStructuredError);
890
+ }
891
+
892
+ #undef xmlGenericErrorContext
893
+ void * *
894
+ __xmlGenericErrorContext(void) {
895
+ if (IS_MAIN_THREAD)
896
+ return (&xmlGenericErrorContext);
897
+ else
898
+ return (&xmlGetGlobalState()->xmlGenericErrorContext);
899
+ }
900
+
901
+ #undef xmlStructuredErrorContext
902
+ void * *
903
+ __xmlStructuredErrorContext(void) {
904
+ if (IS_MAIN_THREAD)
905
+ return (&xmlStructuredErrorContext);
906
+ else
907
+ return (&xmlGetGlobalState()->xmlStructuredErrorContext);
908
+ }
909
+
910
+ #undef xmlGetWarningsDefaultValue
911
+ int *
912
+ __xmlGetWarningsDefaultValue(void) {
913
+ if (IS_MAIN_THREAD)
914
+ return (&xmlGetWarningsDefaultValue);
915
+ else
916
+ return (&xmlGetGlobalState()->xmlGetWarningsDefaultValue);
917
+ }
918
+ int xmlThrDefGetWarningsDefaultValue(int v) {
919
+ int ret;
920
+ xmlMutexLock(xmlThrDefMutex);
921
+ ret = xmlGetWarningsDefaultValueThrDef;
922
+ xmlGetWarningsDefaultValueThrDef = v;
923
+ xmlMutexUnlock(xmlThrDefMutex);
924
+ return ret;
925
+ }
926
+
927
+ #undef xmlIndentTreeOutput
928
+ int *
929
+ __xmlIndentTreeOutput(void) {
930
+ if (IS_MAIN_THREAD)
931
+ return (&xmlIndentTreeOutput);
932
+ else
933
+ return (&xmlGetGlobalState()->xmlIndentTreeOutput);
934
+ }
935
+ int xmlThrDefIndentTreeOutput(int v) {
936
+ int ret;
937
+ xmlMutexLock(xmlThrDefMutex);
938
+ ret = xmlIndentTreeOutputThrDef;
939
+ xmlIndentTreeOutputThrDef = v;
940
+ xmlMutexUnlock(xmlThrDefMutex);
941
+ return ret;
942
+ }
943
+
944
+ #undef xmlTreeIndentString
945
+ const char * *
946
+ __xmlTreeIndentString(void) {
947
+ if (IS_MAIN_THREAD)
948
+ return (&xmlTreeIndentString);
949
+ else
950
+ return (&xmlGetGlobalState()->xmlTreeIndentString);
951
+ }
952
+ const char * xmlThrDefTreeIndentString(const char * v) {
953
+ const char * ret;
954
+ xmlMutexLock(xmlThrDefMutex);
955
+ ret = xmlTreeIndentStringThrDef;
956
+ xmlTreeIndentStringThrDef = v;
957
+ xmlMutexUnlock(xmlThrDefMutex);
958
+ return ret;
959
+ }
960
+
961
+ #undef xmlKeepBlanksDefaultValue
962
+ int *
963
+ __xmlKeepBlanksDefaultValue(void) {
964
+ if (IS_MAIN_THREAD)
965
+ return (&xmlKeepBlanksDefaultValue);
966
+ else
967
+ return (&xmlGetGlobalState()->xmlKeepBlanksDefaultValue);
968
+ }
969
+ int xmlThrDefKeepBlanksDefaultValue(int v) {
970
+ int ret;
971
+ xmlMutexLock(xmlThrDefMutex);
972
+ ret = xmlKeepBlanksDefaultValueThrDef;
973
+ xmlKeepBlanksDefaultValueThrDef = v;
974
+ xmlMutexUnlock(xmlThrDefMutex);
975
+ return ret;
976
+ }
977
+
978
+ #undef xmlLineNumbersDefaultValue
979
+ int *
980
+ __xmlLineNumbersDefaultValue(void) {
981
+ if (IS_MAIN_THREAD)
982
+ return (&xmlLineNumbersDefaultValue);
983
+ else
984
+ return (&xmlGetGlobalState()->xmlLineNumbersDefaultValue);
985
+ }
986
+ int xmlThrDefLineNumbersDefaultValue(int v) {
987
+ int ret;
988
+ xmlMutexLock(xmlThrDefMutex);
989
+ ret = xmlLineNumbersDefaultValueThrDef;
990
+ xmlLineNumbersDefaultValueThrDef = v;
991
+ xmlMutexUnlock(xmlThrDefMutex);
992
+ return ret;
993
+ }
994
+
995
+ #undef xmlLoadExtDtdDefaultValue
996
+ int *
997
+ __xmlLoadExtDtdDefaultValue(void) {
998
+ if (IS_MAIN_THREAD)
999
+ return (&xmlLoadExtDtdDefaultValue);
1000
+ else
1001
+ return (&xmlGetGlobalState()->xmlLoadExtDtdDefaultValue);
1002
+ }
1003
+ int xmlThrDefLoadExtDtdDefaultValue(int v) {
1004
+ int ret;
1005
+ xmlMutexLock(xmlThrDefMutex);
1006
+ ret = xmlLoadExtDtdDefaultValueThrDef;
1007
+ xmlLoadExtDtdDefaultValueThrDef = v;
1008
+ xmlMutexUnlock(xmlThrDefMutex);
1009
+ return ret;
1010
+ }
1011
+
1012
+ #undef xmlParserDebugEntities
1013
+ int *
1014
+ __xmlParserDebugEntities(void) {
1015
+ if (IS_MAIN_THREAD)
1016
+ return (&xmlParserDebugEntities);
1017
+ else
1018
+ return (&xmlGetGlobalState()->xmlParserDebugEntities);
1019
+ }
1020
+ int xmlThrDefParserDebugEntities(int v) {
1021
+ int ret;
1022
+ xmlMutexLock(xmlThrDefMutex);
1023
+ ret = xmlParserDebugEntitiesThrDef;
1024
+ xmlParserDebugEntitiesThrDef = v;
1025
+ xmlMutexUnlock(xmlThrDefMutex);
1026
+ return ret;
1027
+ }
1028
+
1029
+ #undef xmlParserVersion
1030
+ const char * *
1031
+ __xmlParserVersion(void) {
1032
+ if (IS_MAIN_THREAD)
1033
+ return (&xmlParserVersion);
1034
+ else
1035
+ return (&xmlGetGlobalState()->xmlParserVersion);
1036
+ }
1037
+
1038
+ #undef xmlPedanticParserDefaultValue
1039
+ int *
1040
+ __xmlPedanticParserDefaultValue(void) {
1041
+ if (IS_MAIN_THREAD)
1042
+ return (&xmlPedanticParserDefaultValue);
1043
+ else
1044
+ return (&xmlGetGlobalState()->xmlPedanticParserDefaultValue);
1045
+ }
1046
+ int xmlThrDefPedanticParserDefaultValue(int v) {
1047
+ int ret;
1048
+ xmlMutexLock(xmlThrDefMutex);
1049
+ ret = xmlPedanticParserDefaultValueThrDef;
1050
+ xmlPedanticParserDefaultValueThrDef = v;
1051
+ xmlMutexUnlock(xmlThrDefMutex);
1052
+ return ret;
1053
+ }
1054
+
1055
+ #undef xmlSaveNoEmptyTags
1056
+ int *
1057
+ __xmlSaveNoEmptyTags(void) {
1058
+ if (IS_MAIN_THREAD)
1059
+ return (&xmlSaveNoEmptyTags);
1060
+ else
1061
+ return (&xmlGetGlobalState()->xmlSaveNoEmptyTags);
1062
+ }
1063
+ int xmlThrDefSaveNoEmptyTags(int v) {
1064
+ int ret;
1065
+ xmlMutexLock(xmlThrDefMutex);
1066
+ ret = xmlSaveNoEmptyTagsThrDef;
1067
+ xmlSaveNoEmptyTagsThrDef = v;
1068
+ xmlMutexUnlock(xmlThrDefMutex);
1069
+ return ret;
1070
+ }
1071
+
1072
+ #undef xmlSubstituteEntitiesDefaultValue
1073
+ int *
1074
+ __xmlSubstituteEntitiesDefaultValue(void) {
1075
+ if (IS_MAIN_THREAD)
1076
+ return (&xmlSubstituteEntitiesDefaultValue);
1077
+ else
1078
+ return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultValue);
1079
+ }
1080
+ int xmlThrDefSubstituteEntitiesDefaultValue(int v) {
1081
+ int ret;
1082
+ xmlMutexLock(xmlThrDefMutex);
1083
+ ret = xmlSubstituteEntitiesDefaultValueThrDef;
1084
+ xmlSubstituteEntitiesDefaultValueThrDef = v;
1085
+ xmlMutexUnlock(xmlThrDefMutex);
1086
+ return ret;
1087
+ }
1088
+
1089
+ #undef xmlRegisterNodeDefaultValue
1090
+ xmlRegisterNodeFunc *
1091
+ __xmlRegisterNodeDefaultValue(void) {
1092
+ if (IS_MAIN_THREAD)
1093
+ return (&xmlRegisterNodeDefaultValue);
1094
+ else
1095
+ return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
1096
+ }
1097
+
1098
+ #undef xmlDeregisterNodeDefaultValue
1099
+ xmlDeregisterNodeFunc *
1100
+ __xmlDeregisterNodeDefaultValue(void) {
1101
+ if (IS_MAIN_THREAD)
1102
+ return (&xmlDeregisterNodeDefaultValue);
1103
+ else
1104
+ return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
1105
+ }
1106
+
1107
+ #undef xmlParserInputBufferCreateFilenameValue
1108
+ xmlParserInputBufferCreateFilenameFunc *
1109
+ __xmlParserInputBufferCreateFilenameValue(void) {
1110
+ if (IS_MAIN_THREAD)
1111
+ return (&xmlParserInputBufferCreateFilenameValue);
1112
+ else
1113
+ return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
1114
+ }
1115
+
1116
+ #undef xmlOutputBufferCreateFilenameValue
1117
+ xmlOutputBufferCreateFilenameFunc *
1118
+ __xmlOutputBufferCreateFilenameValue(void) {
1119
+ if (IS_MAIN_THREAD)
1120
+ return (&xmlOutputBufferCreateFilenameValue);
1121
+ else
1122
+ return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
1123
+ }
1124
+
1125
+ #define bottom_globals
1126
+ #include "elfgcchack.h"