nokogiri 1.10.3 → 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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1173 -884
  4. data/LICENSE.md +1 -1
  5. data/README.md +176 -96
  6. data/dependencies.yml +28 -26
  7. data/ext/nokogiri/depend +38 -358
  8. data/ext/nokogiri/extconf.rb +716 -414
  9. data/ext/nokogiri/gumbo.c +584 -0
  10. data/ext/nokogiri/html4_document.c +166 -0
  11. data/ext/nokogiri/html4_element_description.c +294 -0
  12. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  13. data/ext/nokogiri/html4_sax_parser_context.c +120 -0
  14. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  15. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  16. data/ext/nokogiri/nokogiri.c +228 -91
  17. data/ext/nokogiri/nokogiri.h +191 -89
  18. data/ext/nokogiri/test_global_handlers.c +40 -0
  19. data/ext/nokogiri/xml_attr.c +15 -15
  20. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  21. data/ext/nokogiri/xml_cdata.c +13 -18
  22. data/ext/nokogiri/xml_comment.c +19 -26
  23. data/ext/nokogiri/xml_document.c +267 -195
  24. data/ext/nokogiri/xml_document_fragment.c +13 -15
  25. data/ext/nokogiri/xml_dtd.c +54 -48
  26. data/ext/nokogiri/xml_element_content.c +31 -26
  27. data/ext/nokogiri/xml_element_decl.c +22 -22
  28. data/ext/nokogiri/xml_encoding_handler.c +28 -17
  29. data/ext/nokogiri/xml_entity_decl.c +32 -30
  30. data/ext/nokogiri/xml_entity_reference.c +16 -18
  31. data/ext/nokogiri/xml_namespace.c +60 -51
  32. data/ext/nokogiri/xml_node.c +493 -407
  33. data/ext/nokogiri/xml_node_set.c +174 -162
  34. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  35. data/ext/nokogiri/xml_reader.c +197 -172
  36. data/ext/nokogiri/xml_relax_ng.c +52 -28
  37. data/ext/nokogiri/xml_sax_parser.c +112 -112
  38. data/ext/nokogiri/xml_sax_parser_context.c +105 -86
  39. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  40. data/ext/nokogiri/xml_schema.c +112 -33
  41. data/ext/nokogiri/xml_syntax_error.c +42 -21
  42. data/ext/nokogiri/xml_text.c +13 -17
  43. data/ext/nokogiri/xml_xpath_context.c +158 -73
  44. data/ext/nokogiri/xslt_stylesheet.c +158 -164
  45. data/gumbo-parser/CHANGES.md +63 -0
  46. data/gumbo-parser/Makefile +101 -0
  47. data/gumbo-parser/THANKS +27 -0
  48. data/gumbo-parser/src/Makefile +34 -0
  49. data/gumbo-parser/src/README.md +41 -0
  50. data/gumbo-parser/src/ascii.c +75 -0
  51. data/gumbo-parser/src/ascii.h +115 -0
  52. data/gumbo-parser/src/attribute.c +42 -0
  53. data/gumbo-parser/src/attribute.h +17 -0
  54. data/gumbo-parser/src/char_ref.c +22225 -0
  55. data/gumbo-parser/src/char_ref.h +29 -0
  56. data/gumbo-parser/src/char_ref.rl +2154 -0
  57. data/gumbo-parser/src/error.c +626 -0
  58. data/gumbo-parser/src/error.h +148 -0
  59. data/gumbo-parser/src/foreign_attrs.c +104 -0
  60. data/gumbo-parser/src/foreign_attrs.gperf +27 -0
  61. data/gumbo-parser/src/gumbo.h +943 -0
  62. data/gumbo-parser/src/insertion_mode.h +33 -0
  63. data/gumbo-parser/src/macros.h +91 -0
  64. data/gumbo-parser/src/parser.c +4886 -0
  65. data/gumbo-parser/src/parser.h +41 -0
  66. data/gumbo-parser/src/replacement.h +33 -0
  67. data/gumbo-parser/src/string_buffer.c +103 -0
  68. data/gumbo-parser/src/string_buffer.h +68 -0
  69. data/gumbo-parser/src/string_piece.c +48 -0
  70. data/gumbo-parser/src/svg_attrs.c +174 -0
  71. data/gumbo-parser/src/svg_attrs.gperf +77 -0
  72. data/gumbo-parser/src/svg_tags.c +137 -0
  73. data/gumbo-parser/src/svg_tags.gperf +55 -0
  74. data/gumbo-parser/src/tag.c +222 -0
  75. data/gumbo-parser/src/tag_lookup.c +382 -0
  76. data/gumbo-parser/src/tag_lookup.gperf +169 -0
  77. data/gumbo-parser/src/tag_lookup.h +13 -0
  78. data/gumbo-parser/src/token_buffer.c +79 -0
  79. data/gumbo-parser/src/token_buffer.h +71 -0
  80. data/gumbo-parser/src/token_type.h +17 -0
  81. data/gumbo-parser/src/tokenizer.c +3463 -0
  82. data/gumbo-parser/src/tokenizer.h +112 -0
  83. data/gumbo-parser/src/tokenizer_states.h +339 -0
  84. data/gumbo-parser/src/utf8.c +245 -0
  85. data/gumbo-parser/src/utf8.h +164 -0
  86. data/gumbo-parser/src/util.c +68 -0
  87. data/gumbo-parser/src/util.h +30 -0
  88. data/gumbo-parser/src/vector.c +111 -0
  89. data/gumbo-parser/src/vector.h +45 -0
  90. data/lib/nokogiri/css/node.rb +1 -0
  91. data/lib/nokogiri/css/parser.rb +64 -63
  92. data/lib/nokogiri/css/parser.y +3 -3
  93. data/lib/nokogiri/css/parser_extras.rb +39 -36
  94. data/lib/nokogiri/css/syntax_error.rb +2 -1
  95. data/lib/nokogiri/css/tokenizer.rb +105 -103
  96. data/lib/nokogiri/css/xpath_visitor.rb +73 -43
  97. data/lib/nokogiri/css.rb +15 -14
  98. data/lib/nokogiri/decorators/slop.rb +1 -0
  99. data/lib/nokogiri/extension.rb +31 -0
  100. data/lib/nokogiri/gumbo.rb +14 -0
  101. data/lib/nokogiri/html.rb +32 -27
  102. data/lib/nokogiri/{html → html4}/builder.rb +3 -2
  103. data/lib/nokogiri/{html → html4}/document.rb +17 -30
  104. data/lib/nokogiri/{html → html4}/document_fragment.rb +18 -17
  105. data/lib/nokogiri/{html → html4}/element_description.rb +2 -1
  106. data/lib/nokogiri/{html → html4}/element_description_defaults.rb +2 -1
  107. data/lib/nokogiri/{html → html4}/entity_lookup.rb +2 -1
  108. data/lib/nokogiri/{html → html4}/sax/parser.rb +12 -14
  109. data/lib/nokogiri/html4/sax/parser_context.rb +19 -0
  110. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +6 -5
  111. data/lib/nokogiri/html4.rb +40 -0
  112. data/lib/nokogiri/html5/document.rb +74 -0
  113. data/lib/nokogiri/html5/document_fragment.rb +80 -0
  114. data/lib/nokogiri/html5/node.rb +93 -0
  115. data/lib/nokogiri/html5.rb +473 -0
  116. data/lib/nokogiri/jruby/dependencies.rb +20 -0
  117. data/lib/nokogiri/syntax_error.rb +1 -0
  118. data/lib/nokogiri/version/constant.rb +5 -0
  119. data/lib/nokogiri/version/info.rb +215 -0
  120. data/lib/nokogiri/version.rb +3 -109
  121. data/lib/nokogiri/xml/attr.rb +1 -0
  122. data/lib/nokogiri/xml/attribute_decl.rb +1 -0
  123. data/lib/nokogiri/xml/builder.rb +74 -32
  124. data/lib/nokogiri/xml/cdata.rb +1 -0
  125. data/lib/nokogiri/xml/character_data.rb +1 -0
  126. data/lib/nokogiri/xml/document.rb +138 -41
  127. data/lib/nokogiri/xml/document_fragment.rb +5 -6
  128. data/lib/nokogiri/xml/dtd.rb +1 -0
  129. data/lib/nokogiri/xml/element_content.rb +1 -0
  130. data/lib/nokogiri/xml/element_decl.rb +1 -0
  131. data/lib/nokogiri/xml/entity_decl.rb +1 -0
  132. data/lib/nokogiri/xml/entity_reference.rb +1 -0
  133. data/lib/nokogiri/xml/namespace.rb +1 -0
  134. data/lib/nokogiri/xml/node/save_options.rb +2 -1
  135. data/lib/nokogiri/xml/node.rb +629 -293
  136. data/lib/nokogiri/xml/node_set.rb +1 -0
  137. data/lib/nokogiri/xml/notation.rb +1 -0
  138. data/lib/nokogiri/xml/parse_options.rb +12 -3
  139. data/lib/nokogiri/xml/pp/character_data.rb +1 -0
  140. data/lib/nokogiri/xml/pp/node.rb +1 -0
  141. data/lib/nokogiri/xml/pp.rb +3 -2
  142. data/lib/nokogiri/xml/processing_instruction.rb +1 -0
  143. data/lib/nokogiri/xml/reader.rb +9 -12
  144. data/lib/nokogiri/xml/relax_ng.rb +7 -2
  145. data/lib/nokogiri/xml/sax/document.rb +25 -30
  146. data/lib/nokogiri/xml/sax/parser.rb +1 -0
  147. data/lib/nokogiri/xml/sax/parser_context.rb +1 -0
  148. data/lib/nokogiri/xml/sax/push_parser.rb +1 -0
  149. data/lib/nokogiri/xml/sax.rb +5 -4
  150. data/lib/nokogiri/xml/schema.rb +13 -4
  151. data/lib/nokogiri/xml/searchable.rb +25 -16
  152. data/lib/nokogiri/xml/syntax_error.rb +1 -0
  153. data/lib/nokogiri/xml/text.rb +1 -0
  154. data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
  155. data/lib/nokogiri/xml/xpath.rb +4 -5
  156. data/lib/nokogiri/xml/xpath_context.rb +1 -0
  157. data/lib/nokogiri/xml.rb +36 -36
  158. data/lib/nokogiri/xslt/stylesheet.rb +2 -1
  159. data/lib/nokogiri/xslt.rb +17 -16
  160. data/lib/nokogiri.rb +32 -51
  161. data/lib/xsd/xmlparser/nokogiri.rb +1 -0
  162. data/patches/libxml2/{0002-Remove-script-macro-support.patch → 0001-Remove-script-macro-support.patch} +0 -0
  163. data/patches/libxml2/{0003-Update-entities-to-remove-handling-of-ssi.patch → 0002-Update-entities-to-remove-handling-of-ssi.patch} +0 -0
  164. data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
  165. data/patches/libxml2/0004-use-glibc-strlen.patch +53 -0
  166. data/patches/libxml2/0005-avoid-isnan-isinf.patch +81 -0
  167. data/patches/libxml2/0006-update-automake-files-for-arm64.patch +2511 -0
  168. data/patches/libxml2/0007-Fix-XPath-recursion-limit.patch +31 -0
  169. data/patches/libxslt/0001-update-automake-files-for-arm64.patch +2511 -0
  170. data/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch +19 -0
  171. data/ports/archives/libxml2-2.9.12.tar.gz +0 -0
  172. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
  173. metadata +151 -153
  174. data/ext/nokogiri/html_document.c +0 -170
  175. data/ext/nokogiri/html_document.h +0 -10
  176. data/ext/nokogiri/html_element_description.c +0 -279
  177. data/ext/nokogiri/html_element_description.h +0 -10
  178. data/ext/nokogiri/html_entity_lookup.c +0 -32
  179. data/ext/nokogiri/html_entity_lookup.h +0 -8
  180. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  181. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  182. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  183. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  184. data/ext/nokogiri/xml_attr.h +0 -9
  185. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  186. data/ext/nokogiri/xml_cdata.h +0 -9
  187. data/ext/nokogiri/xml_comment.h +0 -9
  188. data/ext/nokogiri/xml_document.h +0 -23
  189. data/ext/nokogiri/xml_document_fragment.h +0 -10
  190. data/ext/nokogiri/xml_dtd.h +0 -10
  191. data/ext/nokogiri/xml_element_content.h +0 -10
  192. data/ext/nokogiri/xml_element_decl.h +0 -9
  193. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  194. data/ext/nokogiri/xml_entity_decl.h +0 -10
  195. data/ext/nokogiri/xml_entity_reference.h +0 -9
  196. data/ext/nokogiri/xml_io.c +0 -61
  197. data/ext/nokogiri/xml_io.h +0 -11
  198. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  199. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  200. data/ext/nokogiri/xml_namespace.h +0 -14
  201. data/ext/nokogiri/xml_node.h +0 -13
  202. data/ext/nokogiri/xml_node_set.h +0 -12
  203. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  204. data/ext/nokogiri/xml_reader.h +0 -10
  205. data/ext/nokogiri/xml_relax_ng.h +0 -9
  206. data/ext/nokogiri/xml_sax_parser.h +0 -39
  207. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  208. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  209. data/ext/nokogiri/xml_schema.h +0 -9
  210. data/ext/nokogiri/xml_syntax_error.h +0 -13
  211. data/ext/nokogiri/xml_text.h +0 -9
  212. data/ext/nokogiri/xml_xpath_context.h +0 -10
  213. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  214. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  215. data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  216. data/patches/libxslt/0001-Fix-security-framework-bypass.patch +0 -120
  217. data/ports/archives/libxml2-2.9.9.tar.gz +0 -0
  218. data/ports/archives/libxslt-1.1.33.tar.gz +0 -0
