nokogiri 1.5.10 → 1.12.5

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 (328) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1903 -0
  4. data/LICENSE.md +9 -0
  5. data/README.md +278 -0
  6. data/bin/nokogiri +50 -10
  7. data/dependencies.yml +74 -0
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +944 -100
  10. data/ext/nokogiri/gumbo.c +584 -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 +120 -0
  15. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  16. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  17. data/ext/nokogiri/nokogiri.c +232 -87
  18. data/ext/nokogiri/nokogiri.h +188 -129
  19. data/ext/nokogiri/test_global_handlers.c +40 -0
  20. data/ext/nokogiri/xml_attr.c +49 -40
  21. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  22. data/ext/nokogiri/xml_cdata.c +24 -23
  23. data/ext/nokogiri/xml_comment.c +29 -21
  24. data/ext/nokogiri/xml_document.c +305 -201
  25. data/ext/nokogiri/xml_document_fragment.c +13 -15
  26. data/ext/nokogiri/xml_dtd.c +54 -48
  27. data/ext/nokogiri/xml_element_content.c +31 -26
  28. data/ext/nokogiri/xml_element_decl.c +22 -22
  29. data/ext/nokogiri/xml_encoding_handler.c +30 -19
  30. data/ext/nokogiri/xml_entity_decl.c +32 -30
  31. data/ext/nokogiri/xml_entity_reference.c +16 -18
  32. data/ext/nokogiri/xml_namespace.c +74 -32
  33. data/ext/nokogiri/xml_node.c +808 -503
  34. data/ext/nokogiri/xml_node_set.c +239 -208
  35. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  36. data/ext/nokogiri/xml_reader.c +198 -186
  37. data/ext/nokogiri/xml_relax_ng.c +52 -28
  38. data/ext/nokogiri/xml_sax_parser.c +123 -125
  39. data/ext/nokogiri/xml_sax_parser_context.c +138 -79
  40. data/ext/nokogiri/xml_sax_push_parser.c +88 -35
  41. data/ext/nokogiri/xml_schema.c +112 -33
  42. data/ext/nokogiri/xml_syntax_error.c +50 -23
  43. data/ext/nokogiri/xml_text.c +14 -18
  44. data/ext/nokogiri/xml_xpath_context.c +162 -98
  45. data/ext/nokogiri/xslt_stylesheet.c +162 -168
  46. data/gumbo-parser/CHANGES.md +63 -0
  47. data/gumbo-parser/Makefile +101 -0
  48. data/gumbo-parser/THANKS +27 -0
  49. data/gumbo-parser/src/Makefile +34 -0
  50. data/gumbo-parser/src/README.md +41 -0
  51. data/gumbo-parser/src/ascii.c +75 -0
  52. data/gumbo-parser/src/ascii.h +115 -0
  53. data/gumbo-parser/src/attribute.c +42 -0
  54. data/gumbo-parser/src/attribute.h +17 -0
  55. data/gumbo-parser/src/char_ref.c +22225 -0
  56. data/gumbo-parser/src/char_ref.h +29 -0
  57. data/gumbo-parser/src/char_ref.rl +2154 -0
  58. data/gumbo-parser/src/error.c +626 -0
  59. data/gumbo-parser/src/error.h +148 -0
  60. data/gumbo-parser/src/foreign_attrs.c +104 -0
  61. data/gumbo-parser/src/foreign_attrs.gperf +27 -0
  62. data/gumbo-parser/src/gumbo.h +943 -0
  63. data/gumbo-parser/src/insertion_mode.h +33 -0
  64. data/gumbo-parser/src/macros.h +91 -0
  65. data/gumbo-parser/src/parser.c +4886 -0
  66. data/gumbo-parser/src/parser.h +41 -0
  67. data/gumbo-parser/src/replacement.h +33 -0
  68. data/gumbo-parser/src/string_buffer.c +103 -0
  69. data/gumbo-parser/src/string_buffer.h +68 -0
  70. data/gumbo-parser/src/string_piece.c +48 -0
  71. data/gumbo-parser/src/svg_attrs.c +174 -0
  72. data/gumbo-parser/src/svg_attrs.gperf +77 -0
  73. data/gumbo-parser/src/svg_tags.c +137 -0
  74. data/gumbo-parser/src/svg_tags.gperf +55 -0
  75. data/gumbo-parser/src/tag.c +222 -0
  76. data/gumbo-parser/src/tag_lookup.c +382 -0
  77. data/gumbo-parser/src/tag_lookup.gperf +169 -0
  78. data/gumbo-parser/src/tag_lookup.h +13 -0
  79. data/gumbo-parser/src/token_buffer.c +79 -0
  80. data/gumbo-parser/src/token_buffer.h +71 -0
  81. data/gumbo-parser/src/token_type.h +17 -0
  82. data/gumbo-parser/src/tokenizer.c +3463 -0
  83. data/gumbo-parser/src/tokenizer.h +112 -0
  84. data/gumbo-parser/src/tokenizer_states.h +339 -0
  85. data/gumbo-parser/src/utf8.c +245 -0
  86. data/gumbo-parser/src/utf8.h +164 -0
  87. data/gumbo-parser/src/util.c +68 -0
  88. data/gumbo-parser/src/util.h +30 -0
  89. data/gumbo-parser/src/vector.c +111 -0
  90. data/gumbo-parser/src/vector.h +45 -0
  91. data/lib/nokogiri/css/node.rb +1 -50
  92. data/lib/nokogiri/css/parser.rb +317 -286
  93. data/lib/nokogiri/css/parser.y +57 -43
  94. data/lib/nokogiri/css/parser_extras.rb +39 -36
  95. data/lib/nokogiri/css/syntax_error.rb +2 -1
  96. data/lib/nokogiri/css/tokenizer.rb +105 -103
  97. data/lib/nokogiri/css/tokenizer.rex +5 -5
  98. data/lib/nokogiri/css/xpath_visitor.rb +137 -48
  99. data/lib/nokogiri/css.rb +15 -14
  100. data/lib/nokogiri/decorators/slop.rb +13 -5
  101. data/lib/nokogiri/extension.rb +31 -0
  102. data/lib/nokogiri/gumbo.rb +14 -0
  103. data/lib/nokogiri/html.rb +32 -27
  104. data/lib/nokogiri/{html → html4}/builder.rb +3 -2
  105. data/lib/nokogiri/{html → html4}/document.rb +118 -50
  106. data/lib/nokogiri/{html → html4}/document_fragment.rb +20 -11
  107. data/lib/nokogiri/{html → html4}/element_description.rb +2 -1
  108. data/lib/nokogiri/{html → html4}/element_description_defaults.rb +2 -1
  109. data/lib/nokogiri/{html → html4}/entity_lookup.rb +2 -1
  110. data/lib/nokogiri/{html → html4}/sax/parser.rb +22 -14
  111. data/lib/nokogiri/html4/sax/parser_context.rb +19 -0
  112. data/lib/nokogiri/html4/sax/push_parser.rb +37 -0
  113. data/lib/nokogiri/html4.rb +40 -0
  114. data/lib/nokogiri/html5/document.rb +74 -0
  115. data/lib/nokogiri/html5/document_fragment.rb +80 -0
  116. data/lib/nokogiri/html5/node.rb +93 -0
  117. data/lib/nokogiri/html5.rb +473 -0
  118. data/lib/nokogiri/jruby/dependencies.rb +20 -0
  119. data/lib/nokogiri/syntax_error.rb +1 -0
  120. data/lib/nokogiri/version/constant.rb +5 -0
  121. data/lib/nokogiri/version/info.rb +215 -0
  122. data/lib/nokogiri/version.rb +3 -91
  123. data/lib/nokogiri/xml/attr.rb +1 -0
  124. data/lib/nokogiri/xml/attribute_decl.rb +1 -0
  125. data/lib/nokogiri/xml/builder.rb +75 -33
  126. data/lib/nokogiri/xml/cdata.rb +1 -0
  127. data/lib/nokogiri/xml/character_data.rb +1 -0
  128. data/lib/nokogiri/xml/document.rb +157 -54
  129. data/lib/nokogiri/xml/document_fragment.rb +55 -8
  130. data/lib/nokogiri/xml/dtd.rb +15 -4
  131. data/lib/nokogiri/xml/element_content.rb +1 -0
  132. data/lib/nokogiri/xml/element_decl.rb +1 -0
  133. data/lib/nokogiri/xml/entity_decl.rb +1 -0
  134. data/lib/nokogiri/xml/entity_reference.rb +19 -0
  135. data/lib/nokogiri/xml/namespace.rb +1 -0
  136. data/lib/nokogiri/xml/node/save_options.rb +2 -1
  137. data/lib/nokogiri/xml/node.rb +712 -431
  138. data/lib/nokogiri/xml/node_set.rb +140 -123
  139. data/lib/nokogiri/xml/notation.rb +1 -0
  140. data/lib/nokogiri/xml/parse_options.rb +31 -0
  141. data/lib/nokogiri/xml/pp/character_data.rb +1 -0
  142. data/lib/nokogiri/xml/pp/node.rb +1 -0
  143. data/lib/nokogiri/xml/pp.rb +3 -2
  144. data/lib/nokogiri/xml/processing_instruction.rb +1 -0
  145. data/lib/nokogiri/xml/reader.rb +9 -12
  146. data/lib/nokogiri/xml/relax_ng.rb +7 -2
  147. data/lib/nokogiri/xml/sax/document.rb +25 -30
  148. data/lib/nokogiri/xml/sax/parser.rb +8 -8
  149. data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
  150. data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
  151. data/lib/nokogiri/xml/sax.rb +5 -4
  152. data/lib/nokogiri/xml/schema.rb +13 -4
  153. data/lib/nokogiri/xml/searchable.rb +239 -0
  154. data/lib/nokogiri/xml/syntax_error.rb +25 -1
  155. data/lib/nokogiri/xml/text.rb +1 -0
  156. data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
  157. data/lib/nokogiri/xml/xpath.rb +4 -5
  158. data/lib/nokogiri/xml/xpath_context.rb +1 -0
  159. data/lib/nokogiri/xml.rb +37 -35
  160. data/lib/nokogiri/xslt/stylesheet.rb +2 -1
  161. data/lib/nokogiri/xslt.rb +17 -16
  162. data/lib/nokogiri.rb +55 -58
  163. data/lib/xsd/xmlparser/nokogiri.rb +1 -0
  164. data/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
  165. data/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  166. data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
  167. data/patches/libxml2/0004-use-glibc-strlen.patch +53 -0
  168. data/patches/libxml2/0005-avoid-isnan-isinf.patch +81 -0
  169. data/patches/libxml2/0006-update-automake-files-for-arm64.patch +2511 -0
  170. data/patches/libxml2/0007-Fix-XPath-recursion-limit.patch +31 -0
  171. data/patches/libxslt/0001-update-automake-files-for-arm64.patch +2511 -0
  172. data/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch +19 -0
  173. data/ports/archives/libxml2-2.9.12.tar.gz +0 -0
  174. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
  175. metadata +307 -459
  176. data/.autotest +0 -26
  177. data/.gemtest +0 -0
  178. data/CHANGELOG.ja.rdoc +0 -785
  179. data/CHANGELOG.rdoc +0 -783
  180. data/C_CODING_STYLE.rdoc +0 -33
  181. data/Manifest.txt +0 -303
  182. data/README.ja.rdoc +0 -106
  183. data/README.rdoc +0 -175
  184. data/ROADMAP.md +0 -90
  185. data/Rakefile +0 -228
  186. data/STANDARD_RESPONSES.md +0 -47
  187. data/Y_U_NO_GEMSPEC.md +0 -155
  188. data/build_all +0 -105
  189. data/ext/nokogiri/html_document.c +0 -170
  190. data/ext/nokogiri/html_document.h +0 -10
  191. data/ext/nokogiri/html_element_description.c +0 -279
  192. data/ext/nokogiri/html_element_description.h +0 -10
  193. data/ext/nokogiri/html_entity_lookup.c +0 -32
  194. data/ext/nokogiri/html_entity_lookup.h +0 -8
  195. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  196. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  197. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  198. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  199. data/ext/nokogiri/xml_attr.h +0 -9
  200. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  201. data/ext/nokogiri/xml_cdata.h +0 -9
  202. data/ext/nokogiri/xml_comment.h +0 -9
  203. data/ext/nokogiri/xml_document.h +0 -23
  204. data/ext/nokogiri/xml_document_fragment.h +0 -10
  205. data/ext/nokogiri/xml_dtd.h +0 -10
  206. data/ext/nokogiri/xml_element_content.h +0 -10
  207. data/ext/nokogiri/xml_element_decl.h +0 -9
  208. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  209. data/ext/nokogiri/xml_entity_decl.h +0 -10
  210. data/ext/nokogiri/xml_entity_reference.h +0 -9
  211. data/ext/nokogiri/xml_io.c +0 -56
  212. data/ext/nokogiri/xml_io.h +0 -11
  213. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  214. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  215. data/ext/nokogiri/xml_namespace.h +0 -13
  216. data/ext/nokogiri/xml_node.h +0 -13
  217. data/ext/nokogiri/xml_node_set.h +0 -14
  218. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  219. data/ext/nokogiri/xml_reader.h +0 -10
  220. data/ext/nokogiri/xml_relax_ng.h +0 -9
  221. data/ext/nokogiri/xml_sax_parser.h +0 -39
  222. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  223. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  224. data/ext/nokogiri/xml_schema.h +0 -9
  225. data/ext/nokogiri/xml_syntax_error.h +0 -13
  226. data/ext/nokogiri/xml_text.h +0 -9
  227. data/ext/nokogiri/xml_xpath_context.h +0 -10
  228. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  229. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  230. data/lib/nokogiri/html/sax/push_parser.rb +0 -16
  231. data/tasks/cross_compile.rb +0 -150
  232. data/tasks/nokogiri.org.rb +0 -24
  233. data/tasks/test.rb +0 -95
  234. data/test/css/test_nthiness.rb +0 -159
  235. data/test/css/test_parser.rb +0 -341
  236. data/test/css/test_tokenizer.rb +0 -198
  237. data/test/css/test_xpath_visitor.rb +0 -91
  238. data/test/decorators/test_slop.rb +0 -16
  239. data/test/files/2ch.html +0 -108
  240. data/test/files/address_book.rlx +0 -12
  241. data/test/files/address_book.xml +0 -10
  242. data/test/files/bar/bar.xsd +0 -4
  243. data/test/files/dont_hurt_em_why.xml +0 -422
  244. data/test/files/encoding.html +0 -82
  245. data/test/files/encoding.xhtml +0 -84
  246. data/test/files/exslt.xml +0 -8
  247. data/test/files/exslt.xslt +0 -35
  248. data/test/files/foo/foo.xsd +0 -4
  249. data/test/files/metacharset.html +0 -10
  250. data/test/files/noencoding.html +0 -47
  251. data/test/files/po.xml +0 -32
  252. data/test/files/po.xsd +0 -66
  253. data/test/files/shift_jis.html +0 -10
  254. data/test/files/shift_jis.xml +0 -5
  255. data/test/files/snuggles.xml +0 -3
  256. data/test/files/staff.dtd +0 -10
  257. data/test/files/staff.xml +0 -59
  258. data/test/files/staff.xslt +0 -32
  259. data/test/files/test_document_url/bar.xml +0 -2
  260. data/test/files/test_document_url/document.dtd +0 -4
  261. data/test/files/test_document_url/document.xml +0 -6
  262. data/test/files/tlm.html +0 -850
  263. data/test/files/to_be_xincluded.xml +0 -2
  264. data/test/files/valid_bar.xml +0 -2
  265. data/test/files/xinclude.xml +0 -4
  266. data/test/helper.rb +0 -154
  267. data/test/html/sax/test_parser.rb +0 -141
  268. data/test/html/sax/test_parser_context.rb +0 -46
  269. data/test/html/test_builder.rb +0 -164
  270. data/test/html/test_document.rb +0 -552
  271. data/test/html/test_document_encoding.rb +0 -138
  272. data/test/html/test_document_fragment.rb +0 -261
  273. data/test/html/test_element_description.rb +0 -105
  274. data/test/html/test_named_characters.rb +0 -14
  275. data/test/html/test_node.rb +0 -196
  276. data/test/html/test_node_encoding.rb +0 -27
  277. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  278. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  279. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  280. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -66
  281. data/test/test_convert_xpath.rb +0 -135
  282. data/test/test_css_cache.rb +0 -45
  283. data/test/test_encoding_handler.rb +0 -46
  284. data/test/test_memory_leak.rb +0 -156
  285. data/test/test_nokogiri.rb +0 -132
  286. data/test/test_reader.rb +0 -555
  287. data/test/test_soap4r_sax.rb +0 -52
  288. data/test/test_xslt_transforms.rb +0 -254
  289. data/test/xml/node/test_save_options.rb +0 -28
  290. data/test/xml/node/test_subclass.rb +0 -44
  291. data/test/xml/sax/test_parser.rb +0 -366
  292. data/test/xml/sax/test_parser_context.rb +0 -106
  293. data/test/xml/sax/test_push_parser.rb +0 -157
  294. data/test/xml/test_attr.rb +0 -64
  295. data/test/xml/test_attribute_decl.rb +0 -86
  296. data/test/xml/test_builder.rb +0 -306
  297. data/test/xml/test_c14n.rb +0 -151
  298. data/test/xml/test_cdata.rb +0 -48
  299. data/test/xml/test_comment.rb +0 -29
  300. data/test/xml/test_document.rb +0 -828
  301. data/test/xml/test_document_encoding.rb +0 -28
  302. data/test/xml/test_document_fragment.rb +0 -223
  303. data/test/xml/test_dtd.rb +0 -103
  304. data/test/xml/test_dtd_encoding.rb +0 -33
  305. data/test/xml/test_element_content.rb +0 -56
  306. data/test/xml/test_element_decl.rb +0 -73
  307. data/test/xml/test_entity_decl.rb +0 -122
  308. data/test/xml/test_entity_reference.rb +0 -245
  309. data/test/xml/test_namespace.rb +0 -95
  310. data/test/xml/test_node.rb +0 -1137
  311. data/test/xml/test_node_attributes.rb +0 -96
  312. data/test/xml/test_node_encoding.rb +0 -107
  313. data/test/xml/test_node_inheritance.rb +0 -32
  314. data/test/xml/test_node_reparenting.rb +0 -374
  315. data/test/xml/test_node_set.rb +0 -755
  316. data/test/xml/test_parse_options.rb +0 -64
  317. data/test/xml/test_processing_instruction.rb +0 -30
  318. data/test/xml/test_reader_encoding.rb +0 -142
  319. data/test/xml/test_relax_ng.rb +0 -60
  320. data/test/xml/test_schema.rb +0 -103
  321. data/test/xml/test_syntax_error.rb +0 -12
  322. data/test/xml/test_text.rb +0 -45
  323. data/test/xml/test_unparented_node.rb +0 -422
  324. data/test/xml/test_xinclude.rb +0 -83
  325. data/test/xml/test_xpath.rb +0 -295
  326. data/test/xslt/test_custom_functions.rb +0 -133
  327. data/test/xslt/test_exception_handling.rb +0 -37
  328. data/test_all +0 -81
