nokogiri 1.10.10 → 1.14.3-aarch64-linux

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

Potentially problematic release.


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

Files changed (251) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +44 -0
  3. data/LICENSE-DEPENDENCIES.md +1632 -1022
  4. data/LICENSE.md +1 -1
  5. data/README.md +185 -96
  6. data/bin/nokogiri +63 -50
  7. data/dependencies.yml +33 -66
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +819 -421
  10. data/ext/nokogiri/gumbo.c +594 -0
  11. data/ext/nokogiri/html4_document.c +166 -0
  12. data/ext/nokogiri/html4_element_description.c +294 -0
  13. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  14. data/ext/nokogiri/html4_sax_parser_context.c +114 -0
  15. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  16. data/ext/nokogiri/include/libexslt/exslt.h +108 -0
  17. data/ext/nokogiri/include/libexslt/exsltconfig.h +70 -0
  18. data/ext/nokogiri/include/libexslt/exsltexports.h +63 -0
  19. data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +306 -0
  20. data/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +147 -0
  21. data/ext/nokogiri/include/libxml2/libxml/SAX.h +204 -0
  22. data/ext/nokogiri/include/libxml2/libxml/SAX2.h +172 -0
  23. data/ext/nokogiri/include/libxml2/libxml/c14n.h +128 -0
  24. data/ext/nokogiri/include/libxml2/libxml/catalog.h +182 -0
  25. data/ext/nokogiri/include/libxml2/libxml/chvalid.h +230 -0
  26. data/ext/nokogiri/include/libxml2/libxml/debugXML.h +217 -0
  27. data/ext/nokogiri/include/libxml2/libxml/dict.h +81 -0
  28. data/ext/nokogiri/include/libxml2/libxml/encoding.h +232 -0
  29. data/ext/nokogiri/include/libxml2/libxml/entities.h +153 -0
  30. data/ext/nokogiri/include/libxml2/libxml/globals.h +499 -0
  31. data/ext/nokogiri/include/libxml2/libxml/hash.h +236 -0
  32. data/ext/nokogiri/include/libxml2/libxml/list.h +137 -0
  33. data/ext/nokogiri/include/libxml2/libxml/nanoftp.h +186 -0
  34. data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +81 -0
  35. data/ext/nokogiri/include/libxml2/libxml/parser.h +1244 -0
  36. data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +656 -0
  37. data/ext/nokogiri/include/libxml2/libxml/pattern.h +100 -0
  38. data/ext/nokogiri/include/libxml2/libxml/relaxng.h +218 -0
  39. data/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +958 -0
  40. data/ext/nokogiri/include/libxml2/libxml/schematron.h +142 -0
  41. data/ext/nokogiri/include/libxml2/libxml/threads.h +91 -0
  42. data/ext/nokogiri/include/libxml2/libxml/tree.h +1312 -0
  43. data/ext/nokogiri/include/libxml2/libxml/uri.h +94 -0
  44. data/ext/nokogiri/include/libxml2/libxml/valid.h +463 -0
  45. data/ext/nokogiri/include/libxml2/libxml/xinclude.h +129 -0
  46. data/ext/nokogiri/include/libxml2/libxml/xlink.h +189 -0
  47. data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +368 -0
  48. data/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +146 -0
  49. data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +947 -0
  50. data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +77 -0
  51. data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +226 -0
  52. data/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +57 -0
  53. data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +428 -0
  54. data/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +222 -0
  55. data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +88 -0
  56. data/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +246 -0
  57. data/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +152 -0
  58. data/ext/nokogiri/include/libxml2/libxml/xmlstring.h +140 -0
  59. data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +202 -0
  60. data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +503 -0
  61. data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +488 -0
  62. data/ext/nokogiri/include/libxml2/libxml/xpath.h +575 -0
  63. data/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +632 -0
  64. data/ext/nokogiri/include/libxml2/libxml/xpointer.h +137 -0
  65. data/ext/nokogiri/include/libxslt/attributes.h +38 -0
  66. data/ext/nokogiri/include/libxslt/documents.h +93 -0
  67. data/ext/nokogiri/include/libxslt/extensions.h +262 -0
  68. data/ext/nokogiri/include/libxslt/extra.h +72 -0
  69. data/ext/nokogiri/include/libxslt/functions.h +78 -0
  70. data/ext/nokogiri/include/libxslt/imports.h +75 -0
  71. data/ext/nokogiri/include/libxslt/keys.h +53 -0
  72. data/ext/nokogiri/include/libxslt/namespaces.h +68 -0
  73. data/ext/nokogiri/include/libxslt/numbersInternals.h +73 -0
  74. data/ext/nokogiri/include/libxslt/pattern.h +84 -0
  75. data/ext/nokogiri/include/libxslt/preproc.h +43 -0
  76. data/ext/nokogiri/include/libxslt/security.h +104 -0
  77. data/ext/nokogiri/include/libxslt/templates.h +77 -0
  78. data/ext/nokogiri/include/libxslt/transform.h +207 -0
  79. data/ext/nokogiri/include/libxslt/variables.h +118 -0
  80. data/ext/nokogiri/include/libxslt/xslt.h +110 -0
  81. data/ext/nokogiri/include/libxslt/xsltInternals.h +1982 -0
  82. data/ext/nokogiri/include/libxslt/xsltconfig.h +179 -0
  83. data/ext/nokogiri/include/libxslt/xsltexports.h +64 -0
  84. data/ext/nokogiri/include/libxslt/xsltlocale.h +76 -0
  85. data/ext/nokogiri/include/libxslt/xsltutils.h +310 -0
  86. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  87. data/ext/nokogiri/nokogiri.c +228 -104
  88. data/ext/nokogiri/nokogiri.h +204 -90
  89. data/ext/nokogiri/test_global_handlers.c +40 -0
  90. data/ext/nokogiri/xml_attr.c +17 -17
  91. data/ext/nokogiri/xml_attribute_decl.c +22 -22
  92. data/ext/nokogiri/xml_cdata.c +15 -20
  93. data/ext/nokogiri/xml_comment.c +19 -26
  94. data/ext/nokogiri/xml_document.c +306 -225
  95. data/ext/nokogiri/xml_document_fragment.c +12 -16
  96. data/ext/nokogiri/xml_dtd.c +64 -58
  97. data/ext/nokogiri/xml_element_content.c +33 -28
  98. data/ext/nokogiri/xml_element_decl.c +26 -26
  99. data/ext/nokogiri/xml_encoding_handler.c +45 -20
  100. data/ext/nokogiri/xml_entity_decl.c +37 -35
  101. data/ext/nokogiri/xml_entity_reference.c +16 -18
  102. data/ext/nokogiri/xml_namespace.c +136 -61
  103. data/ext/nokogiri/xml_node.c +1344 -672
  104. data/ext/nokogiri/xml_node_set.c +178 -168
  105. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  106. data/ext/nokogiri/xml_reader.c +316 -190
  107. data/ext/nokogiri/xml_relax_ng.c +52 -30
  108. data/ext/nokogiri/xml_sax_parser.c +130 -124
  109. data/ext/nokogiri/xml_sax_parser_context.c +110 -89
  110. data/ext/nokogiri/xml_sax_push_parser.c +36 -29
  111. data/ext/nokogiri/xml_schema.c +98 -50
  112. data/ext/nokogiri/xml_syntax_error.c +42 -21
  113. data/ext/nokogiri/xml_text.c +14 -18
  114. data/ext/nokogiri/xml_xpath_context.c +263 -148
  115. data/ext/nokogiri/xslt_stylesheet.c +271 -178
  116. data/gumbo-parser/CHANGES.md +63 -0
  117. data/gumbo-parser/Makefile +111 -0
  118. data/gumbo-parser/THANKS +27 -0
  119. data/lib/nokogiri/2.7/nokogiri.so +0 -0
  120. data/lib/nokogiri/3.0/nokogiri.so +0 -0
  121. data/lib/nokogiri/3.1/nokogiri.so +0 -0
  122. data/lib/nokogiri/3.2/nokogiri.so +0 -0
  123. data/lib/nokogiri/class_resolver.rb +67 -0
  124. data/lib/nokogiri/css/node.rb +10 -8
  125. data/lib/nokogiri/css/parser.rb +397 -377
  126. data/lib/nokogiri/css/parser.y +250 -245
  127. data/lib/nokogiri/css/parser_extras.rb +54 -49
  128. data/lib/nokogiri/css/syntax_error.rb +3 -1
  129. data/lib/nokogiri/css/tokenizer.rb +5 -3
  130. data/lib/nokogiri/css/tokenizer.rex +3 -2
  131. data/lib/nokogiri/css/xpath_visitor.rb +223 -94
  132. data/lib/nokogiri/css.rb +56 -17
  133. data/lib/nokogiri/decorators/slop.rb +9 -7
  134. data/lib/nokogiri/encoding_handler.rb +57 -0
  135. data/lib/nokogiri/extension.rb +32 -0
  136. data/lib/nokogiri/gumbo.rb +15 -0
  137. data/lib/nokogiri/html.rb +38 -27
  138. data/lib/nokogiri/{html → html4}/builder.rb +4 -2
  139. data/lib/nokogiri/html4/document.rb +214 -0
  140. data/lib/nokogiri/html4/document_fragment.rb +54 -0
  141. data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
  142. data/lib/nokogiri/html4/element_description_defaults.rb +572 -0
  143. data/lib/nokogiri/html4/encoding_reader.rb +121 -0
  144. data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
  145. data/lib/nokogiri/{html → html4}/sax/parser.rb +17 -16
  146. data/lib/nokogiri/html4/sax/parser_context.rb +20 -0
  147. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
  148. data/lib/nokogiri/html4.rb +47 -0
  149. data/lib/nokogiri/html5/document.rb +168 -0
  150. data/lib/nokogiri/html5/document_fragment.rb +90 -0
  151. data/lib/nokogiri/html5/node.rb +98 -0
  152. data/lib/nokogiri/html5.rb +389 -0
  153. data/lib/nokogiri/jruby/dependencies.rb +3 -0
  154. data/lib/nokogiri/jruby/nokogiri_jars.rb +43 -0
  155. data/lib/nokogiri/syntax_error.rb +2 -0
  156. data/lib/nokogiri/version/constant.rb +6 -0
  157. data/lib/nokogiri/version/info.rb +223 -0
  158. data/lib/nokogiri/version.rb +3 -108
  159. data/lib/nokogiri/xml/attr.rb +55 -3
  160. data/lib/nokogiri/xml/attribute_decl.rb +3 -1
  161. data/lib/nokogiri/xml/builder.rb +75 -34
  162. data/lib/nokogiri/xml/cdata.rb +3 -1
  163. data/lib/nokogiri/xml/character_data.rb +2 -0
  164. data/lib/nokogiri/xml/document.rb +312 -126
  165. data/lib/nokogiri/xml/document_fragment.rb +93 -48
  166. data/lib/nokogiri/xml/dtd.rb +4 -2
  167. data/lib/nokogiri/xml/element_content.rb +2 -0
  168. data/lib/nokogiri/xml/element_decl.rb +3 -1
  169. data/lib/nokogiri/xml/entity_decl.rb +4 -2
  170. data/lib/nokogiri/xml/entity_reference.rb +2 -0
  171. data/lib/nokogiri/xml/namespace.rb +45 -0
  172. data/lib/nokogiri/xml/node/save_options.rb +15 -8
  173. data/lib/nokogiri/xml/node.rb +1067 -406
  174. data/lib/nokogiri/xml/node_set.rb +135 -59
  175. data/lib/nokogiri/xml/notation.rb +13 -0
  176. data/lib/nokogiri/xml/parse_options.rb +145 -52
  177. data/lib/nokogiri/xml/pp/character_data.rb +9 -6
  178. data/lib/nokogiri/xml/pp/node.rb +27 -26
  179. data/lib/nokogiri/xml/pp.rb +4 -2
  180. data/lib/nokogiri/xml/processing_instruction.rb +4 -1
  181. data/lib/nokogiri/xml/reader.rb +21 -28
  182. data/lib/nokogiri/xml/relax_ng.rb +8 -2
  183. data/lib/nokogiri/xml/sax/document.rb +45 -49
  184. data/lib/nokogiri/xml/sax/parser.rb +39 -36
  185. data/lib/nokogiri/xml/sax/parser_context.rb +8 -3
  186. data/lib/nokogiri/xml/sax/push_parser.rb +6 -5
  187. data/lib/nokogiri/xml/sax.rb +6 -4
  188. data/lib/nokogiri/xml/schema.rb +19 -9
  189. data/lib/nokogiri/xml/searchable.rb +112 -72
  190. data/lib/nokogiri/xml/syntax_error.rb +6 -4
  191. data/lib/nokogiri/xml/text.rb +2 -0
  192. data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
  193. data/lib/nokogiri/xml/xpath.rb +15 -4
  194. data/lib/nokogiri/xml/xpath_context.rb +3 -3
  195. data/lib/nokogiri/xml.rb +38 -37
  196. data/lib/nokogiri/xslt/stylesheet.rb +3 -1
  197. data/lib/nokogiri/xslt.rb +29 -20
  198. data/lib/nokogiri.rb +48 -72
  199. data/lib/xsd/xmlparser/nokogiri.rb +29 -25
  200. metadata +146 -307
  201. data/ext/nokogiri/html_document.c +0 -170
  202. data/ext/nokogiri/html_document.h +0 -10
  203. data/ext/nokogiri/html_element_description.c +0 -279
  204. data/ext/nokogiri/html_element_description.h +0 -10
  205. data/ext/nokogiri/html_entity_lookup.c +0 -32
  206. data/ext/nokogiri/html_entity_lookup.h +0 -8
  207. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  208. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  209. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  210. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  211. data/ext/nokogiri/xml_attr.h +0 -9
  212. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  213. data/ext/nokogiri/xml_cdata.h +0 -9
  214. data/ext/nokogiri/xml_comment.h +0 -9
  215. data/ext/nokogiri/xml_document.h +0 -23
  216. data/ext/nokogiri/xml_document_fragment.h +0 -10
  217. data/ext/nokogiri/xml_dtd.h +0 -10
  218. data/ext/nokogiri/xml_element_content.h +0 -10
  219. data/ext/nokogiri/xml_element_decl.h +0 -9
  220. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  221. data/ext/nokogiri/xml_entity_decl.h +0 -10
  222. data/ext/nokogiri/xml_entity_reference.h +0 -9
  223. data/ext/nokogiri/xml_io.c +0 -61
  224. data/ext/nokogiri/xml_io.h +0 -11
  225. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  226. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  227. data/ext/nokogiri/xml_namespace.h +0 -14
  228. data/ext/nokogiri/xml_node.h +0 -13
  229. data/ext/nokogiri/xml_node_set.h +0 -12
  230. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  231. data/ext/nokogiri/xml_reader.h +0 -10
  232. data/ext/nokogiri/xml_relax_ng.h +0 -9
  233. data/ext/nokogiri/xml_sax_parser.h +0 -39
  234. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  235. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  236. data/ext/nokogiri/xml_schema.h +0 -9
  237. data/ext/nokogiri/xml_syntax_error.h +0 -13
  238. data/ext/nokogiri/xml_text.h +0 -9
  239. data/ext/nokogiri/xml_xpath_context.h +0 -10
  240. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  241. data/lib/nokogiri/html/document.rb +0 -335
  242. data/lib/nokogiri/html/document_fragment.rb +0 -49
  243. data/lib/nokogiri/html/element_description_defaults.rb +0 -671
  244. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  245. data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  246. data/patches/libxml2/0002-Remove-script-macro-support.patch +0 -40
  247. data/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch +0 -44
  248. data/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +0 -25
  249. data/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch +0 -32
  250. data/ports/archives/libxml2-2.9.10.tar.gz +0 -0
  251. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