@@ -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, const 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, const 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, const 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
16
  handler = xmlFindCharEncodingHandler(StringValueCStr(key));
13
- if(handler)
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(StringValueCStr(name))) return Qnil;
32
+ if (xmlDelEncodingAlias(StringValueCStr(name))) { return Qnil; }
27
33
 
28
34
  return Qtrue;
29
35
  }
@@ -33,7 +39,8 @@ 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
45
  xmlAddEncodingAlias(StringValueCStr(from), StringValueCStr(to));
39
46
 
@@ -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
  }
@@ -1,4 +1,6 @@
1
- #include <xml_entity_decl.h>
1
+ #include <nokogiri.h>
2
+
3
+ VALUE cNokogiriXmlEntityDecl;
2
4
 
3
5
  /*
4
6
  * call-seq:
@@ -6,12 +8,13 @@
6
8
  *
7
9
  * Get the original_content before ref substitution
8
10
  */
9
- static VALUE original_content(VALUE self)
11
+ static VALUE
12
+ original_content(VALUE self)
10
13
  {
11
14
  xmlEntityPtr node;
12
15
  Data_Get_Struct(self, xmlEntity, node);
13
16
 
14
- if(!node->orig) return Qnil;
17
+ if (!node->orig) { return Qnil; }
15
18
 
16
19
  return NOKOGIRI_STR_NEW2(node->orig);
17
20
  }