@@ -1,4 +1,6 @@
1
- #include <xml_document_fragment.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriXmlDocumentFragment;
2
4
 
3
5
  /*
4
6
  * call-seq:
@@ -6,7 +8,8 @@
6
8
  *
7
9
  * Create a new DocumentFragment element on the +document+
8
10
  */
9
- static VALUE new(int argc, VALUE *argv, VALUE klass)
11
+ static VALUE
12
+ new (int argc, VALUE *argv, VALUE klass)
10
13
  {
11
14
  xmlDocPtr xml_doc;
12
15
  xmlNodePtr node;
@@ -20,29 +23,24 @@ static VALUE new(int argc, VALUE *argv, VALUE klass)
20
23
 
21
24
  node = xmlNewDocFragment(xml_doc->doc);
22
25
 
23
- nokogiri_root_node(node);
26
+ noko_xml_document_pin_node(node);
24
27
 
25
- rb_node = Nokogiri_wrap_xml_node(klass, node);
28
+ rb_node = noko_xml_node_wrap(klass, node);
26
29
  rb_obj_call_init(rb_node, argc, argv);
27
30
 
28
- if(rb_block_given_p()) rb_yield(rb_node);
31
+ if (rb_block_given_p()) { rb_yield(rb_node); }
29
32
 
30
33
  return rb_node;
31
34
  }
