ox-bundlecachetest 2.14.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +751 -0
  3. data/LICENSE +21 -0
  4. data/README.md +351 -0
  5. data/ext/ox/attr.h +78 -0
  6. data/ext/ox/base64.c +105 -0
  7. data/ext/ox/base64.h +18 -0
  8. data/ext/ox/buf.h +162 -0
  9. data/ext/ox/builder.c +948 -0
  10. data/ext/ox/cache.c +351 -0
  11. data/ext/ox/cache.h +21 -0
  12. data/ext/ox/cache8.c +106 -0
  13. data/ext/ox/cache8.h +23 -0
  14. data/ext/ox/dump.c +1260 -0
  15. data/ext/ox/err.c +46 -0
  16. data/ext/ox/err.h +36 -0
  17. data/ext/ox/extconf.rb +47 -0
  18. data/ext/ox/gen_load.c +342 -0
  19. data/ext/ox/hash_load.c +309 -0
  20. data/ext/ox/helper.h +84 -0
  21. data/ext/ox/intern.c +157 -0
  22. data/ext/ox/intern.h +25 -0
  23. data/ext/ox/obj_load.c +809 -0
  24. data/ext/ox/ox.c +1649 -0
  25. data/ext/ox/ox.h +245 -0
  26. data/ext/ox/parse.c +1197 -0
  27. data/ext/ox/sax.c +1570 -0
  28. data/ext/ox/sax.h +69 -0
  29. data/ext/ox/sax_as.c +270 -0
  30. data/ext/ox/sax_buf.c +209 -0
  31. data/ext/ox/sax_buf.h +204 -0
  32. data/ext/ox/sax_hint.c +207 -0
  33. data/ext/ox/sax_hint.h +40 -0
  34. data/ext/ox/sax_stack.h +113 -0
  35. data/ext/ox/slotcache.c +158 -0
  36. data/ext/ox/slotcache.h +19 -0
  37. data/ext/ox/special.c +390 -0
  38. data/ext/ox/special.h +14 -0
  39. data/ext/ox/type.h +39 -0
  40. data/lib/ox/bag.rb +103 -0
  41. data/lib/ox/cdata.rb +10 -0
  42. data/lib/ox/comment.rb +11 -0
  43. data/lib/ox/doctype.rb +11 -0
  44. data/lib/ox/document.rb +28 -0
  45. data/lib/ox/element.rb +464 -0
  46. data/lib/ox/error.rb +25 -0
  47. data/lib/ox/hasattrs.rb +54 -0
  48. data/lib/ox/instruct.rb +34 -0
  49. data/lib/ox/node.rb +23 -0
  50. data/lib/ox/raw.rb +12 -0
  51. data/lib/ox/sax.rb +97 -0
  52. data/lib/ox/version.rb +4 -0
  53. data/lib/ox/xmlrpc_adapter.rb +33 -0
  54. data/lib/ox.rb +79 -0
  55. metadata +128 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,751 @@