@@ -0,0 +1,232 @@
1
+ /*
2
+ * Summary: interface for the encoding conversion functions
3
+ * Description: interface for the encoding conversion functions needed for
4
+ * XML basic encoding and iconv() support.
5
+ *
6
+ * Related specs are
7
+ * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies
8
+ * [ISO-10646] UTF-8 and UTF-16 in Annexes
9
+ * [ISO-8859-1] ISO Latin-1 characters codes.
10
+ * [UNICODE] The Unicode Consortium, "The Unicode Standard --
11
+ * Worldwide Character Encoding -- Version 1.0", Addison-
12
+ * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is
13
+ * described in Unicode Technical Report #4.
14
+ * [US-ASCII] Coded Character Set--7-bit American Standard Code for
15
+ * Information Interchange, ANSI X3.4-1986.
16
+ *
17
+ * Copy: See Copyright for the status of this software.
18
+ *
19
+ * Author: Daniel Veillard
20
+ */
21
+
22
+ #ifndef __XML_CHAR_ENCODING_H__
23
+ #define __XML_CHAR_ENCODING_H__
24
+
25
+ #include <libxml/xmlversion.h>
26
+
27
+ #ifdef LIBXML_ICONV_ENABLED
28
+ #include <iconv.h>
29
+ #endif
30
+
31
+ #ifdef __cplusplus
32
+ extern "C" {
33
+ #endif
34
+
35
+ /*
36
+ * xmlCharEncoding:
37
+ *
38
+ * Predefined values for some standard encodings.
39
+ * Libxml does not do beforehand translation on UTF8 and ISOLatinX.
40
+ * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default.
41
+ *
42
+ * Anything else would have to be translated to UTF8 before being
43
+ * given to the parser itself. The BOM for UTF16 and the encoding
44
+ * declaration are looked at and a converter is looked for at that
45
+ * point. If not found the parser stops here as asked by the XML REC. A
46
+ * converter can be registered by the user using xmlRegisterCharEncodingHandler
47
+ * but the current form doesn't allow stateful transcoding (a serious
48
+ * problem agreed !). If iconv has been found it will be used
49
+ * automatically and allow stateful transcoding, the simplest is then
50
+ * to be sure to enable iconv and to provide iconv libs for the encoding
51
+ * support needed.
52
+ *
53
+ * Note that the generic "UTF-16" is not a predefined value. Instead, only
54
+ * the specific UTF-16LE and UTF-16BE are present.
55
+ */
56
+ typedef enum {
57
+ XML_CHAR_ENCODING_ERROR= -1, /* No char encoding detected */
58
+ XML_CHAR_ENCODING_NONE= 0, /* No char encoding detected */
59
+ XML_CHAR_ENCODING_UTF8= 1, /* UTF-8 */
60
+ XML_CHAR_ENCODING_UTF16LE= 2, /* UTF-16 little endian */
61
+ XML_CHAR_ENCODING_UTF16BE= 3, /* UTF-16 big endian */
62
+ XML_CHAR_ENCODING_UCS4LE= 4, /* UCS-4 little endian */
63
+ XML_CHAR_ENCODING_UCS4BE= 5, /* UCS-4 big endian */
64
+ XML_CHAR_ENCODING_EBCDIC= 6, /* EBCDIC uh! */
65
+ XML_CHAR_ENCODING_UCS4_2143=7, /* UCS-4 unusual ordering */
66
+ XML_CHAR_ENCODING_UCS4_3412=8, /* UCS-4 unusual ordering */
67
+ XML_CHAR_ENCODING_UCS2= 9, /* UCS-2 */
68
+ XML_CHAR_ENCODING_8859_1= 10,/* ISO-8859-1 ISO Latin 1 */
69
+ XML_CHAR_ENCODING_8859_2= 11,/* ISO-8859-2 ISO Latin 2 */
70
+ XML_CHAR_ENCODING_8859_3= 12,/* ISO-8859-3 */
71
+ XML_CHAR_ENCODING_8859_4= 13,/* ISO-8859-4 */
72
+ XML_CHAR_ENCODING_8859_5= 14,/* ISO-8859-5 */
73
+ XML_CHAR_ENCODING_8859_6= 15,/* ISO-8859-6 */
74
+ XML_CHAR_ENCODING_8859_7= 16,/* ISO-8859-7 */
75
+ XML_CHAR_ENCODING_8859_8= 17,/* ISO-8859-8 */
76
+ XML_CHAR_ENCODING_8859_9= 18,/* ISO-8859-9 */
77
+ XML_CHAR_ENCODING_2022_JP= 19,/* ISO-2022-JP */
78
+ XML_CHAR_ENCODING_SHIFT_JIS=20,/* Shift_JIS */
79
+ XML_CHAR_ENCODING_EUC_JP= 21,/* EUC-JP */
80
+ XML_CHAR_ENCODING_ASCII= 22 /* pure ASCII */
81
+ } xmlCharEncoding;
82
+
83
+ /**
84
+ * xmlCharEncodingInputFunc:
85
+ * @out: a pointer to an array of bytes to store the UTF-8 result
86
+ * @outlen: the length of @out
87
+ * @in: a pointer to an array of chars in the original encoding
88
+ * @inlen: the length of @in
89
+ *
90
+ * Take a block of chars in the original encoding and try to convert
91
+ * it to an UTF-8 block of chars out.
92
+ *
93
+ * Returns the number of bytes written, -1 if lack of space, or -2
94
+ * if the transcoding failed.
95
+ * The value of @inlen after return is the number of octets consumed
96
+ * if the return value is positive, else unpredictiable.
97
+ * The value of @outlen after return is the number of octets consumed.
98
+ */
99
+ typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen,
100
+ const unsigned char *in, int *inlen);
101
+
102
+
103
+ /**
104
+ * xmlCharEncodingOutputFunc:
105
+ * @out: a pointer to an array of bytes to store the result
106
+ * @outlen: the length of @out
107
+ * @in: a pointer to an array of UTF-8 chars
108
+ * @inlen: the length of @in
109
+ *
110
+ * Take a block of UTF-8 chars in and try to convert it to another
111
+ * encoding.
112
+ * Note: a first call designed to produce heading info is called with
113
+ * in = NULL. If stateful this should also initialize the encoder state.
114
+ *
115
+ * Returns the number of bytes written, -1 if lack of space, or -2
116
+ * if the transcoding failed.
117
+ * The value of @inlen after return is the number of octets consumed
118
+ * if the return value is positive, else unpredictiable.
119
+ * The value of @outlen after return is the number of octets produced.
120
+ */
121
+ typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
122
+ const unsigned char *in, int *inlen);
123
+
124
+
125
+ /*
126
+ * Block defining the handlers for non UTF-8 encodings.
127
+ * If iconv is supported, there are two extra fields.
128
+ */
129
+ typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
130
+ typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
131
+ struct _xmlCharEncodingHandler {
132
+ char *name;
133
+ xmlCharEncodingInputFunc input;
134
+ xmlCharEncodingOutputFunc output;
135
+ #ifdef LIBXML_ICONV_ENABLED
136
+ iconv_t iconv_in;
137
+ iconv_t iconv_out;
138
+ #endif /* LIBXML_ICONV_ENABLED */
139
+ #ifdef LIBXML_ICU_ENABLED
140
+ struct _uconv_t *uconv_in;
141
+ struct _uconv_t *uconv_out;
142
+ #endif /* LIBXML_ICU_ENABLED */
143
+ };
144
+
145
+ #ifdef __cplusplus
146
+ }
147
+ #endif
148
+ #include <libxml/tree.h>
149
+ #ifdef __cplusplus
150
+ extern "C" {
151
+ #endif
152
+
153
+ /*
154
+ * Interfaces for encoding handlers.
155
+ */
156
+ XML_DEPRECATED
157
+ XMLPUBFUN void XMLCALL
158
+ xmlInitCharEncodingHandlers (void);
159
+ XML_DEPRECATED
160
+ XMLPUBFUN void XMLCALL
161
+ xmlCleanupCharEncodingHandlers (void);
162
+ XMLPUBFUN void XMLCALL
163
+ xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler);
164
+ XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
165
+ xmlGetCharEncodingHandler (xmlCharEncoding enc);
166
+ XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
167
+ xmlFindCharEncodingHandler (const char *name);
168
+ XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
169
+ xmlNewCharEncodingHandler (const char *name,
170
+ xmlCharEncodingInputFunc input,
171
+ xmlCharEncodingOutputFunc output);
172
+
173
+ /*
174
+ * Interfaces for encoding names and aliases.
175
+ */
176
+ XMLPUBFUN int XMLCALL
177
+ xmlAddEncodingAlias (const char *name,
178
+ const char *alias);
179
+ XMLPUBFUN int XMLCALL
180
+ xmlDelEncodingAlias (const char *alias);
181
+ XMLPUBFUN const char * XMLCALL
182
+ xmlGetEncodingAlias (const char *alias);
183
+ XMLPUBFUN void XMLCALL
184
+ xmlCleanupEncodingAliases (void);
185
+ XMLPUBFUN xmlCharEncoding XMLCALL
186
+ xmlParseCharEncoding (const char *name);
187
+ XMLPUBFUN const char * XMLCALL
188
+ xmlGetCharEncodingName (xmlCharEncoding enc);
189
+
190
+ /*
191
+ * Interfaces directly used by the parsers.
192
+ */
193
+ XMLPUBFUN xmlCharEncoding XMLCALL
194
+ xmlDetectCharEncoding (const unsigned char *in,
195
+ int len);
196
+
197
+ XMLPUBFUN int XMLCALL
198
+ xmlCharEncOutFunc (xmlCharEncodingHandler *handler,
199
+ xmlBufferPtr out,
200
+ xmlBufferPtr in);
201
+
202
+ XMLPUBFUN int XMLCALL
203
+ xmlCharEncInFunc (xmlCharEncodingHandler *handler,
204
+ xmlBufferPtr out,
205
+ xmlBufferPtr in);
206
+ XMLPUBFUN int XMLCALL
207
+ xmlCharEncFirstLine (xmlCharEncodingHandler *handler,
208
+ xmlBufferPtr out,
209
+ xmlBufferPtr in);
210
+ XMLPUBFUN int XMLCALL
211
+ xmlCharEncCloseFunc (xmlCharEncodingHandler *handler);
212
+
213
+ /*
214
+ * Export a few useful functions
215
+ */
216
+ #ifdef LIBXML_OUTPUT_ENABLED
217
+ XMLPUBFUN int XMLCALL
218
+ UTF8Toisolat1 (unsigned char *out,
219
+ int *outlen,
220
+ const unsigned char *in,
221
+ int *inlen);
222
+ #endif /* LIBXML_OUTPUT_ENABLED */
223
+ XMLPUBFUN int XMLCALL
224
+ isolat1ToUTF8 (unsigned char *out,
225
+ int *outlen,
226
+ const unsigned char *in,
227
+ int *inlen);
228
+ #ifdef __cplusplus
229
+ }
230
+ #endif
231
+
232
+ #endif /* __XML_CHAR_ENCODING_H__ */
@@ -0,0 +1,153 @@
1
+ /*
2
+ * Summary: interface for the XML entities handling
3
+ * Description: this module provides some of the entity API needed
4
+ * for the parser and applications.
5
+ *
6
+ * Copy: See Copyright for the status of this software.
7
+ *
8
+ * Author: Daniel Veillard
9
+ */
10
+
11
+ #ifndef __XML_ENTITIES_H__
12
+ #define __XML_ENTITIES_H__
13
+
14
+ #include <libxml/xmlversion.h>
15
+ #include <libxml/tree.h>
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ /*
22
+ * The different valid entity types.
23
+ */
24
+ typedef enum {
25
+ XML_INTERNAL_GENERAL_ENTITY = 1,
26
+ XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
27
+ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
28
+ XML_INTERNAL_PARAMETER_ENTITY = 4,
29
+ XML_EXTERNAL_PARAMETER_ENTITY = 5,
30
+ XML_INTERNAL_PREDEFINED_ENTITY = 6
31
+ } xmlEntityType;
32
+
33
+ /*
34
+ * An unit of storage for an entity, contains the string, the value
35
+ * and the linkind data needed for the linking in the hash table.
36
+ */
37
+
38
+ struct _xmlEntity {
39
+ void *_private; /* application data */
40
+ xmlElementType type; /* XML_ENTITY_DECL, must be second ! */
41
+ const xmlChar *name; /* Entity name */
42
+ struct _xmlNode *children; /* First child link */
43
+ struct _xmlNode *last; /* Last child link */
44
+ struct _xmlDtd *parent; /* -> DTD */
45
+ struct _xmlNode *next; /* next sibling link */
46
+ struct _xmlNode *prev; /* previous sibling link */
47
+ struct _xmlDoc *doc; /* the containing document */
48
+
49
+ xmlChar *orig; /* content without ref substitution */
50
+ xmlChar *content; /* content or ndata if unparsed */
51
+ int length; /* the content length */
52
+ xmlEntityType etype; /* The entity type */
53
+ const xmlChar *ExternalID; /* External identifier for PUBLIC */
54
+ const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
55
+
56
+ struct _xmlEntity *nexte; /* unused */
57
+ const xmlChar *URI; /* the full URI as computed */
58
+ int owner; /* does the entity own the childrens */
59
+ int checked; /* was the entity content checked */
60
+ /* this is also used to count entities
61
+ * references done from that entity
62
+ * and if it contains '<' */
63
+ };
64
+
65
+ /*
66
+ * All entities are stored in an hash table.
67
+ * There is 2 separate hash tables for global and parameter entities.
68
+ */
69
+
70
+ typedef struct _xmlHashTable xmlEntitiesTable;
71
+ typedef xmlEntitiesTable *xmlEntitiesTablePtr;
72
+
73
+ /*
74
+ * External functions:
75
+ */
76
+
77
+ #ifdef LIBXML_LEGACY_ENABLED
78
+ XML_DEPRECATED
79
+ XMLPUBFUN void XMLCALL
80
+ xmlInitializePredefinedEntities (void);
81
+ #endif /* LIBXML_LEGACY_ENABLED */
82
+
83
+ XMLPUBFUN xmlEntityPtr XMLCALL
84
+ xmlNewEntity (xmlDocPtr doc,
85
+ const xmlChar *name,
86
+ int type,
87
+ const xmlChar *ExternalID,
88
+ const xmlChar *SystemID,
89
+ const xmlChar *content);
90
+ XMLPUBFUN xmlEntityPtr XMLCALL
91
+ xmlAddDocEntity (xmlDocPtr doc,
92
+ const xmlChar *name,
93
+ int type,
94
+ const xmlChar *ExternalID,
95
+ const xmlChar *SystemID,
96
+ const xmlChar *content);
97
+ XMLPUBFUN xmlEntityPtr XMLCALL
98
+ xmlAddDtdEntity (xmlDocPtr doc,
99
+ const xmlChar *name,
100
+ int type,
101
+ const xmlChar *ExternalID,
102
+ const xmlChar *SystemID,
103
+ const xmlChar *content);
104
+ XMLPUBFUN xmlEntityPtr XMLCALL
105
+ xmlGetPredefinedEntity (const xmlChar *name);
106
+ XMLPUBFUN xmlEntityPtr XMLCALL
107
+ xmlGetDocEntity (const xmlDoc *doc,
108
+ const xmlChar *name);
109
+ XMLPUBFUN xmlEntityPtr XMLCALL
110
+ xmlGetDtdEntity (xmlDocPtr doc,
111
+ const xmlChar *name);
112
+ XMLPUBFUN xmlEntityPtr XMLCALL
113
+ xmlGetParameterEntity (xmlDocPtr doc,
114
+ const xmlChar *name);
115
+ #ifdef LIBXML_LEGACY_ENABLED
116
+ XML_DEPRECATED
117
+ XMLPUBFUN const xmlChar * XMLCALL
118
+ xmlEncodeEntities (xmlDocPtr doc,
119
+ const xmlChar *input);
120
+ #endif /* LIBXML_LEGACY_ENABLED */
121
+ XMLPUBFUN xmlChar * XMLCALL
122
+ xmlEncodeEntitiesReentrant(xmlDocPtr doc,
123
+ const xmlChar *input);
124
+ XMLPUBFUN xmlChar * XMLCALL
125
+ xmlEncodeSpecialChars (const xmlDoc *doc,
126
+ const xmlChar *input);
127
+ XMLPUBFUN xmlEntitiesTablePtr XMLCALL
128
+ xmlCreateEntitiesTable (void);
129
+ #ifdef LIBXML_TREE_ENABLED
130
+ XMLPUBFUN xmlEntitiesTablePtr XMLCALL
131
+ xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
132
+ #endif /* LIBXML_TREE_ENABLED */
133
+ XMLPUBFUN void XMLCALL
134
+ xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
135
+ #ifdef LIBXML_OUTPUT_ENABLED
136
+ XMLPUBFUN void XMLCALL
137
+ xmlDumpEntitiesTable (xmlBufferPtr buf,
138
+ xmlEntitiesTablePtr table);
139
+ XMLPUBFUN void XMLCALL
140
+ xmlDumpEntityDecl (xmlBufferPtr buf,
141
+ xmlEntityPtr ent);
142
+ #endif /* LIBXML_OUTPUT_ENABLED */
143
+ #ifdef LIBXML_LEGACY_ENABLED
144
+ XMLPUBFUN void XMLCALL
145
+ xmlCleanupPredefinedEntities(void);
146
+ #endif /* LIBXML_LEGACY_ENABLED */
147
+
148
+
149
+ #ifdef __cplusplus
150
+ }
151
+ #endif
152
+
153
+ # endif /* __XML_ENTITIES_H__ */