32
35
 
33
- VALUE cNokogiriXmlDocumentFragment;
34
- void init_xml_document_fragment()
36
+ void
37
+ noko_init_xml_document_fragment()
35
38
  {
36
- VALUE nokogiri = rb_define_module("Nokogiri");
37
- VALUE xml = rb_define_module_under(nokogiri, "XML");
38
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
39
-
39
+ assert(cNokogiriXmlNode);
40
40
  /*
41
41
  * DocumentFragment represents a DocumentFragment node in an xml document.
42
42
  */
43
- VALUE klass = rb_define_class_under(xml, "DocumentFragment", node);
44
-
45
- cNokogiriXmlDocumentFragment = klass;
43
+ cNokogiriXmlDocumentFragment = rb_define_class_under(mNokogiriXml, "DocumentFragment", cNokogiriXmlNode);
46
44
 
47
- rb_define_singleton_method(klass, "new", new, -1);
45
+ rb_define_singleton_method(cNokogiriXmlDocumentFragment, "new", new, -1);
48
46
  }
@@ -1,30 +1,35 @@
1
- #include <xml_dtd.h>
1
+ #include <nokogiri.h>
2
2
 
3
- static void notation_copier(void *payload, void *data, xmlChar *name)
3
+ VALUE cNokogiriXmlDtd;
4
+
5
+ static void
6
+ notation_copier(void *c_notation_ptr, void *rb_hash_ptr, const xmlChar *name)
4
7
  {
5
- VALUE hash = (VALUE)data;
6
- VALUE klass = rb_const_get(mNokogiriXml, rb_intern("Notation"));
8
+ VALUE rb_hash = (VALUE)rb_hash_ptr;
9
+ xmlNotationPtr c_notation = (xmlNotationPtr)c_notation_ptr;
10
+ VALUE rb_notation;
11
+ VALUE cNokogiriXmlNotation;
12
+ VALUE rb_constructor_args[3];
7
13
 
8
- xmlNotationPtr c_notation = (xmlNotationPtr)payload;
9
- VALUE notation;
10
- VALUE argv[3];
11
- argv[0] = (c_notation->name ? NOKOGIRI_STR_NEW2(c_notation->name) : Qnil);
12
- argv[1] = (c_notation->PublicID ? NOKOGIRI_STR_NEW2(c_notation->PublicID) : Qnil);
13
- argv[2] = (c_notation->SystemID ? NOKOGIRI_STR_NEW2(c_notation->SystemID) : Qnil);
14
+ rb_constructor_args[0] = (c_notation->name ? NOKOGIRI_STR_NEW2(c_notation->name) : Qnil);
15
+ rb_constructor_args[1] = (c_notation->PublicID ? NOKOGIRI_STR_NEW2(c_notation->PublicID) : Qnil);
16
+ rb_constructor_args[2] = (c_notation->SystemID ? NOKOGIRI_STR_NEW2(c_notation->SystemID) : Qnil);
14
17
 
15
- notation = rb_class_new_instance(3, argv, klass);
18
+ cNokogiriXmlNotation = rb_const_get_at(mNokogiriXml, rb_intern("Notation"));
19
+ rb_notation = rb_class_new_instance(3, rb_constructor_args, cNokogiriXmlNotation);
16
20
 
17
- rb_hash_aset(hash, NOKOGIRI_STR_NEW2(name),notation);
21
+ rb_hash_aset(rb_hash, NOKOGIRI_STR_NEW2(name), rb_notation);
18
22
  }
