libxml-ruby 2.9.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +811 -790
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +188 -184
  6. data/Rakefile +1 -1
  7. data/ext/libxml/libxml.c +80 -80
  8. data/ext/libxml/ruby_libxml.h +75 -75
  9. data/ext/libxml/ruby_xml.c +0 -84
  10. data/ext/libxml/ruby_xml.h +0 -10
  11. data/ext/libxml/ruby_xml_attr.h +12 -12
  12. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  13. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  14. data/ext/libxml/ruby_xml_attributes.c +275 -275
  15. data/ext/libxml/ruby_xml_attributes.h +15 -15
  16. data/ext/libxml/ruby_xml_document.c +21 -27
  17. data/ext/libxml/ruby_xml_document.h +11 -11
  18. data/ext/libxml/ruby_xml_dtd.c +2 -13
  19. data/ext/libxml/ruby_xml_dtd.h +9 -9
  20. data/ext/libxml/ruby_xml_error.c +996 -996
  21. data/ext/libxml/ruby_xml_error.h +12 -12
  22. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  23. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  25. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  26. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +0 -1
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +153 -153
  31. data/ext/libxml/ruby_xml_namespace.h +10 -10
  32. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  33. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  34. data/ext/libxml/ruby_xml_node.c +100 -143
  35. data/ext/libxml/ruby_xml_node.h +13 -11
  36. data/ext/libxml/ruby_xml_parser.c +91 -94
  37. data/ext/libxml/ruby_xml_parser.h +12 -12
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  40. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  41. data/ext/libxml/ruby_xml_reader.c +45 -37
  42. data/ext/libxml/ruby_xml_reader.h +17 -17
  43. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  44. data/ext/libxml/ruby_xml_sax2_handler.c +3 -3
  45. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  46. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  47. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  48. data/ext/libxml/ruby_xml_schema.h +809 -809
  49. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  50. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  51. data/ext/libxml/ruby_xml_schema_element.c +94 -94
  52. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  53. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  54. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  55. data/ext/libxml/ruby_xml_schema_type.c +259 -259
  56. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  57. data/ext/libxml/ruby_xml_version.h +9 -9
  58. data/ext/libxml/ruby_xml_writer.c +1136 -1136
  59. data/ext/libxml/ruby_xml_writer.h +10 -10
  60. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  61. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  62. data/ext/libxml/ruby_xml_xpath.c +42 -36
  63. data/ext/libxml/ruby_xml_xpath.h +13 -13
  64. data/ext/libxml/ruby_xml_xpath_context.c +1 -1
  65. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  66. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  67. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  68. data/ext/libxml/ruby_xml_xpath_object.c +5 -2
  69. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  70. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  71. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  72. data/ext/vc/libxml_ruby.sln +17 -15
  73. data/lib/libxml.rb +1 -6
  74. data/lib/libxml/node.rb +2 -78
  75. data/lib/libxml/parser.rb +0 -266
  76. data/lib/libxml/sax_parser.rb +0 -17
  77. data/lib/libxml/schema.rb +66 -66
  78. data/lib/libxml/schema/attribute.rb +19 -19
  79. data/lib/libxml/schema/element.rb +27 -27
  80. data/lib/libxml/schema/type.rb +29 -29
  81. data/script/benchmark/depixelate +634 -634
  82. data/script/benchmark/hamlet.xml +9054 -9054
  83. data/script/benchmark/parsecount +170 -170
  84. data/script/benchmark/throughput +41 -41
  85. data/script/test +6 -6
  86. data/test/c14n/given/example-1.xml +14 -14
  87. data/test/c14n/given/example-2.xml +11 -11
  88. data/test/c14n/given/example-3.xml +18 -18
  89. data/test/c14n/given/example-4.xml +9 -9
  90. data/test/c14n/given/example-5.xml +12 -12
  91. data/test/c14n/given/example-6.xml +2 -2
  92. data/test/c14n/given/example-7.xml +11 -11
  93. data/test/c14n/given/example-8.xml +11 -11
  94. data/test/c14n/given/example-8.xpath +9 -9
  95. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  96. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  97. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  98. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  99. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  100. data/test/c14n/result/with-comments/example-1 +5 -5
  101. data/test/c14n/result/with-comments/example-2 +10 -10
  102. data/test/c14n/result/with-comments/example-3 +13 -13
  103. data/test/c14n/result/with-comments/example-4 +8 -8
  104. data/test/c14n/result/with-comments/example-5 +3 -3
  105. data/test/c14n/result/without-comments/example-1 +3 -3
  106. data/test/c14n/result/without-comments/example-2 +10 -10
  107. data/test/c14n/result/without-comments/example-3 +13 -13
  108. data/test/c14n/result/without-comments/example-4 +8 -8
  109. data/test/c14n/result/without-comments/example-5 +2 -2
  110. data/test/model/atom.xml +12 -12
  111. data/test/model/bands.iso-8859-1.xml +4 -4
  112. data/test/model/bands.utf-8.xml +4 -4
  113. data/test/model/bands.xml +4 -4
  114. data/test/model/books.xml +153 -153
  115. data/test/model/merge_bug_data.xml +58 -58
  116. data/test/model/ruby-lang.html +238 -238
  117. data/test/model/rubynet.xml +79 -79
  118. data/test/model/shiporder.rnc +28 -28
  119. data/test/model/shiporder.rng +86 -86
  120. data/test/model/shiporder.xml +22 -22
  121. data/test/model/shiporder.xsd +39 -39
  122. data/test/model/soap.xml +27 -27
  123. data/test/model/xinclude.xml +4 -4
  124. data/test/tc_attributes.rb +0 -6
  125. data/test/tc_error.rb +157 -158
  126. data/test/tc_node.rb +33 -17
  127. data/test/tc_node_edit.rb +0 -15
  128. data/test/tc_node_pi.rb +39 -39
  129. data/test/tc_parser.rb +0 -48
  130. data/test/tc_reader.rb +12 -53
  131. data/test/tc_writer.rb +447 -447
  132. data/test/tc_xpath.rb +1 -1
  133. data/test/test_helper.rb +2 -2
  134. metadata +3 -8
  135. data/ext/libxml/extconf.h +0 -4
  136. data/lib/libxml/ns.rb +0 -22
  137. data/lib/libxml/properties.rb +0 -23
  138. data/lib/libxml/reader.rb +0 -29
  139. data/lib/libxml/xpath_object.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19bae1f5824f98a959ddf6f19674ac0f2a750388
4
- data.tar.gz: 8a2003b0eed642100d6520306a3cf609b739b2a7
3
+ metadata.gz: 865194cd65ca9ad9a3ccc047d89b5a68186ef97f
4
+ data.tar.gz: 7d29d8cb6cd5d40cba78f171ac92d61f3b48d1d1
5
5
  SHA512:
6
- metadata.gz: 730aeb8b63e92c5b362853b34df0e0cd84b502d5425f29a55722f74ddb1e98eabdc29f53d66bf5434460d96fe415e3e03c52aa3f3a024fb358f6b9d16bc7576e
7
- data.tar.gz: a1585ebfe236cfa867b2a936836fb828783fe6d839d2ab03f45bd8ecaa77abec080a5e6480ce5357674de4803888fa0257db27b30d50fe3f9a3951f504ad14a9
6
+ metadata.gz: 0b68eca1f0ff9241250a1d9ac28f9bd34e744493e50d1728f0da43568b2a478ca75ced18899e13483076fd6da88716c62a8485acda4bb84e1f42e7b018d91433
7
+ data.tar.gz: dcc1043a0033995c6c0be3fc2cae266f9be82d436dd92ad7db76e616e5442353f7515a3bdb0e1ae84701eb3cb912950abadf339613215256ac0a339d2391b536
data/HISTORY CHANGED
@@ -1,790 +1,811 @@
1
- = Release History
2
-
3
- == 2.9.0 / 2016-06-13 Charlie Savage
4
-
5
- * Revamp libxml-ruby's memory management to not cause crashes when used with Nokogiri (James Laird-Wah)
6
- * Fix garbage collection issue that sometimes caused the library to hang (Charlie Savage)
7
- * Improved multi-threading support (Charlie Savage)
8
- * Fix crash sometimes caused by a xml node being being freed twice (Charlie Savage)
9
- * Fix memory leak when setting the text content of a node (Charlie Savage)
10
- * Set a default task in the Rakefile - use "test" (Robert Haines)
11
- * Add "hanna_gudao" gem and add "rake-compiler" to develpoment dependencies (Robert Haines)
12
- * Use Process.getrlimit instead of `ulimit` in the tests (Robert Haines)
13
- * Build on smartos (Steven Williamson)
14
- * Fix compiler warnings (Charlie Savage)
15
- * Add Xcode project for easier debugging on OSX (Charlie Savage)
16
- * Switch from unit test to minitest (Charlie Savage)
17
-
18
- == 2.8.0 / 2015-01-09 Charlie Savage
19
-
20
- * Use RbConfig instead of Config in extconf.rb (Robert Haines)
21
- * Correct xpath documentation XML (Bill Mill)
22
- * Correct from_string method documentation (Bill Mill)
23
- * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
24
- * Update gemspec to include license (Charlie Savage)
25
- * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
26
-
27
- == 2.7.0 / 2013-08-13 Charlie Savage
28
-
29
- * Don't call rb_warning in GC mark function (Dirkjan Bussink)
30
- * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
31
- * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
32
- * Fix segmentation fault for issue #62 (Charlie Savage)
33
- * Add #node_type method to dtd (Charlie Savage)
34
- * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
35
- * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
36
- * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
37
- * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
38
-
39
- == 2.6.0 / 2013-02-16 Charlie Savage
40
-
41
- * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
42
- with older versions of libxml.
43
- * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
44
-
45
- == 2.5.0 / 2013-01-27 Charlie Savage
46
-
47
- * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
48
- and symbols are VALUE not ID (julp).
49
- * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
50
- * Update use of LIBXML_VERSION (julp).
51
- * Fix misuse of rb_scan_args (julp).
52
- * Update documentation, including DTD docs and added XML Writer (julp).
53
- * Added a new XML::Writer class (julp).
54
- * Improved xml reader api and add namespace support. Note that passing a numeric value
55
- to XML::Reader::move_to_attribute has been deprecated. Instead you should now
56
- use #move_to_attribute_no. (julp).
57
- * Improve error handling and messages (Jarl Friis)
58
-
59
- == 2.4.0 / 2012-12-14 Charlie Savage
60
-
61
- * Support libxml 2.9.0 (Daniel Veillard)
62
-
63
- * Extensive new interfaces for xml schema functionality including suppor for
64
- schemal elements, types, facets and attributes (Anton Sozontov)
65
-
66
- * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
67
-
68
- * Node#content= encoding (Nikita Afanasenko)
69
-
70
- == 2.3.3 / 2012-07-01 Charlie Savage
71
-
72
- * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
73
- * Fix variable name in example (Marcus)
74
-
75
- == 2.3.2 / 2012-03-20 Charlie Savage
76
-
77
- * Define various canonicalize constants to support libxml2 versions
78
- older than 1.1.25 (thanks Apple!)
79
-
80
- == 2.3.1 / 2012-03-20 Charlie Savage
81
-
82
- * Yanked - didn't fix the OSX canonicalize issue
83
-
84
- == 2.3.0 / 2012-03-18 Charlie Savage
85
-
86
- * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
87
-
88
- * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
89
- LibXML::XML::Document#canonicalize method with optional arguments.
90
-
91
- * Added full test data for C14N based off of W3C spec.
92
- (http://www.w3.org/TR/xml-c14n#Examples)
93
-
94
- * Update sax handler to support encodings on Ruby 1.9 and higher.
95
-
96
- == 2.2.2 / 2011-08-29 Charlie Savage
97
-
98
- * ++API CHANGE+++
99
-
100
- Reader#relax_ng_validate now takes a RelaxNG object. This is
101
- what the documentation has always said it takes, but it previously
102
- took a string. In addition, it now returns true or false instead of 0 or -1.
103
-
104
- Reader#schema_validate now takes a Schema object. This is
105
- what the documentation has always said it takes, but it previously
106
- took a string. In addition, it now returns true or false instead of 0 or -1.
107
-
108
- Fixes GitHub issue #30.
109
-
110
- * Added Parser::Context#close and HTMLParser::Context#close methods that
111
- allow the underlying io stream (file, string, etc) to be closed. Once a
112
- parser is done parsing its data, it now calls one of these methods.
113
- This means that if you parse thousands of files at the same time,
114
- without running Ruby's garbage colllector, you won't get a too
115
- many files open error. Fixes GitHub issue #29.
116
-
117
- * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
118
- Fixes GitHub issues #31
119
-
120
- * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
121
-
122
- == 2.2.1 / 2011-08-13 Charlie Savage
123
-
124
- * Packaging fix - include the custom .def file in the gem.
125
-
126
- == 2.2.0 / 2011-08-09 Charlie Savage
127
-
128
- * Update encoding support for Ruby 1.9 so that libxml-ruby returns
129
- strings encoded in UTF-8. This change was required since libxml internally
130
- stores strings in UTF-8. The exceptions to this rule are the #to_s methods
131
- which return UTF-8 by default but can return other encodings if requested.
132
-
133
- == 2.1.2 / 2011-08-03 Charlie Savage
134
-
135
- * Fix segmentation fault that could occur when an XPathContext was marked
136
- before it was fully initialized (Charlie Savage).
137
-
138
- * Add mark method to document to mark all nodes currently being accessed
139
- by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
140
-
141
- == 2.1.1 / 2011-07-31 Charlie Savage
142
-
143
- * Switch to using def files to control library exports (Charlie Savage).
144
-
145
- == 2.1.0 / 2011-07-31 Charlie Savage
146
-
147
- * Ruby 1.9.3 compatability (Charlie Savage).
148
-
149
- * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
150
-
151
- * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
152
-
153
- * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
154
- library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
155
-
156
- * Allow calling #find on nodes returned from Reader (Charlie Savage).
157
-
158
- * Change document handling in XPath::Context to address segmentation fault on
159
- Ruby Enterprise Edition (Charlie Savage).
160
-
161
- * Update gemspec file to work directly with bundler thereby allowing git
162
- repository to be used as gem (Charlie Savage).
163
-
164
- * Support gem buld (Charlie Savage).
165
-
166
- * Simplify memory management of attributes namespaces to fix
167
- segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
168
-
169
-
170
- == 2.0.8 / 2011-06-23 Charlie Savage
171
-
172
- * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
173
-
174
- * Fix compile issue on Ruby 1.9.3
175
-
176
- == 2.0.6 / 2011-05-23 Charlie Savage
177
-
178
- * Fix segfault that sometimes occurred when looking up encodings on 1.9.
179
- In some cases the Ruby encoding infrastructure was not properly
180
- initialized (nkriege).
181
-
182
- == 2.0.5 / 2011-05-05 Charlie Savage
183
-
184
- * Document#validate_dtd would sometimes cause segmentation faults due to
185
- an improperly initialized data structure (Charlie Savage)
186
-
187
- == 2.0.4 / 2011-05-02 Charlie Savage
188
-
189
- * Fix compile issues on platforms using older versions of libxml2.
190
- The problem as using a C14N constants that was added to libxml2
191
- in July 2009 (Charlie Savage).
192
-
193
- == 2.0.3 / 2011-05-01 Charlie Savage
194
-
195
- * The biggest change in this release is supporting the use of libxml-ruby in
196
- native background Ruby threads. Previously, the use of libxml-ruby in
197
- background threads in Ruby 1.9.x and higher would often cause
198
- segmentation faults. This has now been fixed (Charlie Savage).
199
-
200
- * Update Reader#expand so that returned node correctly remembers its
201
- encoding in Ruby 1.9.x (zerebubuth).
202
-
203
- * Add check to verify a node has not been deleted. This can happen when
204
- a ruby variable holds a reference to a child node that gets freed
205
- when its parent gets freed. Previously when this happened a
206
- segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
207
- RubyForge #26839.
208
-
209
- * Do not unlink nodes before internal validations have run - avoids
210
- segmentation faults caused by freeing a node twice (Charlie Savage).
211
-
212
- * Add support for Document#canonicalization (Victor Lin).
213
-
214
- * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
215
-
216
- * Fix memory leak in Reader#[] (Nathan Kriege).
217
-
218
- * Fix usage of @io instance variable (Jeffrey Taylor)
219
-
220
- * Removed old sax error handling code that has been fixed in newer
221
- versions of libxml (Charlie Savage).
222
-
223
- * Code cleanup - remove unused variables and commented out code (Charlie Savage)
224
-
225
- * Minor text changes and documentation fixes (Charlie Savage).
226
-
227
- * Fix documentation error (fixes RubyForge #26888).
228
-
229
- * Update documentation for Document#validation* methods (fixes RubyForge #24833).
230
-
231
- * Update documentation and test (fixes Ruby Forge Issue #28770).
232
-
233
- * Updated documentation in README (Anurag Priyam):
234
- 1. rake doc does not work; use rake rdoc.
235
- 2. gem mislav-hanna does not exist; use hanna.
236
- 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
237
- 4. Point to the github issue tracker instead of Ruby Forge
238
- 5. Point to the github (gh-pages) site for docs
239
-
240
- * Add tc_error to test suite (Charlie Savage).
241
-
242
- * Add sax test (Stanislav O.Pogrebnyak).
243
-
244
- == 2.0.2 / 2011-04-17 Charlie Savage
245
-
246
- * Added binaries for windows (Charlie Savage).
247
-
248
- * Update Ruby 1.9 encoding handling to support libxml versions older than
249
- version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
250
-
251
- * Add publish_with_docs rake task - combines publishing the
252
- website and docs (Anurag Priyam).
253
-
254
- * Correctly copy the documentation directory (Anurag Priyam)
255
-
256
- * Use relative link for rdoc so the links are correct on
257
- both rubyforge and github (Anurag Priyam).
258
-
259
- * Update Rakefile to use Hanna RDco template (Charlie Savage).
260
-
261
- * Update dates on license file (Charlie Savage).
262
-
263
- * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
264
-
265
- * Remove old hack to call the on_error method. This hack isn't needed anymore
266
- since a better workaround was put in place in the parser context. Fixes
267
- This fixes issue #12 (Charlie Savage).
268
-
269
- * Remove references to passing blocks to validation functions. The blocks are no
270
- longer called since the bindings use libxml's structured error handling. See
271
- issue #6 (Charlie Savage).
272
-
273
- * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
274
-
275
- * Update website text (Charlie Savage).
276
-
277
- == 2.0.0 / 2011-04-16 Charlie Savage
278
-
279
- * Ruby 1.9.2 support. The biggest addition is encoding support.
280
- Strings returned by the libxml bindings are now set to the encoding
281
- of the underlying xml document (Charlie Savage).
282
-
283
- * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
284
-
285
- * Added .gemspec file (Dudley Flanders).
286
-
287
- * Updated Windows checks to take into account mingw32 (Yaohan Chen).
288
-
289
- * Fix memory leak in Reader#Expand (Szymon Nowak).
290
-
291
- * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
292
- and Reader#read_outer_xml (Sean Geoghegan).
293
-
294
- * Node#space_preserve= was backwards (Dudley Flanders)
295
-
296
- * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
297
-
298
- * Switched to Rake Compiler (Charlie Savage).
299
-
300
- * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
301
- may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
302
- in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
303
-
304
- * Added a rake task to publish the website to github. Moved the jekyll website to
305
- web directory (Anurag Priyam).
306
-
307
- * Modernize project metadata and layout (7rans)
308
-
309
-
310
- == 1.1.3 / 2009-03-18 Charlie Savage
311
-
312
- * Improve performance 10 to 20% by turning on libxml2's dictionary
313
- feature that allows parsers to reuse previously parsed strings.
314
-
315
- * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
316
-
317
- * Correctly set up parser context options.
318
-
319
- * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
320
- update documentation.
321
-
322
- * Deprecated Node#add_child and Node#child=, use Node#<< instead
323
-
324
- * Fix documentation for Node#<<
325
-
326
- * Added Document#import to enable moving nodes from one document
327
- to another document.
328
-
329
-
330
- == 1.1.2 / 2009-03-12 Charlie Savage
331
-
332
- * Added XML::Node#inner_xml helper method.
333
-
334
- * Fix segmentation that could occur when calling the mark function on a
335
- previously freed node.
336
-
337
- == 1.1.1 / 2009-03-10 Charlie Savage
338
-
339
- * Fix - Only include extra html parser context methods for versions of libxml
340
- older than 2.6.27.
341
-
342
- == 1.1.0 / 2009-03-09 Charlie Savage
343
-
344
- * Fix bug caused by the mark function being called on partially initialized
345
- attributes.
346
-
347
- * Revert back to libxml2's internal memory manager.
348
-
349
- == 1.0.0 / 2009-03-05 Charlie Savage
350
-
351
- * OS X (Charlie Savage). Update bindings to support the default installed
352
- version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
353
- via MacPorts.
354
-
355
- == 0.9.9 / 2009-03-05 Charlie Savage
356
-
357
- * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
358
- 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
359
- for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
360
- allocation bugs (one with dtds, one with nodes) which are now fixed.
361
-
362
- * Better OS X support (Joe Khoobyar). The default version of libxml2
363
- on OS X 10.5 is fairly old, resulting in this link error:
364
-
365
- NSLinkModule() error
366
- dyld: Symbol not found: _htmlNewParserCtxt
367
-
368
- This can be fixed by using MacPorts to get a newer version of libxml2.
369
- To make use of MacPorts, the build script has been updated to use xml2-config.
370
- This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
371
- options to extconf.rb (default is --without-xml2-config to match existing behavior).
372
-
373
- * Greatly reduced memory usage (Joe Khoobyar).
374
- See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
375
-
376
- * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
377
-
378
- * Add XPath::Object#last (Joe Khoobyar)
379
-
380
- * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
381
-
382
- * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
383
- handler (Charlie Savage).
384
-
385
- * Bug fix - Support iterating over nodes and attributes even with blocks
386
- that call remove! (Charlie Savage)
387
-
388
- * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
389
-
390
- * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
391
-
392
- * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
393
-
394
- * Bug fix - Make sure IO objects are not garbage collected when used
395
- as parser sources (Charlie Savage).
396
-
397
- == 0.9.8 / 2009-1-24 Charlie Savage
398
-
399
- * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
400
- XML::Reader to have consistent APIs. All the parsers
401
- now take a context object in their constructors, allowing fine
402
- grained control over the parsers for advanced use cases. These
403
- API changes are backwards compatible except
404
- for XML::Reader, which now takes an optional hash table as a
405
- second parameter in its various constructors versus an optional
406
- boolean value.
407
-
408
- * Updated all APIs to use the encoding constants defined
409
- in XML::Encoding versus string values. This API change
410
- is not backwards compatible.
411
-
412
- * Added support for attribute declarations in DTD's via the new
413
- XML::AttrDecl class (Len Lattanzi)
414
-
415
- * Support libxml's content escaping capabilities for text nodes by
416
- wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
417
- (Joe Khoobyar).
418
-
419
- * Updated XML::Reader#read API to return true if a node was read,
420
- false if node was not read and raises an exception on an error.
421
- Previously #read returned 1 if a node was read, 0 if a node was
422
- not read and -1 for an error. This change is not backwards
423
- compatible, but provides a more natural interface for Ruby by
424
- allowing code like this:
425
-
426
- while reader.read
427
- # do stuff
428
- end
429
-
430
- * Changed XML::Error exception objects to return copies of nodes that
431
- cause parse errors instead of the original node. This prevents
432
- segmentation faults when the error is reraised.
433
-
434
- * Added XML::Reader#node method.
435
-
436
- * Fixed compile errors on OS X which uses an older version of libxml.
437
-
438
- * Fixed memory leak when performing XPath searches.
439
-
440
- * Fixed rdocs.
441
-
442
- * Don't override libxml's default settings for entity substitution and
443
- loading external DTDs. This may break some code - you may need to
444
- add in a call to XML.default_substitute_entities = true or
445
- XML.default_load_external_dtd = true.
446
-
447
-
448
- == 0.9.7 / 2008-12-08 Charlie Savage
449
-
450
- * Added SAX2 support. SAX handlers now define two new callbacks,
451
- on_start_element_ns and on_end_element_ns methods. These
452
- new callbacks support namespaces, making them superior to the older
453
- callbacks on_start_element and on_end_element methods. The old callbacks
454
- are still supported, but may be deprecated in the future depending
455
- on community feedback.
456
-
457
- * Added SAX support for libxml's structured error handling.
458
- That menas sax handlers now define a new callback, on_error,
459
- which takes one parameter, an instance of XML::Error. The older
460
- on_parser_error, on_parser_warning and on_parser_fatal_error
461
- callbacks are no longer suported so you must port your code.
462
- Note that the older callbacks took one string parameter, instead of
463
- an XML::Error object.
464
-
465
- * Experimental work-around for libxml error handling bug - see
466
- http://mail.gnome.org/archives/xml/2008-December/msg00014.html
467
- for more information.
468
-
469
- * Fix compilation bugs on Solaris.
470
-
471
- * Fix Rdoc compilation bug.
472
-
473
-
474
- == 0.9.6 / 2008-12-08 Charlie Savage
475
-
476
- * Refactored namespace handling. The existing, and inconsistent,
477
- namespace methods defined on XML::Node have been deprecated.
478
- They have been replaced by a the new XML::Namespaces class.
479
- Use this class to inspect a node's namespace, its default
480
- namespace, its namespace definitions and which namespaces
481
- are in scope. It can be accessed via the the
482
- XML::Node#namespaces method.
483
-
484
- * Rationalized XML::Document#save, XML::Document#to_s and
485
- XML::Node#to_s to take an optional hash table of parameters
486
- that control how output is generated. Supported parameters
487
- include setting indentation on or off, the indentation level
488
- and the output encoding. This is an API change and may break
489
- existing calls to XML::Document#save. However, the previous
490
- API was broken - setting the encoding resulted in an error so
491
- its unlikely anyone is using it.
492
-
493
- * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
494
-
495
- * Deprecated a number of duplicate dump* and debug_* methods in
496
- XML::Document and XML::Node.
497
-
498
- * Additional Ruby 1.9.1 compatability fixes.
499
-
500
- * Cleaned up header file guards.
501
-
502
- == 0.9.5 / 2008-11-29 Charlie Savage
503
-
504
- * Ruby 1.9.1 preview release compatability (Felipe Contreras)
505
-
506
- * Update Node#remove! to return the removed node and to set
507
- its document to nil. This allows the node to be either
508
- moved to another document, another part of the same document
509
- or to be freed on the next garbage collection once its
510
- references have gone out of scope.
511
-
512
- * Fix bug where XPathExpression#compile mistakenly overwrote
513
- RegExp#compile.
514
-
515
- * Update Node to use standard ruby allocators and initializers.
516
-
517
- * Update HTML parser to be more forgiving of invalid documents.
518
-
519
- * Update include paths for Darwin Ports on OS X.
520
-
521
- * Updated C code base to use BSD/Allman style
522
-
523
-
524
- == 0.9.4 / 2008-11-24 Charlie Savage
525
-
526
- * Update HTML parser so that it can read files, strings and io
527
- streams.
528
-
529
- * Update HTML parser to support user specified encodings.
530
-
531
- * Additional C code cleanup.
532
-
533
- == 0.9.3 / 2008-11-22 Charlie Savage
534
-
535
- * Fixed segmentation fault caused by documents being freed
536
- before xpath results that referenced the document (take 2).
537
-
538
- * Allowed sax parser to use io stream
539
-
540
- * Combined encoding and input classes
541
-
542
- * Cleaned up C code - removed remaining legacy structures,
543
- added static to most methods, changed C namespace from ruby_xml
544
- to rxml
545
-
546
- == 0.9.2 / 2008-11-19 Charlie Savage
547
-
548
- * Add support for compiled XPath expressions (donated by Pavel Valodzka)
549
-
550
- * Fixes for compiling on OS X 10.5.4 and 10.5.5
551
-
552
- == 0.9.1 / 2008-11-18 Charlie Savage
553
-
554
- * Expose LibXML's encoding support via a new Encoding object.
555
-
556
- * Revamp error handling to be much easier to use. Errors are now
557
- wrapped by the new XML::Error class and are thrown as exceptions
558
- when it is appropriate.
559
-
560
- * Fixed segmentation fault caused by documents being freed
561
- before xpath results that referenced the document.
562
-
563
- * Add Node#register_default_namespace to simplify default namespace handling.
564
-
565
- * Significantly improve documentation
566
-
567
- * A number of bug fixes and patches.
568
-
569
- == 0.9.0 / 2008-11-18 Charlie Savage
570
-
571
- * Version 0.9.0 was removed due to packaging errors.
572
-
573
-
574
- == 0.8.3 / 2008-07-21 Charlie Savage
575
-
576
- * Missed several files in last release
577
-
578
- == 0.8.2 / 2008-07-21 Charlie Savage
579
-
580
- * To use LibXML you can either require 'xml' or require 'libxml'.
581
- The differences is that require 'xml' mixes the LibXML module into
582
- the global namespace, thereby allowing you to write code such
583
- as document = XML::Document.new. Note that this is different
584
- from 0.8.0 and 0.8.1 and may require updating your code.
585
-
586
- * Support RelaxNG validation (thanks to Morus Walter)
587
-
588
- * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
589
-
590
- * Fix segmentation fault caused by adding an attribute to a CDATA node
591
-
592
- * Moved node checking functions from C to Ruby
593
-
594
- * Improved Windows support - libxml-ruby should now work out of the box.
595
-
596
- * Improved Windows support - turned on libxml's zlib and iconv support.
597
-
598
-
599
- == 0.8.1 / 2008-07-09 Charlie Savage
600
-
601
- * Reimplmented Node#each_attr for backwards compatability
602
-
603
- * Moved node type test to Ruby.
604
-
605
-
606
- == 0.8.0 / 2008-07-09 Charlie Savage
607
-
608
- * Fixed bug in returning attributes from XPath results
609
-
610
- * Fixed DOM traversal methods
611
-
612
- * Changed Node#children to return an array of nodes
613
-
614
- * Fixed bug in returning attributes from XPath results
615
-
616
- * Refactored XPath support, providing more user hooks in the XPath::Context class
617
-
618
- * Added Node#properties for backwards compatibility
619
-
620
- * Updated setup.rb
621
-
622
- * Added more tests
623
-
624
- * Updated rdocs and README file
625
-
626
- * Moved libxml into LibXML namespace
627
-
628
-
629
- == 0.7.0 / 2008-07-09 Charlie Savage
630
-
631
- * Added new attributes class to provide a more natural way of working with attributes
632
-
633
- * Fixed XML::Attr to better support namespaces
634
-
635
- * Added documentation on how to use namespaces with XPath
636
-
637
- * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
638
-
639
- * Cleaned up tests and added new test suite
640
-
641
- * Updated rdocs and README file
642
-
643
- * Cleaned out most of the bug list
644
-
645
-
646
- == 0.6.0 / 2008-07-01 Charlie Savage
647
-
648
- * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
649
-
650
- * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
651
-
652
- * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
653
-
654
- * Cleaned up a number of compiler warnings
655
-
656
- * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
657
-
658
- * Added rake files for building with MingW
659
-
660
- * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
661
-
662
- * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
663
-
664
- * Cleaned out the patch queue and went through about 1/2 the bug list
665
-
666
-
667
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
668
-
669
- * Merged Dan's MEM2 branch to trunk.
670
-
671
- == 0.5.3 /
672
-
673
- === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
674
-
675
- * Merged Dan's MEM2 branch to trunk.
676
-
677
-
678
- == 0.5.2 / 2007-10-10
679
-
680
- === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
681
-
682
- * (Dan, fill in the major points of the changes you made up to here -thanks)
683
-
684
- === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
685
-
686
- * Added some preliminary RDoc comments for XML::Reader.
687
-
688
- === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
689
-
690
- * Added XML::Reader, a set of bindings to the xmlTextReader API.
691
-
692
-
693
- == 0.3.8.4 / 2006-12-02
694
-
695
- === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
696
-
697
- * Implemented SAX parser callback handling.
698
-
699
- === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
700
-
701
- * Integrated and tested community patches.
702
- * Defined XML::Node (hash) equality in terms of XML representation.
703
-
704
- === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
705
-
706
- * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
707
- * Fixed memory leak in same
708
-
709
- === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
710
-
711
- * Added XML::Node::Set#first (mvette13) [patch]
712
- * Added XML::Node::Set#empty?
713
- * Fixed XML::Node::Set#to_a
714
- * Added XML::Node#find_first
715
- * Added XML::Node#remove!
716
-
717
- === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
718
-
719
- * Integrated contributed XML::Parser.register_error_handler patch (rosco)
720
-
721
- === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
722
-
723
- * Fixed all multiple symbol definitions for -fno-common.
724
- * Removed OSX -fno-common workaround.
725
-
726
-
727
- == 0.3.6 / 2006-02-23
728
-
729
- === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
730
-
731
- * Patched extconf.rb with OSX -fno-common workaround
732
- * Added gem and packaging support to Rakefile
733
- * Moved version update to Rakefile
734
- * Removed legacy project utility scripts
735
-
736
- === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
737
-
738
- * Fixed doublefree bug in ruby_xml_attr.
739
- * Fixed small leak in parser
740
-
741
- === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
742
-
743
- * Updated for GCC 4.0 (community patches)
744
- * Fixed default validation bug
745
- * Refactored project, removed outdated files, cleaned up tests.
746
- * Added RDoc documentation across .c files.
747
- * Fixed up a few strings.
748
-
749
- === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
750
-
751
- * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
752
- was, that there was added a second attribute of the same
753
- name, when you were setting the value of an already existing
754
- attribute.
755
-
756
- === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
757
-
758
- * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
759
-
760
- === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
761
-
762
- * ruby_xml_node.c: added XML::Node.copy, this makes possible building
763
- of xml documents from nodes taken from other xml documents
764
- without making ruby SIGSEGV (see tests/copy_bug.rb).
765
-
766
- === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
767
-
768
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
769
- more work on validation, now you can actually validate
770
- document using dtd or xml schema, also solved warning and
771
- error propagation (see tests/{dtd|schema}-test.rb).
772
-
773
- === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
774
-
775
- * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
776
- prelimitary support for dtd and schema validation
777
-
778
- === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
779
-
780
- * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
781
- possible registering custom input callbacks
782
- handlers (xmlRegisterInputCallbacks) written in ruby
783
-
784
- === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
785
-
786
- * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
787
- * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
788
-
789
-
790
-
1
+ = Release History
2
+
3
+ == 3.0.0 / 2017-02-07 Charlie Savage
4
+
5
+ * Revamp how libxml-ruby manages memory. Instead of trying to return the same ruby object for each xmlnode,
6
+ the bindings now create wrapper ruby objects as needed which are then freed at the end of use.
7
+ This allows most memory management to be handled by libxml itself. Ruby only manages the lifespan of
8
+ documents and parent xml nodes. When those go out of scope, the underlying libxml objects are also freed.
9
+ This implementation requires almost no overhead, plays nicely with Nokogiri and appears to work much
10
+ better (Charlie Savage).
11
+
12
+ * Change XML::Node#eql? API. Nodes are now considered equal only if they wrap the same underlying
13
+ libxml node. Previously, they would also be considered equal if they contained the same content
14
+ (Charlie Savage)
15
+
16
+ * Change XML::Reader.expand API. Previously it would automatically instantiate a reader document so
17
+ the an xpath expression could be used to search the returned node. Now you should first call
18
+ reader.doc (Charlie Savage)
19
+
20
+ * Update Visual Studio project for Visual Studio 15 - requires ruby 2.4+ (Charlie Savage)
21
+
22
+ * Remove APIs that have been deprecated for several years (Charlie Savage)
23
+
24
+ == 2.9.0 / 2016-06-13 Charlie Savage
25
+
26
+ * Revamp libxml-ruby's memory management to not cause crashes when used with Nokogiri (James Laird-Wah)
27
+ * Fix garbage collection issue that sometimes caused the library to hang (Charlie Savage)
28
+ * Improved multi-threading support (Charlie Savage)
29
+ * Fix crash sometimes caused by a xml node being being freed twice (Charlie Savage)
30
+ * Fix memory leak when setting the text content of a node (Charlie Savage)
31
+ * Set a default task in the Rakefile - use "test" (Robert Haines)
32
+ * Add "hanna_gudao" gem and add "rake-compiler" to develpoment dependencies (Robert Haines)
33
+ * Use Process.getrlimit instead of `ulimit` in the tests (Robert Haines)
34
+ * Build on smartos (Steven Williamson)
35
+ * Fix compiler warnings (Charlie Savage)
36
+ * Add Xcode project for easier debugging on OSX (Charlie Savage)
37
+ * Switch from unit test to minitest (Charlie Savage)
38
+
39
+ == 2.8.0 / 2015-01-09 Charlie Savage
40
+
41
+ * Use RbConfig instead of Config in extconf.rb (Robert Haines)
42
+ * Correct xpath documentation XML (Bill Mill)
43
+ * Correct from_string method documentation (Bill Mill)
44
+ * Fix compile error with debug not enabled in libxml (Patrick Ziegler)
45
+ * Update gemspec to include license (Charlie Savage)
46
+ * In XML::Writer prevent writing to io while being GCed (Brett Gibson)
47
+
48
+ == 2.7.0 / 2013-08-13 Charlie Savage
49
+
50
+ * Don't call rb_warning in GC mark function (Dirkjan Bussink)
51
+ * Set libxml error handler when a libxml-ruby error handler is set (Geoffrey Giesemann)
52
+ * Fix tests for nil TypeErrors for ruby 2.0=< (Geoffrey Giesemann)
53
+ * Fix segmentation fault for issue #62 (Charlie Savage)
54
+ * Add #node_type method to dtd (Charlie Savage)
55
+ * Fixing equality check of LibXML::XML::Error against other objects (Michał Szajbe)
56
+ * Fix #63, XML::Writer.set_quote_char UT, wrong expected string (julp)
57
+ * Fix potential segfault when GC occurs while creating ns from xpath (Timothy Elliott)
58
+ * Fix for #59, segmentation fault after failure to load external schema (Clifford Heath)
59
+
60
+ == 2.6.0 / 2013-02-16 Charlie Savage
61
+
62
+ * Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
63
+ with older versions of libxml.
64
+ * Various updates/fixes to new XML::Writer class and update how flushing works (julp)
65
+
66
+ == 2.5.0 / 2013-01-27 Charlie Savage
67
+
68
+ * Compatibility with older versions for IO::write (rb_io_bufwrite is specific to ruby >= 1.9.3?)
69
+ and symbols are VALUE not ID (julp).
70
+ * Fix version for xmlTextWriterSetQuoteChar, it appeared in libxml2 2.9.0, last version (julp)
71
+ * Update use of LIBXML_VERSION (julp).
72
+ * Fix misuse of rb_scan_args (julp).
73
+ * Update documentation, including DTD docs and added XML Writer (julp).
74
+ * Added a new XML::Writer class (julp).
75
+ * Improved xml reader api and add namespace support. Note that passing a numeric value
76
+ to XML::Reader::move_to_attribute has been deprecated. Instead you should now
77
+ use #move_to_attribute_no. (julp).
78
+ * Improve error handling and messages (Jarl Friis)
79
+
80
+ == 2.4.0 / 2012-12-14 Charlie Savage
81
+
82
+ * Support libxml 2.9.0 (Daniel Veillard)
83
+
84
+ * Extensive new interfaces for xml schema functionality including suppor for
85
+ schemal elements, types, facets and attributes (Anton Sozontov)
86
+
87
+ * Fix Encoding#from_s bug and update docs (Nikita Afanasenko)
88
+
89
+ * Node#content= encoding (Nikita Afanasenko)
90
+
91
+ == 2.3.3 / 2012-07-01 Charlie Savage
92
+
93
+ * Add LibXML::XML::Error.get_handler (Carsten Zimmermann)
94
+ * Fix variable name in example (Marcus)
95
+
96
+ == 2.3.2 / 2012-03-20 Charlie Savage
97
+
98
+ * Define various canonicalize constants to support libxml2 versions
99
+ older than 1.1.25 (thanks Apple!)
100
+
101
+ == 2.3.1 / 2012-03-20 Charlie Savage
102
+
103
+ * Yanked - didn't fix the OSX canonicalize issue
104
+
105
+ == 2.3.0 / 2012-03-18 Charlie Savage
106
+
107
+ * Add ability to insert new PI-nodes into the xmltree (Axel Struebing).
108
+
109
+ * Added full pass-through access to libxml2 xmlC14NDocDumpMemory method via
110
+ LibXML::XML::Document#canonicalize method with optional arguments.
111
+
112
+ * Added full test data for C14N based off of W3C spec.
113
+ (http://www.w3.org/TR/xml-c14n#Examples)
114
+
115
+ * Update sax handler to support encodings on Ruby 1.9 and higher.
116
+
117
+ == 2.2.2 / 2011-08-29 Charlie Savage
118
+
119
+ * ++API CHANGE+++
120
+
121
+ Reader#relax_ng_validate now takes a RelaxNG object. This is
122
+ what the documentation has always said it takes, but it previously
123
+ took a string. In addition, it now returns true or false instead of 0 or -1.
124
+
125
+ Reader#schema_validate now takes a Schema object. This is
126
+ what the documentation has always said it takes, but it previously
127
+ took a string. In addition, it now returns true or false instead of 0 or -1.
128
+
129
+ Fixes GitHub issue #30.
130
+
131
+ * Added Parser::Context#close and HTMLParser::Context#close methods that
132
+ allow the underlying io stream (file, string, etc) to be closed. Once a
133
+ parser is done parsing its data, it now calls one of these methods.
134
+ This means that if you parse thousands of files at the same time,
135
+ without running Ruby's garbage colllector, you won't get a too
136
+ many files open error. Fixes GitHub issue #29.
137
+
138
+ * Fixed bug where Node#inner_xml caused an error when it had no child nodes.
139
+ Fixes GitHub issues #31
140
+
141
+ * Don't require 'rake' in the gemspec to avoid annoying Bundler bugs
142
+
143
+ == 2.2.1 / 2011-08-13 Charlie Savage
144
+
145
+ * Packaging fix - include the custom .def file in the gem.
146
+
147
+ == 2.2.0 / 2011-08-09 Charlie Savage
148
+
149
+ * Update encoding support for Ruby 1.9 so that libxml-ruby returns
150
+ strings encoded in UTF-8. This change was required since libxml internally
151
+ stores strings in UTF-8. The exceptions to this rule are the #to_s methods
152
+ which return UTF-8 by default but can return other encodings if requested.
153
+
154
+ == 2.1.2 / 2011-08-03 Charlie Savage
155
+
156
+ * Fix segmentation fault that could occur when an XPathContext was marked
157
+ before it was fully initialized (Charlie Savage).
158
+
159
+ * Add mark method to document to mark all nodes currently being accessed
160
+ by ruby. This make Ruby Enterprise Edition happy (Charlie Savage).
161
+
162
+ == 2.1.1 / 2011-07-31 Charlie Savage
163
+
164
+ * Switch to using def files to control library exports (Charlie Savage).
165
+
166
+ == 2.1.0 / 2011-07-31 Charlie Savage
167
+
168
+ * Ruby 1.9.3 compatability (Charlie Savage).
169
+
170
+ * Added XPath expression <-> Ruby value conversion methods (Jens Wille).
171
+
172
+ * Extracted rxml_xpath_to_value from rxml_xpath_context_find (Jens Wille).
173
+
174
+ * Adapted rxml_xpath_from_value from Gregoire Lejeune's ruby-xslt
175
+ library, see https://github.com/glejeune/ruby-xslt (Jens Wille).
176
+
177
+ * Allow calling #find on nodes returned from Reader (Charlie Savage).
178
+
179
+ * Change document handling in XPath::Context to address segmentation fault on
180
+ Ruby Enterprise Edition (Charlie Savage).
181
+
182
+ * Update gemspec file to work directly with bundler thereby allowing git
183
+ repository to be used as gem (Charlie Savage).
184
+
185
+ * Support gem buld (Charlie Savage).
186
+
187
+ * Simplify memory management of attributes namespaces to fix
188
+ segmentation faults that occurred when using Ruby 1.9.3 (Charlie Savage).
189
+
190
+
191
+ == 2.0.8 / 2011-06-23 Charlie Savage
192
+
193
+ * Add in 2 new HTML Parser constants - NODEFDTD and NOIMPLIED.
194
+
195
+ * Fix compile issue on Ruby 1.9.3
196
+
197
+ == 2.0.6 / 2011-05-23 Charlie Savage
198
+
199
+ * Fix segfault that sometimes occurred when looking up encodings on 1.9.
200
+ In some cases the Ruby encoding infrastructure was not properly
201
+ initialized (nkriege).
202
+
203
+ == 2.0.5 / 2011-05-05 Charlie Savage
204
+
205
+ * Document#validate_dtd would sometimes cause segmentation faults due to
206
+ an improperly initialized data structure (Charlie Savage)
207
+
208
+ == 2.0.4 / 2011-05-02 Charlie Savage
209
+
210
+ * Fix compile issues on platforms using older versions of libxml2.
211
+ The problem as using a C14N constants that was added to libxml2
212
+ in July 2009 (Charlie Savage).
213
+
214
+ == 2.0.3 / 2011-05-01 Charlie Savage
215
+
216
+ * The biggest change in this release is supporting the use of libxml-ruby in
217
+ native background Ruby threads. Previously, the use of libxml-ruby in
218
+ background threads in Ruby 1.9.x and higher would often cause
219
+ segmentation faults. This has now been fixed (Charlie Savage).
220
+
221
+ * Update Reader#expand so that returned node correctly remembers its
222
+ encoding in Ruby 1.9.x (zerebubuth).
223
+
224
+ * Add check to verify a node has not been deleted. This can happen when
225
+ a ruby variable holds a reference to a child node that gets freed
226
+ when its parent gets freed. Previously when this happened a
227
+ segmentation fault would occur, now an exception is raised (Charlie Savage, fixes
228
+ RubyForge #26839.
229
+
230
+ * Do not unlink nodes before internal validations have run - avoids
231
+ segmentation faults caused by freeing a node twice (Charlie Savage).
232
+
233
+ * Add support for Document#canonicalization (Victor Lin).
234
+
235
+ * Fix memory leak in Reader#lookup_namespace (Charlie Savage).
236
+
237
+ * Fix memory leak in Reader#[] (Nathan Kriege).
238
+
239
+ * Fix usage of @io instance variable (Jeffrey Taylor)
240
+
241
+ * Removed old sax error handling code that has been fixed in newer
242
+ versions of libxml (Charlie Savage).
243
+
244
+ * Code cleanup - remove unused variables and commented out code (Charlie Savage)
245
+
246
+ * Minor text changes and documentation fixes (Charlie Savage).
247
+
248
+ * Fix documentation error (fixes RubyForge #26888).
249
+
250
+ * Update documentation for Document#validation* methods (fixes RubyForge #24833).
251
+
252
+ * Update documentation and test (fixes Ruby Forge Issue #28770).
253
+
254
+ * Updated documentation in README (Anurag Priyam):
255
+ 1. rake doc does not work; use rake rdoc.
256
+ 2. gem mislav-hanna does not exist; use hanna.
257
+ 3. rake rdoc 'depends' on hanna; no need of RDOCOPTS
258
+ 4. Point to the github issue tracker instead of Ruby Forge
259
+ 5. Point to the github (gh-pages) site for docs
260
+
261
+ * Add tc_error to test suite (Charlie Savage).
262
+
263
+ * Add sax test (Stanislav O.Pogrebnyak).
264
+
265
+ == 2.0.2 / 2011-04-17 Charlie Savage
266
+
267
+ * Added binaries for windows (Charlie Savage).
268
+
269
+ * Update Ruby 1.9 encoding handling to support libxml versions older than
270
+ version 2.6.26 which was released on June 6, 2006 (Charlie Savage).
271
+
272
+ * Add publish_with_docs rake task - combines publishing the
273
+ website and docs (Anurag Priyam).
274
+
275
+ * Correctly copy the documentation directory (Anurag Priyam)
276
+
277
+ * Use relative link for rdoc so the links are correct on
278
+ both rubyforge and github (Anurag Priyam).
279
+
280
+ * Update Rakefile to use Hanna RDco template (Charlie Savage).
281
+
282
+ * Update dates on license file (Charlie Savage).
283
+
284
+ * Add api to allow setting of attribute namespaces. Fixes issue #10 (Charlie Savage).
285
+
286
+ * Remove old hack to call the on_error method. This hack isn't needed anymore
287
+ since a better workaround was put in place in the parser context. Fixes
288
+ This fixes issue #12 (Charlie Savage).
289
+
290
+ * Remove references to passing blocks to validation functions. The blocks are no
291
+ longer called since the bindings use libxml's structured error handling. See
292
+ issue #6 (Charlie Savage).
293
+
294
+ * Fix up comment in Document and Node. See issue #8 (Charlie Savage).
295
+
296
+ * Update website text (Charlie Savage).
297
+
298
+ == 2.0.0 / 2011-04-16 Charlie Savage
299
+
300
+ * Ruby 1.9.2 support. The biggest addition is encoding support.
301
+ Strings returned by the libxml bindings are now set to the encoding
302
+ of the underlying xml document (Charlie Savage).
303
+
304
+ * Rubinius compatability. Removed unnecessary use of RHASH_TBL (Aman Gupta)
305
+
306
+ * Added .gemspec file (Dudley Flanders).
307
+
308
+ * Updated Windows checks to take into account mingw32 (Yaohan Chen).
309
+
310
+ * Fix memory leak in Reader#Expand (Szymon Nowak).
311
+
312
+ * Fix memory leaks in Reader#read_string, Reader#read_inner_xml
313
+ and Reader#read_outer_xml (Sean Geoghegan).
314
+
315
+ * Node#space_preserve= was backwards (Dudley Flanders)
316
+
317
+ * Fixed typo in readme, added rdoc extension (Loren Sands-Ramshaw).
318
+
319
+ * Switched to Rake Compiler (Charlie Savage).
320
+
321
+ * Use xmlMalloc() memory for ctxt->sax structure. Sometimes the ctxt->sax pointer
322
+ may not be zeroed in rxml_sax_parser_parse(), for example when exception is raised
323
+ in one of callbacks. This lets xmlFreeParserCtxt() clean this up (Alexey I. Froloff).
324
+
325
+ * Added a rake task to publish the website to github. Moved the jekyll website to
326
+ web directory (Anurag Priyam).
327
+
328
+ * Modernize project metadata and layout (7rans)
329
+
330
+
331
+ == 1.1.3 / 2009-03-18 Charlie Savage
332
+
333
+ * Improve performance 10 to 20% by turning on libxml2's dictionary
334
+ feature that allows parsers to reuse previously parsed strings.
335
+
336
+ * Fix XML::Node#remove! to work correctly with libxml's dictionary feature.
337
+
338
+ * Correctly set up parser context options.
339
+
340
+ * Simplify DOM modification code (Node#next=, Node#prev=, Node#sibling=) and
341
+ update documentation.
342
+
343
+ * Deprecated Node#add_child and Node#child=, use Node#<< instead
344
+
345
+ * Fix documentation for Node#<<
346
+
347
+ * Added Document#import to enable moving nodes from one document
348
+ to another document.
349
+
350
+
351
+ == 1.1.2 / 2009-03-12 Charlie Savage
352
+
353
+ * Added XML::Node#inner_xml helper method.
354
+
355
+ * Fix segmentation that could occur when calling the mark function on a
356
+ previously freed node.
357
+
358
+ == 1.1.1 / 2009-03-10 Charlie Savage
359
+
360
+ * Fix - Only include extra html parser context methods for versions of libxml
361
+ older than 2.6.27.
362
+
363
+ == 1.1.0 / 2009-03-09 Charlie Savage
364
+
365
+ * Fix bug caused by the mark function being called on partially initialized
366
+ attributes.
367
+
368
+ * Revert back to libxml2's internal memory manager.
369
+
370
+ == 1.0.0 / 2009-03-05 Charlie Savage
371
+
372
+ * OS X (Charlie Savage). Update bindings to support the default installed
373
+ version of libxml2 (2.6.16) on OS X 10.5 and the latest version available
374
+ via MacPorts.
375
+
376
+ == 0.9.9 / 2009-03-05 Charlie Savage
377
+
378
+ * Ruby 1.9.1 support (Charlie Savage). libxml-ruby now compiles and runs on either
379
+ 1.8.6 and 1.9.1. With 1.8.6 all tests should pass while on 1.9.1 all but
380
+ for encoding tests pass. The port to Ruby 1.9.1 revealed two memory
381
+ allocation bugs (one with dtds, one with nodes) which are now fixed.
382
+
383
+ * Better OS X support (Joe Khoobyar). The default version of libxml2
384
+ on OS X 10.5 is fairly old, resulting in this link error:
385
+
386
+ NSLinkModule() error
387
+ dyld: Symbol not found: _htmlNewParserCtxt
388
+
389
+ This can be fixed by using MacPorts to get a newer version of libxml2.
390
+ To make use of MacPorts, the build script has been updated to use xml2-config.
391
+ This can be fine-tuned using the new --with-xml2-config / --without-xml2-config
392
+ options to extconf.rb (default is --without-xml2-config to match existing behavior).
393
+
394
+ * Greatly reduced memory usage (Joe Khoobyar).
395
+ See http://rubyforge.org/pipermail/libxml-devel/2009-February/001375.html.
396
+
397
+ * Add Document#xhtml? and document#node_type methods (Joe Khoobyar)
398
+
399
+ * Add XPath::Object#last (Joe Khoobyar)
400
+
401
+ * Provide finer control over CDATA nodes on a parser by parser basis (Joe Khoobyar).
402
+
403
+ * Bug fix - Namespaces were incorrectly merged with attributes in the new sax2
404
+ handler (Charlie Savage).
405
+
406
+ * Bug fix - Support iterating over nodes and attributes even with blocks
407
+ that call remove! (Charlie Savage)
408
+
409
+ * Bug fix - If reader.node is NULL, return nil instead of crashing (Charlie Savage)
410
+
411
+ * Bug fix - Dtd's owned by documents were freed twice in some circumstances (Joe Khoobyar).
412
+
413
+ * Bug fix - Fix output escaping on attributes nodes (Joe Khoobyar).
414
+
415
+ * Bug fix - Make sure IO objects are not garbage collected when used
416
+ as parser sources (Charlie Savage).
417
+
418
+ == 0.9.8 / 2009-1-24 Charlie Savage
419
+
420
+ * Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
421
+ XML::Reader to have consistent APIs. All the parsers
422
+ now take a context object in their constructors, allowing fine
423
+ grained control over the parsers for advanced use cases. These
424
+ API changes are backwards compatible except
425
+ for XML::Reader, which now takes an optional hash table as a
426
+ second parameter in its various constructors versus an optional
427
+ boolean value.
428
+
429
+ * Updated all APIs to use the encoding constants defined
430
+ in XML::Encoding versus string values. This API change
431
+ is not backwards compatible.
432
+
433
+ * Added support for attribute declarations in DTD's via the new
434
+ XML::AttrDecl class (Len Lattanzi)
435
+
436
+ * Support libxml's content escaping capabilities for text nodes by
437
+ wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
438
+ (Joe Khoobyar).
439
+
440
+ * Updated XML::Reader#read API to return true if a node was read,
441
+ false if node was not read and raises an exception on an error.
442
+ Previously #read returned 1 if a node was read, 0 if a node was
443
+ not read and -1 for an error. This change is not backwards
444
+ compatible, but provides a more natural interface for Ruby by
445
+ allowing code like this:
446
+
447
+ while reader.read
448
+ # do stuff
449
+ end
450
+
451
+ * Changed XML::Error exception objects to return copies of nodes that
452
+ cause parse errors instead of the original node. This prevents
453
+ segmentation faults when the error is reraised.
454
+
455
+ * Added XML::Reader#node method.
456
+
457
+ * Fixed compile errors on OS X which uses an older version of libxml.
458
+
459
+ * Fixed memory leak when performing XPath searches.
460
+
461
+ * Fixed rdocs.
462
+
463
+ * Don't override libxml's default settings for entity substitution and
464
+ loading external DTDs. This may break some code - you may need to
465
+ add in a call to XML.default_substitute_entities = true or
466
+ XML.default_load_external_dtd = true.
467
+
468
+
469
+ == 0.9.7 / 2008-12-08 Charlie Savage
470
+
471
+ * Added SAX2 support. SAX handlers now define two new callbacks,
472
+ on_start_element_ns and on_end_element_ns methods. These
473
+ new callbacks support namespaces, making them superior to the older
474
+ callbacks on_start_element and on_end_element methods. The old callbacks
475
+ are still supported, but may be deprecated in the future depending
476
+ on community feedback.
477
+
478
+ * Added SAX support for libxml's structured error handling.
479
+ That menas sax handlers now define a new callback, on_error,
480
+ which takes one parameter, an instance of XML::Error. The older
481
+ on_parser_error, on_parser_warning and on_parser_fatal_error
482
+ callbacks are no longer suported so you must port your code.
483
+ Note that the older callbacks took one string parameter, instead of
484
+ an XML::Error object.
485
+
486
+ * Experimental work-around for libxml error handling bug - see
487
+ http://mail.gnome.org/archives/xml/2008-December/msg00014.html
488
+ for more information.
489
+
490
+ * Fix compilation bugs on Solaris.
491
+
492
+ * Fix Rdoc compilation bug.
493
+
494
+
495
+ == 0.9.6 / 2008-12-08 Charlie Savage
496
+
497
+ * Refactored namespace handling. The existing, and inconsistent,
498
+ namespace methods defined on XML::Node have been deprecated.
499
+ They have been replaced by a the new XML::Namespaces class.
500
+ Use this class to inspect a node's namespace, its default
501
+ namespace, its namespace definitions and which namespaces
502
+ are in scope. It can be accessed via the the
503
+ XML::Node#namespaces method.
504
+
505
+ * Rationalized XML::Document#save, XML::Document#to_s and
506
+ XML::Node#to_s to take an optional hash table of parameters
507
+ that control how output is generated. Supported parameters
508
+ include setting indentation on or off, the indentation level
509
+ and the output encoding. This is an API change and may break
510
+ existing calls to XML::Document#save. However, the previous
511
+ API was broken - setting the encoding resulted in an error so
512
+ its unlikely anyone is using it.
513
+
514
+ * Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.
515
+
516
+ * Deprecated a number of duplicate dump* and debug_* methods in
517
+ XML::Document and XML::Node.
518
+
519
+ * Additional Ruby 1.9.1 compatability fixes.
520
+
521
+ * Cleaned up header file guards.
522
+
523
+ == 0.9.5 / 2008-11-29 Charlie Savage
524
+
525
+ * Ruby 1.9.1 preview release compatability (Felipe Contreras)
526
+
527
+ * Update Node#remove! to return the removed node and to set
528
+ its document to nil. This allows the node to be either
529
+ moved to another document, another part of the same document
530
+ or to be freed on the next garbage collection once its
531
+ references have gone out of scope.
532
+
533
+ * Fix bug where XPathExpression#compile mistakenly overwrote
534
+ RegExp#compile.
535
+
536
+ * Update Node to use standard ruby allocators and initializers.
537
+
538
+ * Update HTML parser to be more forgiving of invalid documents.
539
+
540
+ * Update include paths for Darwin Ports on OS X.
541
+
542
+ * Updated C code base to use BSD/Allman style
543
+
544
+
545
+ == 0.9.4 / 2008-11-24 Charlie Savage
546
+
547
+ * Update HTML parser so that it can read files, strings and io
548
+ streams.
549
+
550
+ * Update HTML parser to support user specified encodings.
551
+
552
+ * Additional C code cleanup.
553
+
554
+ == 0.9.3 / 2008-11-22 Charlie Savage
555
+
556
+ * Fixed segmentation fault caused by documents being freed
557
+ before xpath results that referenced the document (take 2).
558
+
559
+ * Allowed sax parser to use io stream
560
+
561
+ * Combined encoding and input classes
562
+
563
+ * Cleaned up C code - removed remaining legacy structures,
564
+ added static to most methods, changed C namespace from ruby_xml
565
+ to rxml
566
+
567
+ == 0.9.2 / 2008-11-19 Charlie Savage
568
+
569
+ * Add support for compiled XPath expressions (donated by Pavel Valodzka)
570
+
571
+ * Fixes for compiling on OS X 10.5.4 and 10.5.5
572
+
573
+ == 0.9.1 / 2008-11-18 Charlie Savage
574
+
575
+ * Expose LibXML's encoding support via a new Encoding object.
576
+
577
+ * Revamp error handling to be much easier to use. Errors are now
578
+ wrapped by the new XML::Error class and are thrown as exceptions
579
+ when it is appropriate.
580
+
581
+ * Fixed segmentation fault caused by documents being freed
582
+ before xpath results that referenced the document.
583
+
584
+ * Add Node#register_default_namespace to simplify default namespace handling.
585
+
586
+ * Significantly improve documentation
587
+
588
+ * A number of bug fixes and patches.
589
+
590
+ == 0.9.0 / 2008-11-18 Charlie Savage
591
+
592
+ * Version 0.9.0 was removed due to packaging errors.
593
+
594
+
595
+ == 0.8.3 / 2008-07-21 Charlie Savage
596
+
597
+ * Missed several files in last release
598
+
599
+ == 0.8.2 / 2008-07-21 Charlie Savage
600
+
601
+ * To use LibXML you can either require 'xml' or require 'libxml'.
602
+ The differences is that require 'xml' mixes the LibXML module into
603
+ the global namespace, thereby allowing you to write code such
604
+ as document = XML::Document.new. Note that this is different
605
+ from 0.8.0 and 0.8.1 and may require updating your code.
606
+
607
+ * Support RelaxNG validation (thanks to Morus Walter)
608
+
609
+ * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
610
+
611
+ * Fix segmentation fault caused by adding an attribute to a CDATA node
612
+
613
+ * Moved node checking functions from C to Ruby
614
+
615
+ * Improved Windows support - libxml-ruby should now work out of the box.
616
+
617
+ * Improved Windows support - turned on libxml's zlib and iconv support.
618
+
619
+
620
+ == 0.8.1 / 2008-07-09 Charlie Savage
621
+
622
+ * Reimplmented Node#each_attr for backwards compatability
623
+
624
+ * Moved node type test to Ruby.
625
+
626
+
627
+ == 0.8.0 / 2008-07-09 Charlie Savage
628
+
629
+ * Fixed bug in returning attributes from XPath results
630
+
631
+ * Fixed DOM traversal methods
632
+
633
+ * Changed Node#children to return an array of nodes
634
+
635
+ * Fixed bug in returning attributes from XPath results
636
+
637
+ * Refactored XPath support, providing more user hooks in the XPath::Context class
638
+
639
+ * Added Node#properties for backwards compatibility
640
+
641
+ * Updated setup.rb
642
+
643
+ * Added more tests
644
+
645
+ * Updated rdocs and README file
646
+
647
+ * Moved libxml into LibXML namespace
648
+
649
+
650
+ == 0.7.0 / 2008-07-09 Charlie Savage
651
+
652
+ * Added new attributes class to provide a more natural way of working with attributes
653
+
654
+ * Fixed XML::Attr to better support namespaces
655
+
656
+ * Added documentation on how to use namespaces with XPath
657
+
658
+ * Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes
659
+
660
+ * Cleaned up tests and added new test suite
661
+
662
+ * Updated rdocs and README file
663
+
664
+ * Cleaned out most of the bug list
665
+
666
+
667
+ == 0.6.0 / 2008-07-01 Charlie Savage
668
+
669
+ * Fixed memory allocation errors in Windows. On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not. In addition, in one case Ruby was allocating memory to be freed by libxml. On Windows, that's a segmentation fault. On Linux it might fly, but still seems like a bad idea.
670
+
671
+ * Fixed segmentation fault in xml reader expand (same xml tree freed twice)
672
+
673
+ * Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks
674
+
675
+ * Cleaned up a number of compiler warnings
676
+
677
+ * Renamed libxml_so.so to libxml_ruby.so (same for xslt). That wasn't actually my original intention, but um, it kind of sort of happened. It should not be noticeable from an end-user perspective.
678
+
679
+ * Added rake files for building with MingW
680
+
681
+ * Added rake files for packing gems. Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.
682
+
683
+ * Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.
684
+
685
+ * Cleaned out the patch queue and went through about 1/2 the bug list
686
+
687
+
688
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
689
+
690
+ * Merged Dan's MEM2 branch to trunk.
691
+
692
+ == 0.5.3 /
693
+
694
+ === 2007-11-16 "Dan Janowski" <danj at 3skel.com>
695
+
696
+ * Merged Dan's MEM2 branch to trunk.
697
+
698
+
699
+ == 0.5.2 / 2007-10-10
700
+
701
+ === 2007-10-10 "Dan Janowski" <danj at 3skel.com>
702
+
703
+ * (Dan, fill in the major points of the changes you made up to here -thanks)
704
+
705
+ === 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>
706
+
707
+ * Added some preliminary RDoc comments for XML::Reader.
708
+
709
+ === 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>
710
+
711
+ * Added XML::Reader, a set of bindings to the xmlTextReader API.
712
+
713
+
714
+ == 0.3.8.4 / 2006-12-02
715
+
716
+ === 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>
717
+
718
+ * Implemented SAX parser callback handling.
719
+
720
+ === 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>
721
+
722
+ * Integrated and tested community patches.
723
+ * Defined XML::Node (hash) equality in terms of XML representation.
724
+
725
+ === 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>
726
+
727
+ * Fixed XML::Node#content inoperable bug (plasmaroo) [patch]
728
+ * Fixed memory leak in same
729
+
730
+ === 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>
731
+
732
+ * Added XML::Node::Set#first (mvette13) [patch]
733
+ * Added XML::Node::Set#empty?
734
+ * Fixed XML::Node::Set#to_a
735
+ * Added XML::Node#find_first
736
+ * Added XML::Node#remove!
737
+
738
+ === 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>
739
+
740
+ * Integrated contributed XML::Parser.register_error_handler patch (rosco)
741
+
742
+ === 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>
743
+
744
+ * Fixed all multiple symbol definitions for -fno-common.
745
+ * Removed OSX -fno-common workaround.
746
+
747
+
748
+ == 0.3.6 / 2006-02-23
749
+
750
+ === 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>
751
+
752
+ * Patched extconf.rb with OSX -fno-common workaround
753
+ * Added gem and packaging support to Rakefile
754
+ * Moved version update to Rakefile
755
+ * Removed legacy project utility scripts
756
+
757
+ === 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>
758
+
759
+ * Fixed doublefree bug in ruby_xml_attr.
760
+ * Fixed small leak in parser
761
+
762
+ === 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>
763
+
764
+ * Updated for GCC 4.0 (community patches)
765
+ * Fixed default validation bug
766
+ * Refactored project, removed outdated files, cleaned up tests.
767
+ * Added RDoc documentation across .c files.
768
+ * Fixed up a few strings.
769
+
770
+ === 2004-04-04 "Mangler Jurgen" <et@wkv.at>
771
+
772
+ * ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
773
+ was, that there was added a second attribute of the same
774
+ name, when you were setting the value of an already existing
775
+ attribute.
776
+
777
+ === 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>
778
+
779
+ * ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.
780
+
781
+ === 2004-02-27 "Martin Povolny" <martin@solnet.cz>
782
+
783
+ * ruby_xml_node.c: added XML::Node.copy, this makes possible building
784
+ of xml documents from nodes taken from other xml documents
785
+ without making ruby SIGSEGV (see tests/copy_bug.rb).
786
+
787
+ === 2004-02-26 "Martin Povolny" <martin@solnet.cz>
788
+
789
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
790
+ more work on validation, now you can actually validate
791
+ document using dtd or xml schema, also solved warning and
792
+ error propagation (see tests/{dtd|schema}-test.rb).
793
+
794
+ === 2003-12-30 "Martin Povolny" <martin@solnet.cz>
795
+
796
+ * ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
797
+ prelimitary support for dtd and schema validation
798
+
799
+ === 2003-09-15 "Martin Povolny" <martin@solnet.cz>
800
+
801
+ * ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
802
+ possible registering custom input callbacks
803
+ handlers (xmlRegisterInputCallbacks) written in ruby
804
+
805
+ === 2003-08-01 "Martin Povolny" <martin@solnet.cz>
806
+
807
+ * ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
808
+ * ruby_xml_node.c: corrected argument handling in ruby_xml_node_find
809
+
810
+
811
+