@@ -22,12 +25,13 @@ static VALUE original_content(VALUE self)
22
25
  *
23
26
  * Get the content
24
27
  */
25
- static VALUE get_content(VALUE self)
28
+ static VALUE
29
+ get_content(VALUE self)
26
30
  {
27
31
  xmlEntityPtr node;
28
32
  Data_Get_Struct(self, xmlEntity, node);
29
33
 
30
- if(!node->content) return Qnil;
34
+ if (!node->content) { return Qnil; }
31
35
 
32
36
  return NOKOGIRI_STR_NEW(node->content, node->length);
33
37
  }
@@ -38,7 +42,8 @@ static VALUE get_content(VALUE self)
38
42
  *
39
43
  * Get the entity type
40
44
  */
41
- static VALUE entity_type(VALUE self)
45
+ static VALUE
46
+ entity_type(VALUE self)
42
47
  {
43
48
  xmlEntityPtr node;
44
49
  Data_Get_Struct(self, xmlEntity, node);
@@ -52,12 +57,13 @@ static VALUE entity_type(VALUE self)
52
57
  *
53
58
  * Get the external identifier for PUBLIC
54
59
  */
55
- static VALUE external_id(VALUE self)
60
+ static VALUE
61
+ external_id(VALUE self)
56
62
  {
57
63
  xmlEntityPtr node;
58
64
  Data_Get_Struct(self, xmlEntity, node);
59
65
 
60
- if(!node->ExternalID) return Qnil;
66
+ if (!node->ExternalID) { return Qnil; }
61
67
 
62
68
  return NOKOGIRI_STR_NEW2(node->ExternalID);
63
69
  }
@@ -68,43 +74,39 @@ static VALUE external_id(VALUE self)
68
74
  *
69
75
  * Get the URI for a SYSTEM or PUBLIC Entity
70
76
  */
71
- static VALUE system_id(VALUE self)
77
+ static VALUE
78
+ system_id(VALUE self)
72
79
  {
73
80
  xmlEntityPtr node;
74
81
  Data_Get_Struct(self, xmlEntity, node);
75
82
 
76
- if(!node->SystemID) return Qnil;
83
+ if (!node->SystemID) { return Qnil; }
77
84
 
78
85
  return NOKOGIRI_STR_NEW2(node->SystemID);
79
86
  }
80
87
 
81
- VALUE cNokogiriXmlEntityDecl;
82
-
83
- void init_xml_entity_decl()
88
+ void
89
+ noko_init_xml_entity_decl()
84
90
  {
85
- VALUE nokogiri = rb_define_module("Nokogiri");
86
- VALUE xml = rb_define_module_under(nokogiri, "XML");
87
- VALUE node = rb_define_class_under(xml, "Node", rb_cObject);
88
- VALUE klass = rb_define_class_under(xml, "EntityDecl", node);
89
-
90
- cNokogiriXmlEntityDecl = klass;
91
+ assert(cNokogiriXmlNode);
92
+ cNokogiriXmlEntityDecl = rb_define_class_under(mNokogiriXml, "EntityDecl", cNokogiriXmlNode);
91
93
 
92
- rb_define_method(klass, "original_content", original_content, 0);
93
- rb_define_method(klass, "content", get_content, 0);
94
- rb_define_method(klass, "entity_type", entity_type, 0);
95
- rb_define_method(klass, "external_id", external_id, 0);
96
- rb_define_method(klass, "system_id", system_id, 0);
94
+ rb_define_method(cNokogiriXmlEntityDecl, "original_content", original_content, 0);
95
+ rb_define_method(cNokogiriXmlEntityDecl, "content", get_content, 0);
96
+ rb_define_method(cNokogiriXmlEntityDecl, "entity_type", entity_type, 0);
97
+ rb_define_method(cNokogiriXmlEntityDecl, "external_id", external_id, 0);
98
+ rb_define_method(cNokogiriXmlEntityDecl, "system_id", system_id, 0);
97
99
 
98
100
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("INTERNAL_GENERAL"),
99
- INT2NUM(XML_INTERNAL_GENERAL_ENTITY));
101
+ INT2NUM(XML_INTERNAL_GENERAL_ENTITY));
100
102
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("EXTERNAL_GENERAL_PARSED"),
101
- INT2NUM(XML_EXTERNAL_GENERAL_PARSED_ENTITY));
103
+ INT2NUM(XML_EXTERNAL_GENERAL_PARSED_ENTITY));
102
104
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("EXTERNAL_GENERAL_UNPARSED"),
103
- INT2NUM(XML_EXTERNAL_GENERAL_UNPARSED_ENTITY));
105
+ INT2NUM(XML_EXTERNAL_GENERAL_UNPARSED_ENTITY));
104
106
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("INTERNAL_PARAMETER"),
105
- INT2NUM(XML_INTERNAL_PARAMETER_ENTITY));
107
+ INT2NUM(XML_INTERNAL_PARAMETER_ENTITY));
106
108
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("EXTERNAL_PARAMETER"),
107
- INT2NUM(XML_EXTERNAL_PARAMETER_ENTITY));
109
+ INT2NUM(XML_EXTERNAL_PARAMETER_ENTITY));
108
110
  rb_const_set(cNokogiriXmlEntityDecl, rb_intern("INTERNAL_PREDEFINED"),
109
- INT2NUM(XML_INTERNAL_PREDEFINED_ENTITY));
111
+ INT2NUM(XML_INTERNAL_PREDEFINED_ENTITY));
110
112
  }