19
23
 
20
- static void element_copier(void *_payload, void *data, xmlChar *name)
24
+ static void
25
+ element_copier(void *c_node_ptr, void *rb_hash_ptr, const xmlChar *c_name)
21
26
  {
22
- VALUE hash = (VALUE)data;
23
- xmlNodePtr payload = (xmlNodePtr)_payload;
27
+ VALUE rb_hash = (VALUE)rb_hash_ptr;
28
+ xmlNodePtr c_node = (xmlNodePtr)c_node_ptr;
24
29
 
25
- VALUE element = Nokogiri_wrap_xml_node(Qnil, payload);
30
+ VALUE rb_node = noko_xml_node_wrap(Qnil, c_node);
26
31
 
27
- rb_hash_aset(hash, NOKOGIRI_STR_NEW2(name), element);
32
+ rb_hash_aset(rb_hash, NOKOGIRI_STR_NEW2(c_name), rb_node);
28
33
  }
29
34
 
30
35
  /*
@@ -33,14 +38,15 @@ static void element_copier(void *_payload, void *data, xmlChar *name)
33
38
  *
34
39
  * Get a hash of the elements for this DTD.
35
40
  */
36
- static VALUE entities(VALUE self)
41
+ static VALUE
42
+ entities(VALUE self)
37
43
  {
38
44
  xmlDtdPtr dtd;
39
45
  VALUE hash;
40
46
 
41
47
  Data_Get_Struct(self, xmlDtd, dtd);
42
48
 
43
- if(!dtd->entities) return Qnil;
49
+ if (!dtd->entities) { return Qnil; }
44
50
 
45
51
  hash = rb_hash_new();
46
52
 
@@ -55,14 +61,15 @@ static VALUE entities(VALUE self)
55
61
  *
56
62
  * Get a hash of the notations for this DTD.
57
63
  */
58
- static VALUE notations(VALUE self)
64
+ static VALUE
65
+ notations(VALUE self)
59
66
  {
60
67
  xmlDtdPtr dtd;
61
68
  VALUE hash;
62
69
 
63
70
  Data_Get_Struct(self, xmlDtd, dtd);
64
71
 
65
- if(!dtd->notations) return Qnil;
72
+ if (!dtd->notations) { return Qnil; }
66
73
 
67
74
  hash = rb_hash_new();
68
75
 
@@ -77,7 +84,8 @@ static VALUE notations(VALUE self)
77
84
  *
78
85
  * Get a hash of the attributes for this DTD.
79
86
  */
80
- static VALUE attributes(VALUE self)
87
+ static VALUE
88
+ attributes(VALUE self)
81
89
  {
82
90
  xmlDtdPtr dtd;
83
91
  VALUE hash;
@@ -86,7 +94,7 @@ static VALUE attributes(VALUE self)
86
94
 
87
95
  hash = rb_hash_new();
88
96
 
89
- if(!dtd->attributes) return hash;
97
+ if (!dtd->attributes) { return hash; }
90
98
 
91
99
  xmlHashScan((xmlHashTablePtr)dtd->attributes, element_copier, (void *)hash);
92
100
 
@@ -99,14 +107,15 @@ static VALUE attributes(VALUE self)
99
107
  *
100
108
  * Get a hash of the elements for this DTD.
101
109
  */
102
- static VALUE elements(VALUE self)
110
+ static VALUE
111
+ elements(VALUE self)
103
112
  {
104
113
  xmlDtdPtr dtd;
105
114
  VALUE hash;
106
115
 
107
116
  Data_Get_Struct(self, xmlDtd, dtd);
108
117
 
109
- if(!dtd->elements) return Qnil;
118
+ if (!dtd->elements) { return Qnil; }
110
119
 
111
120
  hash = rb_hash_new();
112
121
 
@@ -121,7 +130,8 @@ static VALUE elements(VALUE self)
121
130
  *
122
131
  * Validate +document+ returning a list of errors
123
132
  */
124
- static VALUE validate(VALUE self, VALUE document)
133
+ static VALUE
134
+ validate(VALUE self, VALUE document)
125
135
  {
126
136
  xmlDocPtr doc;
127
137
  xmlDtdPtr dtd;
@@ -151,12 +161,13 @@ static VALUE validate(VALUE self, VALUE document)
151
161
  *
152
162
  * Get the System ID for this DTD
153
163
  */
154
- static VALUE system_id(VALUE self)
164
+ static VALUE
165
+ system_id(VALUE self)
155
166
  {
156
167
  xmlDtdPtr dtd;
157
168
  Data_Get_Struct(self, xmlDtd, dtd);
158
169
 
159
- if(!dtd->SystemID) return Qnil;
170
+ if (!dtd->SystemID) { return Qnil; }
160
171
 
161
172
  return NOKOGIRI_STR_NEW2(dtd->SystemID);
162
173
  }
@@ -167,36 +178,31 @@ static VALUE system_id(VALUE self)
167
178
  *
168
179
  * Get the External ID for this DTD
169
180
  */
170
- static VALUE external_id(VALUE self)
181
+ static VALUE
182
+ external_id(VALUE self)
171
183
  {
172
184
  xmlDtdPtr dtd;
173
185
  Data_Get_Struct(self, xmlDtd, dtd);
174
186
 
175
- if(!dtd->ExternalID) return Qnil;
187
+ if (!dtd->ExternalID) { return Qnil; }
176
188
 
177
189
  return NOKOGIRI_STR_NEW2(dtd->ExternalID);
178
190
  }
179
191
 
180
- VALUE cNokogiriXmlDtd;
181
-
182
- void init_xml_dtd()
192
+ void
193
+ noko_init_xml_dtd()
183
194
  {
184
- VALUE nokogiri = rb_define_module("Nokogiri");
185
- VALUE xml = rb_define_module_under(nokogiri, "XML");
186
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
187
-
195
+ assert(cNokogiriXmlNode);
188
196
  /*
189
197
  * Nokogiri::XML::DTD wraps DTD nodes in an XML document
190
198
  */
191
- VALUE klass = rb_define_class_under(xml, "DTD", node);
192
-
193
- cNokogiriXmlDtd = klass;
194
-
195
- rb_define_method(klass, "notations", notations, 0);
196
- rb_define_method(klass, "elements", elements, 0);
197
- rb_define_method(klass, "entities", entities, 0);
198
- rb_define_method(klass, "validate", validate, 1);
199
- rb_define_method(klass, "attributes", attributes, 0);
200
- rb_define_method(klass, "system_id", system_id, 0);
201
- rb_define_method(klass, "external_id", external_id, 0);
199
+ cNokogiriXmlDtd = rb_define_class_under(mNokogiriXml, "DTD", cNokogiriXmlNode);
200
+
201
+ rb_define_method(cNokogiriXmlDtd, "notations", notations, 0);
202
+ rb_define_method(cNokogiriXmlDtd, "elements", elements, 0);
203
+ rb_define_method(cNokogiriXmlDtd, "entities", entities, 0);
204
+ rb_define_method(cNokogiriXmlDtd, "validate", validate, 1);
205
+ rb_define_method(cNokogiriXmlDtd, "attributes", attributes, 0);
206
+ rb_define_method(cNokogiriXmlDtd, "system_id", system_id, 0);
207
+ rb_define_method(cNokogiriXmlDtd, "external_id", external_id, 0);
202
208
  }
@@ -1,4 +1,4 @@
1
- #include <xml_element_content.h>
1
+ #include <nokogiri.h>
2
2
 
3
3
  VALUE cNokogiriXmlElementContent;
4
4
 
@@ -8,12 +8,13 @@ VALUE cNokogiriXmlElementContent;
8
8
  *
9
9
  * Get the require element +name+
10
10
  */
11
- static VALUE get_name(VALUE self)
11
+ static VALUE
12
+ get_name(VALUE self)
12
13
  {
13
14
  xmlElementContentPtr elem;
14
15
  Data_Get_Struct(self, xmlElementContent, elem);
15
16
 
16
- if(!elem->name) return Qnil;
17
+ if (!elem->name) { return Qnil; }
17
18
  return NOKOGIRI_STR_NEW2(elem->name);
18
19
  }
19
20
 
@@ -24,7 +25,8 @@ static VALUE get_name(VALUE self)
24
25
  * Get the element content +type+. Possible values are PCDATA, ELEMENT, SEQ,
25
26
  * or OR.
26
27
  */
27
- static VALUE get_type(VALUE self)
28
+ static VALUE
29
+ get_type(VALUE self)
28
30
  {
29
31
  xmlElementContentPtr elem;
30
32
  Data_Get_Struct(self, xmlElementContent, elem);
@@ -38,13 +40,14 @@ static VALUE get_type(VALUE self)
38
40
  *
39
41
  * Get the first child.
40
42
  */
41
- static VALUE get_c1(VALUE self)
43
+ static VALUE
44
+ get_c1(VALUE self)
42
45
  {
43
46
  xmlElementContentPtr elem;
44
47
  Data_Get_Struct(self, xmlElementContent, elem);
45
48
 
46
- if(!elem->c1) return Qnil;
47
- return Nokogiri_wrap_element_content(rb_iv_get(self, "@document"), elem->c1);
49
+ if (!elem->c1) { return Qnil; }
50
+ return noko_xml_element_content_wrap(rb_iv_get(self, "@document"), elem->c1);
48
51
  }
49
52
 
50
53
  /*
@@ -53,13 +56,14 @@ static VALUE get_c1(VALUE self)
53
56
  *
54
57
  * Get the first child.
55
58
  */
56
- static VALUE get_c2(VALUE self)
59
+ static VALUE
60
+ get_c2(VALUE self)
57
61
  {
58
62
  xmlElementContentPtr elem;
59
63
  Data_Get_Struct(self, xmlElementContent, elem);
60
64
 
61
- if(!elem->c2) return Qnil;
62
- return Nokogiri_wrap_element_content(rb_iv_get(self, "@document"), elem->c2);
65
+ if (!elem->c2) { return Qnil; }
66
+ return noko_xml_element_content_wrap(rb_iv_get(self, "@document"), elem->c2);
63
67
  }
64
68
 
65
69
  /*
@@ -69,7 +73,8 @@ static VALUE get_c2(VALUE self)
69
73
  * Get the element content +occur+ flag. Possible values are ONCE, OPT, MULT
70
74
  * or PLUS.
71
75
  */
72
- static VALUE get_occur(VALUE self)
76
+ static VALUE
77
+ get_occur(VALUE self)
73
78
  {
74
79
  xmlElementContentPtr elem;
75
80
  Data_Get_Struct(self, xmlElementContent, elem);
@@ -83,17 +88,19 @@ static VALUE get_occur(VALUE self)
83
88
  *
84
89
  * Get the element content namespace +prefix+.
85
90
  */
86
- static VALUE get_prefix(VALUE self)
91
+ static VALUE
92
+ get_prefix(VALUE self)
87
93
  {
88
94
  xmlElementContentPtr elem;
89
95
  Data_Get_Struct(self, xmlElementContent, elem);
90
96
 
91
- if(!elem->prefix) return Qnil;
97
+ if (!elem->prefix) { return Qnil; }
92
98
 
93
99
  return NOKOGIRI_STR_NEW2(elem->prefix);
94
100
  }
95
101
 
96
- VALUE Nokogiri_wrap_element_content(VALUE doc, xmlElementContentPtr element)
102
+ VALUE
103
+ noko_xml_element_content_wrap(VALUE doc, xmlElementContentPtr element)
97
104
  {
98
105
  VALUE elem = Data_Wrap_Struct(cNokogiriXmlElementContent, 0, 0, element);
99
106
 
@@ -104,20 +111,18 @@ VALUE Nokogiri_wrap_element_content(VALUE doc, xmlElementContentPtr element)
104
111
  return elem;
105
112
  }
106
113
 
107
- void init_xml_element_content()
114
+ void
115
+ noko_init_xml_element_content()
108
116
  {
109
- VALUE nokogiri = rb_define_module("Nokogiri");
110
- VALUE xml = rb_define_module_under(nokogiri, "XML");
117
+ cNokogiriXmlElementContent = rb_define_class_under(mNokogiriXml, "ElementContent", rb_cObject);
111
118
 
112
- VALUE klass = rb_define_class_under(xml, "ElementContent", rb_cObject);
119
+ rb_undef_alloc_func(cNokogiriXmlElementContent);
113
120
 
114
- cNokogiriXmlElementContent = klass;
121
+ rb_define_method(cNokogiriXmlElementContent, "name", get_name, 0);
122
+ rb_define_method(cNokogiriXmlElementContent, "type", get_type, 0);
123
+ rb_define_method(cNokogiriXmlElementContent, "occur", get_occur, 0);
124
+ rb_define_method(cNokogiriXmlElementContent, "prefix", get_prefix, 0);
115
125
 
116
- rb_define_method(klass, "name", get_name, 0);
117
- rb_define_method(klass, "type", get_type, 0);
118
- rb_define_method(klass, "occur", get_occur, 0);
119
- rb_define_method(klass, "prefix", get_prefix, 0);
120
-
121
- rb_define_private_method(klass, "c1", get_c1, 0);
122
- rb_define_private_method(klass, "c2", get_c2, 0);
126
+ rb_define_private_method(cNokogiriXmlElementContent, "c1", get_c1, 0);
127
+ rb_define_private_method(cNokogiriXmlElementContent, "c2", get_c2, 0);
123
128
  }
@@ -1,4 +1,6 @@
1
- #include <xml_element_decl.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriXmlElementDecl;
2
4
 
3
5
  static ID id_document;
4
6
 
@@ -8,7 +10,8 @@ static ID id_document;
8
10
  *
9
11
  * The element_type
10
12
  */
11
- static VALUE element_type(VALUE self)
13
+ static VALUE
14
+ element_type(VALUE self)
12
15
  {
13
16
  xmlElementPtr node;
14
17
  Data_Get_Struct(self, xmlElement, node);
@@ -21,17 +24,18 @@ static VALUE element_type(VALUE self)
21
24
  *
22
25
  * The allowed content for this ElementDecl
23
26
  */
24
- static VALUE content(VALUE self)
27
+ static VALUE
28
+ content(VALUE self)
25
29
  {
26
30
  xmlElementPtr node;
27
31
  Data_Get_Struct(self, xmlElement, node);
28
32
 
29
- if(!node->content) return Qnil;
33
+ if (!node->content) { return Qnil; }
30
34
 
31
- return Nokogiri_wrap_element_content(
32
- rb_funcall(self, id_document, 0),
33
- node->content
34
- );
35
+ return noko_xml_element_content_wrap(
36
+ rb_funcall(self, id_document, 0),
37
+ node->content
38
+ );
35
39
  }
36
40
 
37
41
  /*
@@ -40,30 +44,26 @@ static VALUE content(VALUE self)
40
44
  *
41
45
  * The namespace prefix for this ElementDecl
42
46
  */
43
- static VALUE prefix(VALUE self)
47
+ static VALUE
48
+ prefix(VALUE self)
44
49
  {
45
50
  xmlElementPtr node;
46
51
  Data_Get_Struct(self, xmlElement, node);
47
52
 
48
- if(!node->prefix) return Qnil;
53
+ if (!node->prefix) { return Qnil; }
49
54
 
50
55
  return NOKOGIRI_STR_NEW2(node->prefix);
51
56
  }
52
57
 
53
- VALUE cNokogiriXmlElementDecl;
54
-
55
- void init_xml_element_decl()
58
+ void
59
+ noko_init_xml_element_decl()
56
60
  {
57
- VALUE nokogiri = rb_define_module("Nokogiri");
58
- VALUE xml = rb_define_module_under(nokogiri, "XML");
59
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
60
- VALUE klass = rb_define_class_under(xml, "ElementDecl", node);
61
-
62
- cNokogiriXmlElementDecl = klass;
61
+ assert(cNokogiriXmlNode);
62
+ cNokogiriXmlElementDecl = rb_define_class_under(mNokogiriXml, "ElementDecl", cNokogiriXmlNode);
63
63
 
64
- rb_define_method(klass, "element_type", element_type, 0);
65
- rb_define_method(klass, "content", content, 0);
66
- rb_define_method(klass, "prefix", prefix, 0);
64
+ rb_define_method(cNokogiriXmlElementDecl, "element_type", element_type, 0);
65
+ rb_define_method(cNokogiriXmlElementDecl, "content", content, 0);
66
+ rb_define_method(cNokogiriXmlElementDecl, "prefix", prefix, 0);
67
67
 
68
68
  id_document = rb_intern("document");
69
69
  }
@@ -1,17 +1,22 @@
1
- #include <xml_encoding_handler.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriEncodingHandler;
4
+
2
5
 
3
6
  /*
4
7
  * call-seq: Nokogiri::EncodingHandler.[](name)
5
8
  *
6
9
  * Get the encoding handler for +name+
7
10
  */
8
- static VALUE get(VALUE klass, VALUE key)
11
+ static VALUE
12
+ get(VALUE klass, VALUE key)
9
13
  {
10
14
  xmlCharEncodingHandlerPtr handler;
11
15
 
12
- handler = xmlFindCharEncodingHandler(StringValuePtr(key));
13
- if(handler)
16
+ handler = xmlFindCharEncodingHandler(StringValueCStr(key));
17
+ if (handler) {
14
18
  return Data_Wrap_Struct(klass, NULL, NULL, handler);
19
+ }
15
20
 
16
21
  return Qnil;
17
22
  }
@@ -21,9 +26,10 @@ static VALUE get(VALUE klass, VALUE key)
21
26
  *
22
27
  * Delete the encoding alias named +name+
23
28
  */
24
- static VALUE delete(VALUE klass, VALUE name)
29
+ static VALUE
30
+ delete (VALUE klass, VALUE name)
25
31
  {
26
- if(xmlDelEncodingAlias(StringValuePtr(name))) return Qnil;
32
+ if (xmlDelEncodingAlias(StringValueCStr(name))) { return Qnil; }
27
33
 
28
34
  return Qtrue;
29
35
  }
@@ -33,9 +39,10 @@ static VALUE delete(VALUE klass, VALUE name)
33
39
  *
34
40
  * Alias encoding handler with name +from+ to name +to+
35
41
  */
36
- static VALUE alias(VALUE klass, VALUE from, VALUE to)
42
+ static VALUE
43
+ alias(VALUE klass, VALUE from, VALUE to)
37
44
  {
38
- xmlAddEncodingAlias(StringValuePtr(from), StringValuePtr(to));
45
+ xmlAddEncodingAlias(StringValueCStr(from), StringValueCStr(to));
39
46
 
40
47
  return to;
41
48
  }
@@ -45,7 +52,8 @@ static VALUE alias(VALUE klass, VALUE from, VALUE to)
45
52
  *
46
53
  * Remove all encoding aliases.
47
54
  */
48
- static VALUE clear_aliases(VALUE klass)
55
+ static VALUE
56
+ clear_aliases(VALUE klass)
49
57
  {
50
58
  xmlCleanupEncodingAliases();
51
59
 
@@ -57,7 +65,8 @@ static VALUE clear_aliases(VALUE klass)
57
65
  *
58
66
  * Get the name of this EncodingHandler
59
67
  */
60
- static VALUE name(VALUE self)
68
+ static VALUE
69
+ name(VALUE self)
61
70
  {
62
71
  xmlCharEncodingHandlerPtr handler;
63
72
 
@@ -66,14 +75,16 @@ static VALUE name(VALUE self)
66
75
  return NOKOGIRI_STR_NEW2(handler->name);
67
76
  }
68
77
 
69
- void init_xml_encoding_handler()
78
+ void
79
+ noko_init_xml_encoding_handler()
70
80
  {
71
- VALUE nokogiri = rb_define_module("Nokogiri");
72
- VALUE klass = rb_define_class_under(nokogiri, "EncodingHandler", rb_cObject);
73
-
74
- rb_define_singleton_method(klass, "[]", get, 1);
75
- rb_define_singleton_method(klass, "delete", delete, 1);
76
- rb_define_singleton_method(klass, "alias", alias, 2);
77
- rb_define_singleton_method(klass, "clear_aliases!", clear_aliases, 0);
78
- rb_define_method(klass, "name", name, 0);
81
+ cNokogiriEncodingHandler = rb_define_class_under(mNokogiri, "EncodingHandler", rb_cObject);
82
+
83
+ rb_undef_alloc_func(cNokogiriEncodingHandler);
84
+
85
+ rb_define_singleton_method(cNokogiriEncodingHandler, "[]", get, 1);
86
+ rb_define_singleton_method(cNokogiriEncodingHandler, "delete", delete, 1);
87
+ rb_define_singleton_method(cNokogiriEncodingHandler, "alias", alias, 2);
88
+ rb_define_singleton_method(cNokogiriEncodingHandler, "clear_aliases!", clear_aliases, 0);
89
+ rb_define_method(cNokogiriEncodingHandler, "name", name, 0);
79
90
  }