1
+ # Changelog
2
+
3
+ All changes to the Ox gem are documented here. Releases follow semantic versioning.
4
+
5
+ ## [2.14.23] - 2025-05-27
6
+
7
+ ### Changed
8
+
9
+ - Comments are no longer space padded to be similar with other XML writers.
10
+
11
+ ## [2.14.22] - 2025-02-11
12
+
13
+ ### Fixed
14
+
15
+ - Fix issue with first text character lost after unquoted attribute value.
16
+
17
+ ## [2.14.21] - 2025-01-15
18
+
19
+ ### Fixed
20
+
21
+ - Removed internal dependency on BigDecimal. If BigDecimal is use it
22
+ must now be included in the calling code. This was forced by the
23
+ change in BigDecimal no longer being included in the Ruby core.
24
+
25
+ ## [2.14.20] - 2025-01-12
26
+
27
+ ### Fixed
28
+
29
+ - The instruction encoding attribute is now used to set the encoding in the `:limited` mode.
30
+
31
+ ## [2.14.19] - 2024-12-25
32
+
33
+ ### Fixed
34
+
35
+ - Code cleanup in sax.c to close issue #363.
36
+
37
+ - Updated the dump options documentation to `:with_xml` option to resolve #352.
38
+
39
+ - Updated the sax tests to pass to resolve #335.
40
+
41
+ - Element#replace_text on nil `@nodes` no longer fails. Closes #364.
42
+
43
+ ## [2.14.18] - 2024-03-21
44
+
45
+ ### Fixed
46
+
47
+ - UTF8 element names now load correctly thansk to @Uelb.
48
+
49
+ ## [2.14.17] - 2023-07-14
50
+
51
+ ### Fixed
52
+
53
+ - The sax parser in html mode now allows unquoted attribute values with complaints.
54
+
55
+ ## [2.14.16] - 2023-04-11
56
+
57
+ ### Fixed
58
+
59
+ - Window issue with strndup fixed thats to alexanderfast.
60
+
61
+ ## [2.14.15] - 2023-04-10
62
+
63
+ ### Fixed
64
+
65
+ - Fixed free on moved pointer.
66
+
67
+ ## [2.14.14] - 2023-01-26
68
+
69
+ ### Fixed
70
+
71
+ - Change free to xfree on ruby alloced memory.
72
+
73
+ ## [2.14.13] - 2023-01-16
74
+
75
+ ### Fixed
76
+
77
+ - Fixed the intern cache to handle symbol memory changes.
78
+
79
+ ## [2.14.12] - 2022-12-27
80
+
81
+ ### Fixed
82
+
83
+ - Updated to support Ruby 3.2.
84
+
85
+ ## [2.14.11] - 2022-03-31
86
+
87
+ ### Fixed
88
+
89
+ - Missing attribute value no longer crashes with the SAX parser.
90
+
91
+ ## [2.14.10] - 2022-03-10
92
+
93
+ ### Fixed
94
+
95
+ - Writing strings over 16K to a file with builder no longer causes a crash.
96
+
97
+ ## [2.14.9] - 2022-02-11
98
+
99
+ ### Fixed
100
+
101
+ - Fixed the `\r` replacement with `\n` with the SAX parser according to https://www.w3.org/TR/2008/REC-xml-20081126/#sec-line-ends.
102
+
103
+ ## [2.14.8] - 2022-02-09
104
+
105
+ ### Fixed
106
+
107
+ - Renamed internal functions to avoid linking issues where Oj and Ox function names collided.
108
+
109
+ ## [2.14.7] - 2022-02-03
110
+
111
+ ### Fixed
112
+
113
+ - All classes and symbols are now registered to avoid issues with GC compaction movement.
114
+ - Parsing of any size processing instruction is now allowed. There is no 1024 limit.
115
+ - Fixed the `\r` replacement with `\n` according to https://www.w3.org/TR/2008/REC-xml-20081126/#sec-line-ends.
116
+
117
+ ### Changed
118
+
119
+ - Symbol and string caching changed but should have no impact on use
120
+ other than being slightly faster and handles large numbers of cached
121
+ items more efficiently.
122
+
123
+ ## [2.14.6] - 2021-11-03
124
+
125
+ ### Fixed
126
+
127
+ - Closing tags in builder are now escapped correctly thanks to ezekg.
128
+
129
+ ## [2.14.5] - 2021-06-04
130
+
131
+ ### Fixed
132
+
133
+ - Fixed RDoc for for Ox::Builder.
134
+
135
+ ## [2.14.4] - 2021-03-19
136
+
137
+ ### Fixed
138
+
139
+ - Really fixed code issue around HAVE_RB_ENC_ASSOCIATE.
140
+
141
+ ## [2.14.3] - 2021-03-12
142
+
143
+ ### Fixed
144
+
145
+ - Code issue around HAVE_RB_ENC_ASSOCIATE fixed.
146
+
147
+ ## [2.14.2] - 2021-03-07
148
+
149
+ ### Fixed
150
+
151
+ - Attribute keys for setting attributes no longer create seemily
152
+ duplicates if symbol and string keys are mixed.
153
+
154
+ ## [2.14.1] - 2021-01-11
155
+
156
+ ### Fixed
157
+
158
+ - In Ruby 3.0 Range objects are frozen. This version allows Ranges to be created on load.
159
+
160
+ ## [2.14.0] - 2020-12-15
161
+
162
+ ### Added
163
+
164
+ - The `:with_cdata` option added for the hash_load() function.
165
+
166
+ ## [2.13.4] - 2020-09-11
167
+
168
+ ### Fixed
169
+
170
+ - Fixed one crash that occurred when a corrupted object encoded string was provided.
171
+
172
+ ## [2.13.3] - 2020-09-03
173
+
174
+ ### Changed
175
+
176
+ - mkmf have macros used instead of ad-hoc determinations.
177
+
178
+ ## [2.13.2] - 2020-02-05
179
+
180
+ Skip and missed sequence
181
+
182
+ ### Fixed
183
+
184
+ - Add ' sequence.
185
+
186
+ - `:skip_off` no longer misses spaces between elements.
187
+
188
+ ## [2.13.1] - 2020-01-30
189
+
190
+ HTML Sequences
191
+
192
+ ### Added
193
+
194
+ - All HTML 4 sequence are now supported.
195
+
196
+ ## [2.13.0] - 2020-01-25
197
+
198
+ HTML Escape Sequences
199
+
200
+ ### Added
201
+
202
+ - All HTML 4 escape sequences are now parsed.
203
+
204
+ ## [2.12.1] - 2020-01-05
205
+
206
+ Ruby 2.7.0
207
+
208
+ ### Fixed
209
+
210
+ - Updated for Ruby 2.7.0. More strict type checking. Function signature changes, and `Object#taint` deprecated.
211
+
212
+ ## [2.12.0] - 2019-12-18
213
+
214
+ ### Added
215
+
216
+ - Add `no_empty` option to not allow <xyz/> and use <xyz></xyz> instead.
217
+
218
+ ## [2.11.0] - 2019-06-14
219
+
220
+ ### Changed
221
+ - Ox::SyntaxError replaces SyntaxError where such an exception would have previously been raised.
222
+
223
+ ### Fixed
224
+ - File offsets when using the SAX parser now use `off_t`. Setting
225
+ `-D_FILE_OFFSET_BITS=64` in the Makefile may allow 32 bit systems to access
226
+ files larger than 2^32 in size. This has not been tested.
227
+
228
+ ## [2.10.1] - 2019-05-27
229
+
230
+ ### Fixed
231
+ - Remove extra space from doctype dump.
232
+
233
+ ## [2.10.0] - 2018-08-26
234
+
235
+ ### Fixed
236
+ - `:element_key_mod` and `:attr_key_mod` options were added to allow keys to be modified when loading.
237
+
238
+ ## [2.9.4] - 2018-07-16
239
+
240
+ ### Fixed
241
+ - Fixed issue with malformed object mode input.
242
+
243
+ ## [2.9.3] - 2018-06-12
244
+
245
+ ### Fixed
246
+ - Handle `\0` in dumped strings better.
247
+ - No `\n` added on dumped if indent is less than zero.
248
+
249
+ ## [2.9.2] - 2018-04-16
250
+
251
+ ### Fixed
252
+ - `locate` fixed to cover a missing condition with named child thanks to mberlanda.
253
+
254
+ ### Added
255
+ - `locate` supports attribute exists searches thanks to mberlanda.
256
+
257
+ ## [2.9.1] - 2018-04-14
258
+
259
+ ### Fixed
260
+ - `prepend_child` added by mberlanda.
261
+
262
+ ## [2.9.0] - 2018-03-13
263
+
264
+ ### Added
265
+ - New builder methods for building HTML.
266
+ - Examples added.
267
+
268
+ ## [2.8.4] - 2018-03-4
269
+
270
+ ### Fixed
271
+ - Commented out debug statement.
272
+
273
+ ## [2.8.3] - 2018-03-3
274
+
275
+ ### Fixed
276
+ - Attribute values now escape < and > on dump.
277
+
278
+ ## [2.8.2] - 2017-11-1
279
+
280
+ ### Fixed
281
+ - Fixed bug with SAX parser that caused a crash with very long invalid instruction element.
282
+ - Fixed SAX parse error with double <source> elements.
283
+
284
+ ## [2.8.1] - 2017-10-27
285
+
286
+ ### Fixed
287
+ - Avoid crash with invalid XML passed to Ox.parse_obj().
288
+
289
+ ## [2.8.0] - 2017-09-22
290
+
291
+ ### Fixed
292
+ - Added :skip_off mode to make sax callback on every none empty string even if there are not other non-whitespace characters present.
293
+
294
+ ## [2.7.0] - 2017-08-18
295
+
296
+ ### Added
297
+ - Two new load modes added, :hash and :hash_no_attrs. Both load an XML document to create a Hash populated with core Ruby objects.
298
+
299
+ ### Fixed
300
+ - Worked around Ruby API change for RSTRUCT_LEN so Ruby 2.4.2 does not crash.
301
+
302
+ ## [2.6.0] - 2017-08-9
303
+
304
+ ### Added
305
+ - The Element#each() method was added to allow iteration over Element nodes conditionally.
306
+ - Element#locate() now supports a [@attr=value] specification.
307
+ - An underscore character used in the easy API is now treated as a wild card for valid XML characters that are not valid for Ruby method names.
308
+
309
+ ## [2.5.0] - 2017-05-4
310
+
311
+ ### Added
312
+ - Added a :nest_ok option to SAX hints that will ignore the nested check on a tag to accomadate non-compliant HTML.
313
+
314
+ ### Changed
315
+ - Set the default for skip to be to skip white space.
316
+
317
+ ## [2.4.13] - 2017-04-21
318
+
319
+ ### Fixed
320
+ - Corrected Builder special character handling.
321
+
322
+ ## [2.4.12] - 2017-04-11
323
+
324
+ ### Fixed
325
+ - Fixed position in builder when encoding special characters.
326
+
327
+ ## [2.4.11] - 2017-03-19
328
+
329
+ ### Fixed
330
+ - Fixed SAX parser bug regarding upper case hints not matching.
331
+
332
+ ## [2.4.10] - 2017-02-13
333
+
334
+ ### Fixed
335
+ - Dump is now smarter about which characters to replace with &xxx; alternatives.
336
+
337
+ ## [2.4.9] - 2017-01-25
338
+
339
+ ### Added
340
+ - Added a SAX hint that allows comments to be treated like other elements.
341
+
342
+ ## [2.4.8] - 2017-01-15
343
+
344
+ ### Changed
345
+ - Tolerant mode now allows case-insensitve matches on elements during parsing. Smart mode in the SAX parser is also case insensitive.
346
+
347
+ ## [2.4.7] - 2016-December-25
348
+
349
+ ### Fixed
350
+ - After encountering a <> the SAX parser will continue parsing after reporting an error.
351
+
352
+ ## [2.4.6] - 2016-11-28
353
+
354
+ ### Added
355
+ - Added margin option to dump.
356
+
357
+ ## [2.4.5] - 2016-09-11
358
+
359
+ ### Fixed
360
+ - Thanks to GUI for fixing an infinite loop in Ox::Builder.
361
+
362
+ ## [2.4.4] - 2016-08-9
363
+
364
+ ### Fixed
365
+ - Builder element attributes with special characters are now encoded correctly.
366
+ - A newline at end of an XML string is now controlled by the indent value. A value of-1 indicates no terminating newline character and an indentation of zero.
367
+
368
+ ## [2.4.3] - 2016-06-26
369
+
370
+ ### Fixed
371
+ - Fixed compiler warnings and errors.
372
+ - Updated for Ruby 2.4.0.
373
+
374
+ ## [2.4.2] - 2016-06-23
375
+
376
+ ### Fixed
377
+ - Added methods to Ox::Builder to provide output position information.
378
+
379
+ ## [2.4.1] - 2016-04-30
380
+
381
+ ### Added
382
+ - Added overlay feature to give control over which elements generate callbacks with the SAX parser.
383
+ - Element.locate now includes self if the path is relative and starts with a wildcard.
384
+
385
+ ### Fixed
386
+ - Made SAX smarter a little smarter or rather let it handle unquoted string with a / at the end.
387
+ - Fixed bug with reporting errors of element names that are too long.
388
+
389
+ ## [2.4.0] - 2016-04-14
390
+
391
+ ### Fixed
392
+ - Added Ox::Builder that constructs an XML string or writes XML to a stream using builder methods.
393
+
394
+ ## [2.3.0] - 2016-02-21
395
+
396
+ ### Added
397
+ - Added Ox::Element.replace_text() method.
398
+ - A invalid_replace option has been added. It will replace invalid XML
399
+ character with a provided string. Strict effort now raises an exception if
400
+ an invalid character is encountered on dump or load.
401
+
402
+ ### Changed
403
+ - Ox.load and Ox.parse now allow for a callback block to handle multiple top
404
+ level entities in the input.
405
+ - The Ox SAX parser now supports strings as input directly without and IO wrapper.
406
+
407
+ ### Fixed
408
+ - Ox::Element nodes variable is now always initialized to an empty Array.
409
+ - Ox::Element attributes variable is now always initialized to an empty Hash.
410
+
411
+ ## [2.2.4] - 2016-02-4
412
+
413
+ ### Fixed
414
+ - Changed the code to allow compilation on older compilers. No change in
415
+ functionality otherwise.
416
+
417
+ ## [2.2.3] - 2015-December-31
418
+
419
+ ### Fixed
420
+ - The convert_special option now applies to attributes as well as elements in
421
+ the SAX parser.
422
+
423
+ - The convert_special option now applies to the regualr parser as well as the
424
+ SAX parser.
425
+
426
+ - Updated to work correctly with Ruby 2.3.0.
427
+
428
+ ## [2.2.2] - 2015-10-19
429
+
430
+ ### Fixed
431
+ - Fixed problem with detecting invalid special character sequences.
432
+
433
+ - Fixed bug that caused a crash when an <> was encountered with the SAX parser.
434
+
435
+ ## [2.2.1] - 2015-07-30
436
+
437
+ ### Fixed
438
+ - Added support to handle script elements in html.
439
+
440
+ - Added support for position from start for the sax parser.
441
+
442
+ ## [2.2.0] - 2015-04-20
443
+
444
+ ### Fixed
445
+ - Added the SAX convert_special option to the default options.
446
+
447
+ - Added the SAX smart option to the default options.
448
+
449
+ - Other SAX options are now taken from the defaults if not specified.
450
+
451
+ ## [2.1.8] - 2015-02-10
452
+
453
+ ### Fixed
454
+ - Fixed a bug that caused all input to be read before parsing with the sax
455
+ parser and an IO.pipe.
456
+
457
+ ## [2.1.7] - 2015-01-31
458
+
459
+ ### Fixed
460
+ - Empty elements such as <foo></foo> are now called back with empty text.
461
+
462
+ - Fixed GC problem that occurs with the new GC in Ruby 2.2 that garbage
463
+ collects Symbols.
464
+
465
+ ## [2.1.6] - 2014-December-31
466
+
467
+ ### Fixed
468
+ - Update licenses. No other changes.
469
+
470
+ ## [2.1.5] - 2014-December-30
471
+
472
+ ### Fixed
473
+ - Fixed symbol intern problem with Ruby 2.2.0. Symbols are not dynamic unless
474
+ rb_intern(). There does not seem to be a way to force symbols created with
475
+ encoding to be pinned.
476
+
477
+ ## [2.1.4] - 2014-December-5
478
+
479
+ ### Fixed
480
+ - Fixed bug where the parser always started at the first position in a stringio
481
+ instead of the current position.
482
+
483
+ ## [2.1.3] - 2014-07-25
484
+
485
+ ### Fixed
486
+ - Added check for @attributes being nil. Reported by and proposed fix by Elana.
487
+
488
+ ## [2.1.2] - 2014-07-17
489
+
490
+ ### Fixed
491
+ - Added skip option to parsing. This allows white space to be collapsed in two
492
+ different ways.
493
+
494
+ - Added respond_to? method for easy access method checking.
495
+
496
+ ## [2.1.1] - 2014-02-12
497
+
498
+ ### Fixed
499
+ - Worked around a module reset and clear that occurs on some Rubies.
500
+
501
+ ## [2.1.0] - 2014-02-2
502
+
503
+ ### Fixed
504
+ - Thanks to jfontan Ox now includes support for XMLRPC.
505
+
506
+ ## [2.0.12] - 2013-05-21
507
+
508
+ ### Fixed
509
+ - Fixed problem compiling with latest version of Rubinius.
510
+
511
+ ## [2.0.11] - 2013-10-17
512
+
513
+ ### Fixed
514
+ - Added support for BigDecimals in :object mode.
515
+
516
+ ## [10.2.10]
517
+
518
+ ### Fixed
519
+ - Small fix to not create an empty element from a closed element when using locate().
520
+
521
+ - Fixed to keep objects from being garbages collected in Ruby 2.x.
522
+
523
+ ## [2.0.9] - 2013-09-2
524
+
525
+ ### Fixed
526
+ - Fixed bug that did not allow ISO-8859-1 characters and caused a crash.
527
+
528
+ ## [2.0.8] - 2013-08-6
529
+
530
+ ### Fixed
531
+ - Allow single quoted strings in all modes.
532
+
533
+ ## [2.0.7] - 2013-08-4
534
+
535
+ ### Fixed
536
+ - Fixed DOCTYPE parsing to handle nested '>' characters.
537
+
538
+ ## [2.0.6] - 2013-07-23
539
+
540
+ ### Fixed
541
+ - Fixed bug in special character decoding that chopped of text.
542
+
543
+ - Limit depth on dump to 1000 to avoid core dump on circular references if the user does not specify circular.
544
+
545
+ - Handles dumping non-string values for attributes correctly by converting the value to a string.
546
+
547
+ ## [2.0.5] - 2013-07-5
548
+
549
+ ### Fixed
550
+ - Better support for special character encoding with 1.8.7.- February 8, 2013
551
+
552
+ ## [2.0.4] - 2013-06-24
553
+
554
+ ### Fixed
555
+ - Fixed SAX parser handling of &#nnnn; encoded characters.
556
+
557
+ ## [2.0.3] - 2013-06-12
558
+
559
+ ### Fixed
560
+ - Fixed excessive memory allocation issue for very large file parsing (half a gig).
561
+
562
+ ## [2.0.2] - 2013-06-7
563
+
564
+ ### Fixed
565
+ - Fixed buffer sliding window off by 1 error in the SAX parser.
566
+
567
+ ## [1] -2-.0
568
+
569
+ ### Fixed
570
+ - Added an attrs_done callback to the sax parser that will be called when all
571
+ attributes for an element have been read.
572
+
573
+ - Fixed bug in SAX parser where raising an exception in the handler routines
574
+ would not cleanup. The test put together by griffinmyers was a huge help.
575
+
576
+ - Reduced stack use in a several places to improve fiber support.
577
+
578
+ - Changed exception handling to assure proper cleanup with new stack minimizing.
579
+
580
+ ## [2.0.0] - 2013-04-16
581
+
582
+ ### Fixed
583
+ - The SAX parser went through a significant re-write. The options have changed. It is now 15% faster on large files and
584
+ much better at recovering from errors. So much so that the tolerant option was removed and is now the default and
585
+ only behavior. A smart option was added however. The smart option recognizes a file as an HTML file and will apply a
586
+ simple set of validation rules that allow the HTML to be parsed more reasonably. Errors will cause callbacks but the
587
+ parsing continues with the best guess as to how to recover. Rubymaniac has helped with testing and prompted the
588
+ rewrite to support parsing HTML pages.
589
+
590
+ - HTML is now supported with the SAX parser. The parser knows some tags like \<br\> or \<img\> do not have to be
591
+ closed. Other hints as to how to parse and when to raise errors are also included. The parser does it's best to
592
+ continue parsing even after errors.
593
+
594
+ - Added symbolize option to the sax parser. This option, if set to false will use strings instead of symbols for
595
+ element and attribute names.
596
+
597
+ - A contrib directory was added for people to submit useful bits of code that can be used with Ox. The first
598
+ contributor is Notezen with a nice way of building XML.
599
+
600
+ ## [1.9.4] - 2013-03-24
601
+
602
+ ### Fixed
603
+ - SAX tolerant mode handle multiple elements in a document better.
604
+
605
+ ## [1.9.3] - 2013-03-22
606
+
607
+ ### Fixed
608
+ - mcarpenter fixed a compile problem with Cygwin.
609
+
610
+ - Now more tolerant when the :effort is set to :tolerant. Ox will let all sorts
611
+ of errors typical in HTML documents pass. The result may not be perfect but
612
+ at least parsed results are returned.
613
+
614
+ - Attribute values need not be quoted or they can be quoted with single
615
+ quotes or there can be no =value are all.
616
+
617
+ - Elements not terminated will be terminated by the next element
618
+ termination. This effect goes up until a match is found on the element
619
+ name.
620
+
621
+ - SAX parser also given a :tolerant option with the same tolerance as the string parser.
622
+
623
+ ## [1.9.2] - 2013-03-9
624
+
625
+ ### Fixed
626
+ - Fixed bug in the sax element name check that cause a memory write error.
627
+
628
+ ## [1.9.1] - 2013-02-27
629
+
630
+ ### Fixed
631
+ - Fixed the line numbers to be the start of the elements in the sax parser.
632
+
633
+ ## [1.9.0] - 2013-02-25
634
+
635
+ ### Fixed
636
+ - Added a new feature to Ox::Element.locate() that allows filtering by node Class.
637
+
638
+ - Added feature to the Sax parser. If @line is defined in the handler it is set to the line number of the xml file
639
+ before making callbacks. The same goes for @column but it is updated with the column.
640
+
641
+ ## [1.8.9] - 2013-02-21
642
+
643
+ ### Fixed
644
+ - Fixed bug in element start and end name checking.
645
+
646
+ ## [1.8.8] - 2013-02-17
647
+
648
+ ### Fixed
649
+ - Fixed bug in check for open and close element names matching.
650
+
651
+ ## [7] -1-.8
652
+
653
+ ### Fixed
654
+ - Added a correct check for element open and close names.
655
+
656
+ - Changed raised Exceptions to customer classes that inherit from StandardError.
657
+
658
+ - Fixed a few minor bugs.
659
+
660
+ ## [1.8.6] - 2013-02-7
661
+
662
+ ### Fixed
663
+ - Removed broken check for matching start and end element names in SAX mode. The names are still included in the
664
+ handler callbacks so the user can perform the check is desired.
665
+
666
+ ## [1.8.5] - 2013-02-3
667
+
668
+ ### Fixed
669
+ - added encoding support for JRuby where possible when in 1.9 mode.
670
+
671
+ ## [1.8.4] - 2013-01-25
672
+
673
+ ### Fixed
674
+ - Applied patch by mcarpenter to fix solaris issues with build and remaining undefined @nodes.
675
+
676
+ ## [1.8.3] - 2013-01-24
677
+
678
+ ### Fixed
679
+ - Sax parser now honors encoding specification in the xml prolog correctly.
680
+
681
+ ## [1.8.2] - 2013-01-18
682
+
683
+ ### Fixed
684
+ - Ox::Element.locate no longer raises and exception if there are no child nodes.
685
+
686
+ - Dumping an XML document no longer puts a carriage return after processing instructions.
687
+
688
+ ## [1.8.1] - 2012-December-17
689
+
690
+ ### Fixed
691
+ - Fixed bug that caused a crash when an invalid xml with two elements and no <?xml?> was parsed. (issue #28)
692
+
693
+ - Modified the SAX parser to not strip white space from the start of string content.
694
+
695
+ ## [1.8.0] - 2012-December-11
696
+
697
+ ### Fixed
698
+ - Added more complete support for processing instructions in both the generic parser and in the sax parser. This change includes and additional sax handler callback for the end of the instruction processing.
699
+
700
+ ## [1.7.1] - 2012-December-6
701
+
702
+ ### Fixed
703
+ - Pulled in sharpyfox's changes to make Ox with with Windows. (issue #24)
704
+
705
+ - Fixed bug that ignored white space only text elements. (issue #26)
706
+
707
+ ## [1.7.0] - 2012-11-27
708
+
709
+ ### Fixed
710
+ - Added support for BOM in the SAX parser.
711
+
712
+ ## [1.6.9] - 2012-11-25
713
+
714
+ ### Fixed
715
+ - Added support for BOM. They are honored for and handled correctly for UTF-8. Others cause encoding issues with Ruby or raise an error as others are not ASCII compatible..
716
+
717
+ ## [1.6.8] - 2012-11-18
718
+
719
+ ### Fixed
720
+ - Changed extconf.rb to use RUBY_PLATFORM.
721
+
722
+ ## [1.6.7] - 2012-11-15
723
+
724
+ ### Fixed
725
+ - Now uses the encoding of the imput XML as the default encoding for the parsed output if the default options encoding is not set and the encoding is not set in the XML file prolog.
726
+
727
+ ## [1.6.5] - 2012-10-25
728
+
729
+ ### Fixed
730
+ - Special character handling now supports UCS-2 and UCS-4 Unicode characters as well as UTF-8 characters.
731
+
732
+ ## [1.6.4] - 2012-10-24
733
+
734
+ ### Fixed
735
+ - Special character handling has been improved. Both hex and base 10 numeric values are allowed up to a 64 bit number
736
+ for really long UTF-8 characters.
737
+
738
+ ## [1.6.3] - 2012-10-22
739
+
740
+ ### Fixed
741
+ - Fixed compatibility issues with Linux (Ubuntu) mostly related to pointer sizes.
742
+
743
+ ## [1.6.2] - 2012-10-7
744
+
745
+ ### Fixed
746
+ - Added check for Solaris and Linux builds to not use the timezone member of time struct (struct tm).
747
+
748
+ ## [1.6.1] - 2012-10-7
749
+
750
+ ### Fixed
751
+ - Added check for Solaris builds to not use the timezone member of time struct (struct tm).