Revision history for Perl extension XML::LibXML
2.0120 2015-05-01
- Replace the test for the previous change with a more meaningful one.
- Change was to preserve unset options after a _clone() call.
- https://access.redhat.com/security/cve/CVE-2015-3451
- Thanks to Salvatore Bonaccorso from Debian for the report and
for a proposed fix (which was further refined by Shlomi Fish).
2.0119 2015-04-23
- Preserve unset options after a _clone() call (e.g: in load_xml()).
- This caused expand_entities(0) to not be preserved/etc.
- Thanks to Tilmann Haak from xing.com for the report.
2.0118 2015-02-05
- Add $Config{incpath} to the include paths on Win32.
- Fixes https://rt.cpan.org/Ticket/Display.html?id=101944
- Thanks to Marek for the report and propsed fix.
2.0117 2014-10-26
- Support libxml2 builds with disabled xmlReader
- Makefile.PL : don't require a recentish ExtUtils::MakeMaker.
- https://rt.cpan.org/Ticket/Display.html?id=83322
- Thanks to Slaven Rezic for the report.
- Fix broken t/02parse.t with non-English locale with recent perls.
- https://rt.cpan.org/Public/Bug/Display.html?id=97805
- Thanks to Slaven Rezic for the report.
2.0116 2014-04-12
- t/cpan-changes.t : minimum version of Test::CPAN::Changes.
- This is to avoid test failures such as:
- http://www.cpantesters.org/cpan/report/69ee1a2a-6c09-1014-be8f-3786912f2992
2.0115 2014-04-03
- Fix double free when calling $node->addSibling with text nodes.
- https://rt.cpan.org/Ticket/Display.html?id=94149
- Thanks to Jeff Trout for the report.
2.0114 2014-04-03
- Fix memory leaks and segfaults related to removal and insertion of
DTD nodes.
- https://rt.cpan.org/Ticket/Display.html?id=80521
- Fix memory leak in $node->removeChildNodes
2.0113 2014-03-14
- Fix test failures with older libxml2 versions.
- https://rt.cpan.org/Ticket/Display.html?id=93852
- Thanks to Nick Wellnhofer for the patch.
- Thanks to the CPAN Testers for reporting this issue.
2.0112 2014-03-13
- Fix segfaults when accessing attributes of DTD nodes
- https://rt.cpan.org/Ticket/Display.html?id=71076
- Thanks to Ralph Merridew for the report.
- Make $schema->validate work with elements. This uses
xmlSchemaValidateOneElement under the hood.
- https://rt.cpan.org/Ticket/Display.html?id=93496
- Thanks to Jeremy Marshall for the report.
- Fix https://rt.cpan.org/Ticket/Display.html?id=93429 .
- Thanks to Nick Wellnhofer for the report and test.
- Apply patch to build with MSVC on Windows.
- https://rt.cpan.org/Ticket/Display.html?id=90064
- Thanks to Nick Wellnhofer for the investigation and the patch.
2.0111 2014-03-05
- Skip t/40reader_mem_error.t with libxml2 < 2.7.4
The failure is probably due to a known double-free bug.
- https://rt.cpan.org/Ticket/Display.html?id=84564
- https://bugzilla.gnome.org/show_bug.cgi?id=447899
- Thanks to Nick Wellnhofer for the pull request.
- Die if a file handle with an encoding layer returns more bytes
than requested in parse_fh.
- https://rt.cpan.org/Ticket/Display.html?id=78448
- Make insertData, deleteData, replaceData work correctly with UTF-8
strings.
- Fix substringData
- https://rt.cpan.org/Ticket/Display.html?id=88730
- Fix "Threads still failing?" Bug report.
- https://rt.cpan.org/Ticket/Display.html?id=91800
- Thanks to Daniel for the bug report and a test case, and to
YOREEK for the patch.
2.0110 2014-02-01
- Add "use strict;" and "use warnings;" to all modules (CPANTS).
- MIN_PERL_VERSION (CPANTS).
- Add a LICENSE section to the POD (CPANTS).
2.0109 2014-01-31
- Fix for requiring XML::LibXML inside two loops in perl-5.19.6 and up.
- https://rt.cpan.org/Ticket/Display.html?id=92606
- Thanks to Father Chrysostomos for the investigation, the test
case, and the fix.
- There are other ways to reproduce the bug, but the tests tests
for a require inside two loops.
2.0108 2013-12-17
- Replace local $^W with << no warnings 'portable'; >> in t/15nodelist.t
- Should fix https://rt.cpan.org/Public/Bug/Display.html?id=88017
- Thanks to "pagenyon" for the report.
- Fix hash key typo in SAX/Builder.pm - "LocalName" was mis-capitalised.
- https://rt.cpan.org/Public/Bug/Display.html?id=91433
- Thanks to Thomas Berger for the report and for a reproducing
testcase.
- Convert from "use base" to the more modern "use parent".
2.0107 2013-10-31
- Add a unique_key method for namespace objects.
- https://bitbucket.org/shlomif/perl-xml-libxml/pull-request/24/unique_key-method-for-namespace-objects/diff
- Thanks to garfieldnate for the pull request.
- Grammar fixes in the documentation.
- https://rt.cpan.org/Ticket/Display.html?id=89718
- Thanks to Gregor Herrman and the Debian Team
2.0106 2013-09-17
- Import croak from "use Carp;" to fix a missing croak definition.
- https://rt.cpan.org/Ticket/Display.html?id=88624
- Update Devel::CheckLib under "./inc" to 1.01 :
- Should fix https://rt.cpan.org/Public/Bug/Display.html?id=81297
2.0105 2013-09-07
- Pull some commits from Jason Mash (JRMASH) to add convenience methods
to the XML::LibXML::NodeList module.
- New method 'to_literal_delimited($separator)'
- New method 'to_literal_list()'
- Fix t/35huge_mode.t on libxml2 versions less than 2.7.0.
- Fixes https://rt.cpan.org/Ticket/Display.html?id=88375
- Thanks to Yuriy / YOREEK for the patch.
- Add toStringC14N_v1_1() to XML::LibXML::Node.
- Fixes https://rt.cpan.org/Public/Bug/Display.html?id=88254
- Thanks to Ulrich for the report and for a patch of sorts.
2.0104 2013-08-30
- Fix https://rt.cpan.org/Ticket/Display.html?id=88060
- Use quoted version number in the SYNOPSIS.
- Thanks to Philipp Gortan for the report.
- Apply a patch from Yuriy / YOREEK for test failures with a
directory component that contains whitespace.
- https://rt.cpan.org/Ticket/Display.html?id=86665
2.0103 2013-08-22
- Apply patch from Yuriy / YOREEK for test failures in t/40reader.t:
- https://rt.cpan.org/Public/Bug/Display.html?id=83779
- Changed the variable name to start with an underscore for internal
use.
2.0102 2013-08-19
- Fixed https://rt.cpan.org/Ticket/Display.html?id=83744
- XPathContext memory leak on registerFunction.
- Thanks to DGINEV for the report and Yuriy for the patch.
- Apply proposed fix for https://rt.cpan.org/Ticket/Display.html?id=80521
- "replaceNode() segfaults when copying DTD nodes with ATTLISTs"
- Thanks to GUIDO@cpan.org for the report and to YOREEK for
the patch.
- Apply fix for https://rt.cpan.org/Ticket/Display.html?id=83779
- "building on RHEL-5-64 fails"
- Thanks to mathias@koerber.org for the report, SREZIC@cpan.org
and d.thomas@its.uq.edu.au for taking part and Yuriy for the patch.
2.0101 2013-08-15
- Fixed https://rt.cpan.org/Ticket/Display.html?id=87089 .
- "HTML doctype differs for string/scalar input"
- Thanks to NGLENN for the report and to Yuriy for the tests and
fix.
2.0100 2013-08-14
- Added the unique_key() method to XML::LibXML::Node.
- t/40reader.t: assigning from $@ to a lexical so it won't be
over-ridden.
- https://rt.cpan.org/Ticket/Display.html?id=87830
- Thanks to Douglas Christopher Wilson for the report.
2.0019 2013-07-01
- Correct typos reported in RT #86599.
- https://rt.cpan.org/Ticket/Display.html?id=86599
- Thanks to dsteinbrunner.
2.0018 2013-05-13
- Revert previous change of minimal version of libxml2.
- This change proved to be unpopular and didn't prevent
the CPAN test failures.
- By SHLOMIF
2.0017 2013-05-09
- Made the minimal version of libxml2 2.9.0 as previous versions were
too buggy due to spuriourous CPAN test failures.
- Please upgrade.
- By SHLOMIF
2.0016 2013-04-13
- Don't enable XML_PARSE_HUGE by default.
- Fix the previous version due to a mercurial SNAFU.
2.0015 2013-04-13
- Don't enable XML_PARSE_HUGE by default.
- https://bitbucket.org/shlomif/perl-xml-libxml/pull-request/19
- Thanks to Grant McLean ( https://metacpan.org/author/GRANTM ) for
the bug report and patch.
2.0014 2012-12-05
- Got 40reader_mem_error.t to not fetch the external DTDs.
- https://rt.cpan.org/Public/Bug/Display.html?id=81703
- Thanks to Alexandr Ciornii (CHORNY) for the report and Slaven
Rezic (SREZIC) for the analysis and a proposed fix.
2.0013 2012-12-04
- Fix a memory error (double-free) in XML::LibXML::Reader if we reached
EOF and
then called destroy.
- discovered by Shlomi Fish.
- Fixed by Shlomi Fish.
- see t/40reader_mem_error.t
2.0012 2012-11-09
- Fix support for references to scalars with overloaded stringification
magic.
- https://rt.cpan.org/Public/Bug/Display.html?id=77864
- Thanks to Christian Hansen (CHANSEN) for a report, a testcase, and
a patch.
2.0011 2012-11-08
- Fix crash in removeChild() when not expanding entities
- https://rt.cpan.org/Ticket/Display.html?id=80395
- "removeChild() segfaults when not expanding entities"
- Thanks to GUIDO@cpan.org for the report, for a test case (that
was adapted into t/48_removeChild_crashes_rt_80395.t ) and for
a patch to fix it.
2.0010 2012-11-01
- Passing debug (an undocumented option) to check_lib in Makefile.PL.
- This way we get more meaningful traces on perl Makefile.PL DEBUG=1.
- Thanks to MSTROUT for the report and a proposed fix.
2.0009 2012-11-01
- Fix libxml2 detection in Strawberry Perl.
- Another Devel::CheckOS fallout.
- Thanks to KMX for the report and for a proposed fix. The actual fix
was made to be more generic considering the use-cases.
- https://rt.cpan.org/Ticket/Display.html?id=80540
2.0008 2012-10-22
- Fix build error when using non-standard libxml2 installation
- https://rt.cpan.org/Ticket/Display.html?id=80332
- Thanks to L RW for the report.
2.0007 2012-10-17
- Fix for build failures on Windows with Microsoft Visual C++.
- https://rt.cpan.org/Ticket/Display.html?id=80229
- Thanks to Desmond Daignault for the report and an initial patch.
- Patch modified by Shlomi Fish
2.0006 2012-10-13
- When xml2-config returns several paths, the configuration failed.
Fixed that.
- https://rt.cpan.org/Public/Bug/Display.html?id=80167
- Thanks to VOVKASM for the report and fix.
2.0005 2012-10-13
- Added t/style-trailing-space.t and removed trailing space.
- Add a check for the existence of included C headers (*.h) files
in Makefile.PL to avoid failed compilations.
- Using Devel::CheckLib.
- Thanks to its maintainers!
2.0004 2012-08-07
- Add a way to specify a different compiler to be used in the
"Makefile" by calling Makefile.PL with the CC environment variable
set to the path to the alternate compiler.
- This way we can use «CC=/usr/bin/clang perl Makefile.PL»
in order to compile faster.
- LibXML.pm (_clone): Fix typo in line_numbers handling.
- Thanks to Bernhard Reutner-Fischer for the report and fix.
2.0003 2012-07-27
- Patch to a potential NULL dereference in xpath.c.
- Thanks to Ville Skyttä <ville.skytta@iki.fi> and cppcheck.
- Fix NodeList::item() calling a 1-indxed array reference.
- See:
- https://bitbucket.org/shlomif/perl-xml-libxml/pull-request/18
- Thanks to Tim Brody
- Add the scripts/tag-release.pl script to tag a release using
Mercurial.
2.0002 2012-07-08
- Applied spelling fixes correction patch by
Ville Skyttä <ville.skytta@iki.fi>.
- Thanks, Ville!
2.0001 2012-06-20
- Remove the leftover perl-libxml-libxml.h from the distribution.
- https://rt.cpan.org/Ticket/Display.html?id=77924
- Thanks to Martin Mann for the report.
2.0000 2012-06-19
- Fix warnings that appear when compiling using the clang C compiler by
default.
- https://rt.cpan.org/Ticket/Display.html?id=77802
- Thanks to duvny for the report, and to seldon, doy and Zefram
for their assistance in fixing the warnings.
- Fix tests and run-time errors when Hash::FieldHash is installed
by no longer using Hash::FieldHash.
- https://rt.cpan.org/Ticket/Display.html?id=77576
- Thanks to hsk@fli-leibniz.de for reporting it, and to
Father Chrysostomos ( http://search.cpan.org/~sprout/ ) and
Mons Anderson for some diagnosis.
1.99 2012-05-31
- Apply a patch from Mons Anderson ( mons@cpan.org ) for fixing the
overloading.
- t/62overload.t
- Thanks to Mons.
- Fix test failures (and general functionality) on 64-bit big endian
platforms
- https://rt.cpan.org/Ticket/Display.html?id=77340
- Thanks to Gregor Herrmann and Niko Tyni from the
Debian Perl group.
1.98 2012-05-13
- Make sure parse_string() and load_xml() also accept references to
strings (to avoid unnecessary copying).
- See: https://rt.cpan.org/Ticket/Display.html?id=64051
1.97 2012-04-30
- Apply a test and a fix to correct keep_blanks having no effect on
parse_balanced_chunk.
- fixes https://rt.cpan.org/Ticket/Display.html?id=76696
- Add t/30keep_blanks.t .
- Thanks to SREZIC for the report, the test and the fix.
1.96 2012-03-16
- Apply a patch to add leading minus signs to the commands of
install_sax_driver.
- This makes the make process succeed even if they fail.
- Fixes https://rt.cpan.org/Public/Bug/Display.html?id=75007
- Thanks to POPEL for the report, and to Petr Pajas for the patch.
- Apply a patch from Tim Brody to skip_all on
t/49callbacks_returning_undef.t when URI.pm's version is below 1.35.
- Thanks to Tim Brody for the patch.
- Fixes the problem reported in http://www.city-fan.org/tips/PaulHowarth/Blog/2011-09-06.
1.95 2012-03-06
- Got rid of a broken test (at least with recent libxml2s) in
t/03doc.t :
- https://rt.cpan.org/Ticket/Display.html?id=75403
- The problem was that the test tested for an undefined XML
namespace, a behaviour which was changed in a recent libxml2
release.
- Thanks to vcizek for the report.
1.94 2012-03-03
- Fix XML::LibXML::Element tests for ineqaulity with == and eq.
- Fixes https://rt.cpan.org/Ticket/Display.html?id=75505 .
- Thanks to Mark Overmeer for the report and for a preliminary patch
to t/71overload.t .
1.93 2012-02-27
- Fix XML::LibXML::Element comparison with == and eq.
- Fixes https://rt.cpan.org/Ticket/Display.html?id=75257 ,
https://rt.cpan.org/Ticket/Display.html?id=75293 ,
https://rt.cpan.org/Ticket/Display.html?id=75259 .
- Thanks to Toby Inkster for a preliminary patch (that was modified by
me) and to the various people who reported the problem.
1.92 2012-02-21
- Fix for test failure on perls < 5.10.
- Fixes https://rt.cpan.org/Public/Bug/Display.html?id=75195
- Thanks to Paul for the report, and for a patch that was not
accepted.
1.91 2012-02-21
- Overload hash dereferencing on XML::LibXML::Elements, to provide
access to the element's attributes.
- See XML::LibXML::AttributeHash for details.
- Thanks to Toby Inkster.
- Pull some commits from Toby Inkster to add more convenient methods
to XML::LibXML::NodeList such as sort, map, grep, etc.
- https://bitbucket.org/shlomif/perl-xml-libxml/pull-request/11/xml-libxml-nodelist-improvements
- Thanks, Toby!
- Printed some warnings regardless if DEBUG is on.
- Thanks to http://search.cpan.org/~mstrout/ for the suggestion.
1.90 2012-01-08
- Pull a commit from Aaron Crange to fix compilation bugs in Devel.xs:
- local variable declarations must be in the PREINIT section,
not `CODE`, at least for some compiler/OS combinations.
- Thanks, Aaron!
1.89 2011-12-24
- Apply a patch with spelling fixes by Kevin Lyda :
- https://rt.cpan.org/Public/Bug/Display.html?id=71403
- Thanks to Kevin.
- Apply a pull request by ElDiablo with the implementation of
lib/XML/LibXML/Devel.pm .
- Adjust the Win32 Build Instructions in the README file.
- Thanks to Christopher J. Madsen.
1.88 2011-09-21
- Add libxml2 2.7.8 as tested and working fine for the Makefile.PL.
(Thanks to H. Merijn Brand.).
- Apply a patch to perl-libxml-sax.c to use xmlChar * instead of char *.
(Thanks to H. Merijn Brand.).
- Correct the README so it won't read XML-LibXML-Common.
- see http://code.activestate.com/lists/perl-xml/8907/
- Add a patch to implement the no_defdtd option in recent libxml2's:
- https://rt.cpan.org/Ticket/Display.html?id=70878
- Thanks to zzgrim@gmail.com .
- Add scripts/bump-version-number.pl to modify the version number globally.
- Up to then, the version numbers of the modules under lib/ had
been 1.73.
1.87 2011-08-27
- Fix t/49callbacks_returning_undef.t to not read /etc/passed which may
not be valid XML. Instead, we're reading a local file while using
URI::file (assuming it exists - else - we skip_all.)
1.86 2011-08-25
- Changed SvPVx_nolen() to SvPV_nolen() in LibXML.xs for better compatibility.
- SvPVx_nolen() appears to be undocumented API.
- Resolves https://rt.cpan.org/Public/Bug/Display.html?id=70476
- Thanks to Paul for the report.
1.85 2011-08-24
- Gracefully handle returned undef()s in the read callback under -w ($^W):
- t/49callbacks_returning_undef.t
- https://rt.cpan.org/Ticket/Display.html?id=70321
- Add a patch from Mithaldu to get XML::LibXML to compile on Win32:
- https://rt.cpan.org/Ticket/Display.html?id=70141
- I'm applying it by faith, so if it breaks, blame him. (;-).
- the patch adds -lllibgettextlib.dll to the Makefile.PL.
1.84 2011-07-23
- Fix for perl 5.8.x before 5.8.8:
- "You can now use the x operator to repeat a qw// list. This used to raise a syntax error."
- http://search.cpan.org/perldoc?perl588delta
- fixes https://rt.cpan.org/Ticket/Display.html?id=69722 .
- thanks to paul@city-fan.org for the report.
1.83 2011-07-23
- Fixed missing declarations after statements:
- resolves https://rt.cpan.org/Ticket/Display.html?id=69622 again.
- thanks to Vadim / VKON.
- Fix docbook source validity
- resolves https://rt.cpan.org/Ticket/Display.html?id=69702
- thanks to Ville Skytta / SCOP for the patch.
- Applied patch from https://rt.cpan.org/Ticket/Display.html?id=69703
- [PATCH] Documentation spelling fixes
- thanks to Ville Skytta / SCOP for the patch.
- minor correction by the current maintainer (SHLOMIF).
- Convert t/14sax.t to Counter and Stacker so the tests will be more
reliable.
- SHLOMIF
1.82 2011-07-20
- Moved some if blocks after the dSP; (which contains declarations) to be
compliant with C89/C90, which don't allow declarations in the middle of
a C function.
- resolves https://rt.cpan.org/Ticket/Display.html?id=69622
- thanks to Vadim / VKON.
- Fix https://rt.cpan.org/Ticket/Display.html?id=69553 :
- "install_sax_driver doesn't like custom INSTALLARCHLIB"
- thanks to Milki from U.Cal Berkeley.
1.81 2011-07-16
- Add scripts/fast-eumm.pl to remove the explicit objects dependency on
the "Makefile" file so after running scripts/fast-eumm.pl one won't have to
rebuild the C-files.
- Add no warnings 'recursion' to lib/XML/LibXML/Error.pm to get rid of
a "Deep recursion" warning.
- Fix "IDs of elements is lost when importing nodes"
- https://rt.cpan.org/Public/Bug/Display.html?id=69520
- With t/48importing_nodes_IDs_rt_69520.t .
- Thanks to Yuriy Ustushenko.
- Convert all remaining Test.pm-based test scripts except t/14sax.t to
Test::More .
1.80 2011-07-12
- Fix https://rt.cpan.org/Public/Bug/Display.html?id=69082 :
- Compilation on strawberry perl.
- The problem was that stderr required a dTHX; call previously.
- DOM Normalisation patches and a fix for #69096
- Thanks to Daniel Frett.
- https://rt.cpan.org/Ticket/Display.html?id=69096
- "findvalue from XML::LibXML 1.74 is very slow (regression)"
- https://bitbucket.org/shlomif/perl-xml-libxml/pull-request/5/normalize-bug-fixes
- Fix https://rt.cpan.org/Ticket/Display.html?id=69433 :
- "t/19die_on_invalid_utf8_rt_58848.t assumes errors will be objects:"
- Thanks to TODDR.
- Failed on older libxml2's.
- Add a skip for t/60error_prev_chain.t in case $@ is true but not a ref.
- https://rt.cpan.org/Ticket/Display.html?id=69435
- Thanks to TODDR.
- http://www.cpantesters.org/cpan/report/4ac00aae-a73f-11e0-84bd-8881cd42d09c
1.79 2011-07-08
- t/46err_column.t : add a skip for a test for CentOS/RHEL 4:
- https://rt.cpan.org/Ticket/Display.html?id=69070
- old version of libxml2 .
- t/49global_extent.t : fix the double plan (present on libxml2
below 2.6.27):
- https://rt.cpan.org/Ticket/Display.html?id=69330
- Thanks to Chris for reporting it.
- double plan in t/61error.t .
- in accordance to the previous change.
1.78 2011-07-06
- Change t/02parse.t to test for the localized error message:
- https://rt.cpan.org/Public/Bug/Display.html?id=69248
- Fix the skip() and 'plan skip_all' syntax in t/06elements.t and
t/49global_extent.t for old versions of XML::LibXML:
- http://www.cpantesters.org/cpan/report/b648ae66-a569-11e0-a41d-a7c8b84ee953
- It did not match the one specified in Test::More.
- Convert more test scripts from Test.pm to Test::More.
1.77 2011-07-01
- Change the signature of XML::LibXML::Reader::byteConsumed to be
"long" instead of "int", so it can return values above 2**31 in
64-bit platforms.
- should fix https://rt.cpan.org/Ticket/Display.html?id=57085
- Change "a XML::LibXML::*" to "an XML::LibXML::*" in the documentation.
- Document XML::LibXML::NamedNodeMap :
- https://rt.cpan.org/Ticket/Display.html?id=57652 .
- Add an external entity resolver (for XSLT/etc.):
- Fixing https://rt.cpan.org/Ticket/Display.html?id=69166 .
- Thanks to SAMSK for the patch.
- Add the missing string comparison overload in
lib/XML/LibXML/NodeList.pm :
- https://rt.cpan.org/Ticket/Display.html?id=57737
- Thanks to MSCHWERN .
- Fix https://rt.cpan.org/Ticket/Display.html?id=58024 :
- <<< In XML::LibXML, warnings are not suppressed when specifying the
recover() or recover_silently() flags as per the following excerpt from
the manpage: >>>
- Now XML-LibXML requires perl-5.8.x (to print to a buffer trick.).
- Thanks to Michael Ludwig for the report.
- Fix https://rt.cpan.org/Ticket/Display.html?id=56671 :
- limit the length of the chain of the previous errors.
- New files:
- t/60error_prev_chain.t
- example/JBR-ALLENtrees.htm
- Thanks to SCOP.
- Fix https://rt.cpan.org/Ticket/Display.html?id=58848 :
- "Malformed UTF-8 character (fatal) at" exception thrown on invalid
UTF-8.
- Thanks to David E. Wheeler (DWHEELER) for the report.
1.76 2011-06-30
- Cleaned up t/28new_callbacks_multiple.t - convert to a Counter
and Stacker class.
- After that, the regression test for was added:
- https://rt.cpan.org/Ticket/Display.html?id=51086
- Already fixed in the trunk.
- Add the file HACKING.txt with style guidelines.
- Fix https://rt.cpan.org/Ticket/Display.html?id=53270 (with a test
in t/49_load_html.t ) - uncovered some more bugs in the process
documented in TODO.
- << suppress_errors option not honored by load_html() method if set in
parser object >>
- Created t/lib/TestHelpers.pm with slurp(), utf8_slurp() and, in the
future, some other routines.
- skipping for LIBXML_RUNTIME_VERSION() *less than* 2.7 instead of
*more than* in t/09xpath.t :
- https://rt.cpan.org/Ticket/Display.html?id=69205
- Thanks to DOUGW .
1.75 2011-06-24
- Correct some typos reported in
- https://rt.cpan.org/Ticket/Display.html?id=54390
- Fix the handling of XML::LibXML::InputCallbacks at load_xml().
- https://rt.cpan.org/Ticket/Display.html?id=58190
- The problem was that the input callbacks were not cloned in
_clone().
- Apply the patches from https://rt.cpan.org/Ticket/Display.html?id=56334
- Convert t/02parse.t to Test::More .
- Thanks to TODDR .
- Removed the diag() messages which were annoying.
- Add 'make runtest' and 'make distruntest' targets to run the tests using
Test::Run ( http://beta.metacpan.org/module/Test::Run ).
- Adds colours and stuff like that.
- Add << LICENSE => 'perl' >> to the Makefile.PL for a license
meta-data in the META.YML.
- Feature implementation: joining congruent character data together in
SAX driver .
- Apply a somewhat modified patch from:
- https://rt.cpan.org/Ticket/Display.html?id=52368
- Add t/pod.t .
- Fix https://rt.cpan.org/Ticket/Display.html?id=55000 :
- Apply modified patch in the bug report.
- << If an element contains both a default namespace declaration and a
second namespace declaration, adding an attribute using the default
namespace declaration will cause that attribute to have the other
prefix. >>
1.74 2011-06-23
- More work on the t/*.t test scripts.
- Add scripts/Test.pm-to-Test-More.pl to semi-automatically
convert a test script from Test.pm to Test::More.
- Change NodeSet to NodeList in the documentation of
lib/XML/LibXML/NodeList.pm .
- Resolved https://rt.cpan.org/Ticket/Display.html?id=60998
- Makefile.PL: now saying we are trying to link against -lm, -lz
and -lxml2 . Not only -lxml2:
- https://rt.cpan.org/Ticket/Display.html?id=51439
- https://rt.cpan.org/Ticket/Display.html?id=61756
- << $node = XML::LibXML::Comment( $content ); >> is wrong.
- Documentation: moved away from Indirect-object-notation and added
some missing "my"s:
- http://www.modernperlbooks.com/mt/2009/08/the-problems-with-indirect-object-notation.html
- Fix failing t/01basic.t when compiling against libxml2 that comes from
git.
- https://rt.cpan.org/Public/Bug/Display.html?id=54951
- Thanks to Evan Carroll ( http://www.evancarroll.com/ ) for the
report.
1.73 2011-06-18
- Calculating $err->column() properly, so it won't be maxed out at
80:
- https://rt.cpan.org/Public/Bug/Display.html?id=66642
- the context still maxes at 80 (to avoid wasting RAM) but we
still continue past that to get the accurate verdict.
- Thanks to SCOP.
- Update the repository in the documentation to point to the
bitbucket.org one.
- Revamped Makefile.PL:
- Got rid of "\t" characters.
- Add "use strict" and "use warnings".
- Add resources and keywords to the META_MERGE.
- Other changes.
- Fix https://rt.cpan.org/Public/Bug/Display.html?id=53632 :
- << when calling normalize on a node, processing of children nodes
will stop when an empty element node is encountered. >>
- Thanks to Daniel Frett for the patch.
- Apply the patch from Daniel Frett's InputCallbackFix branch.
- a partial fix to https://rt.cpan.org/Public/Bug/Display.html?id=4263 .
- Call two $parser->parse_string() in succession.
- Apply the NestedParsing patch.
- more of https://rt.cpan.org/Public/Bug/Display.html?id=4263
- Thanks to Daniel Frett for the patch.
[QUOTE]
Updated how legacy parser local callbacks are utilized by
init_callbacks so that the XML::LibXML::InputCallback object doesn't
have to be temporarily modified during the parsing process.
This change could break code for users that have subclassed
XML::LibXML::InputCallback and overridden the init_callbacks method
[/QUOTE]
- Documentation fixes patch from Daniel Frett on:
- From https://github.com/frett/perl-libxml .
1.72 2011-06-16
- Removed a stray file from the MANIFEST
- http://rt.cpan.org/Ticket/Display.html?id=68865
- Warned on "kit not complete".
- Thanks to obrien.jk
1.71 2011-06-14
- turn XML_LIBXML_PARSE_DEFAULTS constant to $XML::LibXML::XML_LIBXML_PARSE_DEFAULTS
- Apply 0001-XML-LibXML-Error-no-need-to-AUTOLOAD-domain.patch from
https://rt.cpan.org/Public/Bug/Display.html?id=68575 - no need to
AUTOLOAD 'domain' because a method like that exists.
-- Applied by SHLOMIF.
-- Thanks to Aaron Crane.
- Apply 0002-XML-LibXML-Error-avoid-AUTOLOAD.patch from
https://rt.cpan.org/Public/Bug/Display.html?id=68575 - get rid of
AUTOLOAD completely.
-- Applied by SHLOMIF.
-- Thanks to Aaron Crane.
- Apply 0003-XML-LibXML-Error-make-domain-work-for-unknown-domain.patch
from https://rt.cpan.org/Public/Bug/Display.html?id=68575 - handle
unknown domains.
-- Applied by SHLOMIF.
-- Thanks to Aaron Crane.
- Apply 0004-XML-LibXML-Error-add-domains-from-newer-libxml2.patch
from https://rt.cpan.org/Public/Bug/Display.html?id=68575 - add more
errors.
-- Applied by SHLOMIF.
-- Thanks to Aaron Crane.
- Apply 0005-XML-LibXML-Error-avoid-malformed-UTF-8-warnings.patch
from https://rt.cpan.org/Public/Bug/Display.html?id=68575
-- Applied by SHLOMIF.
-- Thanks to Aaron Crane.
- In replaceDataString - use
http://perldoc.perl.org/functions/quotemeta.html instead of a long (and
incomplete) list of characters to escape.
-- With test.
-- also fix deleteDataString by making it use replaceDataString
for help.
-- Fixing https://rt.cpan.org/Ticket/Display.html?id=68564
-- Thanks to Daniel Perrett .
1.70 Unknown
- various fixes and improvements in the documentation
- added (convenient yet non-standard) methods nonBlankChildNodes,
firstNonBlankChild, nextNonBlankSibling, prevNonBlankSibling
that skip empty or whitespace-only Text and CDATA nodes
- exposed and documented external entity handler
- XPathContext can now be passed to toStringC14N and toStringEC14N
(e.g. to provide NS mapping for the XPath expression)
- avoid using libxml2's globals (Nick Wellnhofer)
- added interface to libxml2's regexp implementation: XML::LibXML::RegExp
- added XML::LibXML->load_xml and XML::LibXML->load_html with
uniform and cleaner API than the old parse_* family
- cleanup code dealing with parsing flags
- fix bogus validation results if revalidating a modified document
- added 'eq' and 'cmp' overloading on XML::LibXML::Error and set fallback to 1
- lots of bugs fixed
1.69_2 Unknown
- provide context and more accurate column number in
structured errors
- clarify license and copyright
- support for Win32+mingw+ActiveState
1.69_1 Unknown
- merge with XML::LibXML::Common
- fix compilation on Windows with mingw or msvc
- fix a bug in structured errors preventing the previous errors from being reported
- fix compilation bugs
- fix encoding problem in reader
- added getAttributeHash to the reader interface
- fix segfaults: reconcileNs in domReplaceChild, findnodes with a doc fragment (S. Rezic)
1.69 Unknown
- fix incorrect output of getAttributeNS and possibly other methods on UTF-8
- added $node_or_xpc->exists($xpath) method
- remove accidental debug output from XML::LibXML::SAX::Builder
1.68 Unknown
- compilation problem fixes
1.67 Unknown
- many bugfixes (rt.cpan.org)
- added XML::LibXML::Pattern module and extended pattern support in Reader
- added XML::LibXML::XPathExpression module that can pre-compile an XPath
expression
- reimplementation of the thread support (mostly by Tim Brody)
- structured errors XML::LibXML::Error
- memory leak fixes
- documentation fixes
- README - notes for building on Win32 (C.J. Madsen)
1.66 Unknown
- Perl-thread support contributed by Tim Brody [rt.cpan.org #31945]
- fix [rt.cpan.org #30610] possible segmentation fault when importing nodes from a document to an element created with XML::LibXML::Element->new
- fix [rt.cpan.org #30261] Segmentation fault when extracting elements from an XML chunk
- make Makefile.PL require Perl 5.6.1
- minor fixes and additions to the documentation
- portability patch from [rt.cpan.org #29627]
- give registered Ns declarations precedence over document-specific ones
in XML::LibXML::XPathContext; fixes [rt.cpan.org #29650]
1.65 Unknown
- fix bug in t/40reader.t revealed by a bugfix in Test::More 0.71 (Jonathan Rockway)
- fix possible SIGSEGV when PI's or attrs created with
createDocument can get garbage-collected after their owning
document (old-standing bug suddenly caught by XML::Compile regression tests)
- skip tests for unsupported features on unsupported versions of Perl/libxml2
- make Reader interface require Perl 5.8 (patches to extend to 5.6 are welcome)
1.64 Unknown
- fix reconciliation of the "xml" namespace [rt.cpan.org #26450]
- make tests pass with libxml2 2.9.29 - PI regression tests now
accept "" as data of an empty PI [rt.cpan.org #27659]
- strip-off UTF8 flag with $node->toString($format,1) for consistent
behavior independent on the actual document encoding
- fix in XML::LibXML::Reader::nextSiblingElment
- fix synopsis for XML::LibXML::Reader
- skip tests that require Encode module if not available (perl 5.6)
- finally removed the iterator() method deprecated since 1.54
- set_document_locator support in XML::LibXML::SAX::Parser
- SYNOPSIS sections of the docs now mention which module to use
and which other manpage to look into for inherited methods
- XML::LibXML::Namespace API fixed in order to achieve
an agreement between the docs and the implementation
1.63 Unknown
- added no_network parser flag
- added support for exclusive canonicalization (http://www.w3.org/TR/xml-exc-c14n/)
- make XInclude reflect parser flags
- documentation fixes
- better namespace reconciliation implemented by Tim Brody
- $doc->toString always returns octets
- $doc->actualEncoding returns UTF8 if no document encoding is declared
(unlike $doc->getEncoding, which returns undef)
1.62 Unknown
- interface to libxml2's pull-parser XML::LibXML::Reader
(initiated by Heiko Klein)
- make error messages intended to the user report the line of the
application call rather than that of the internal XS call
- XML::LibXML::Attr->serializeContent added (convenience function)
- fix getAttributeNode etc. w.r.t. #FIXED attributes (as well as some
cases with old buggy libxml2 versions)
- warn if runtime libxml2 is older than the one used at the compile time
- if compiled against libxml2 >= 2.6.27, new parse_html_* implementation is used
allowing encoding and other options to be passed to the parser
- DOM-compliant nodeNames: #comment, #text, #cdata, #document, #document-fragment
- toString on empty text node returns empty string, not undef
- cloneNode copies attributes on an element as required by the DOM spec
1.61 Unknown
- get{Elements,Children}By{TagName,TagNameNS,LocalName} now
obey wildcards '*', getChildrenByLocalName was added.
- XML::LibXML::XPathContext merged in
- many new tests added
- the module should now be fully compatibile with libxml2 >= 2.6.16
(some older versions compile but have problems with namespaced attributes)
- threads test skipped by default
- documentation updates (namely DOM namespace conformance in XML::LibXML::DOM)
- added setNamespaceDecl{URI,Prefix}
- get/setAttribute(NS)? implementation made xmlns aware
- all sub-modules have the same version as XML::LibXML
1.60 Unknown
- getElementsById corrected to getElementById and the old name kept
as an alias. Also re-implemented without XPath for improved
performance
- DOM Level 3 method $attr->isId() added
- make {get,set,has}Attribute(Node)? methods work with full
attribute names rather than just localnames.
(Although DOM Level 3 is not very clear about the behavior of
these methods for an attributes with namespaces, it certainly
does not imply that getAttribute('foo') should return value of a
bar:foo, which was the old behavior.)
- added publicId and systemId methods to XML::LibXML::Dtd
1.59 Unknown
- new parser and callback code (Christian Glahn)
- new XML::LibXML::InputCallback class
- many bug fixes (including several memory leaks)
- documentation and regression fixes and enhancements
- Perl wrappers for parse_html_*
- make sure parse_* methods are not called on class (bug 11126)
- DOM Layer 3 conformance fixes:
* lookupNamespaceURI(empty_or_undef) now returns the default NS
- faster getChildrenByTagNameNS implementation
- remove the SGML parser code no longer supported by libxml (Michael Kröll)
1.58 Unknown
- fixed a pointer initialization in parse_xml_chunk(), fixes
random several segmentation faults on document fragments.
- added NSCLEAN feature to the parser interface (bug 4560)
- minor code cleanups
- updated libxml2 blacklist.
- fixed croak while requesting nodeName() of CDATA sections (bug 1694).
- more documentation updates
1.57 Unknown
- added cloneNode to XML::LibXML::Document
- include Schema/RelaxNG code only with libxml2 >= 2.6.0 (to support old libxml2)
- applied patch to example/cb_example.pl (bug 4262)
- fixed insertBefore/insertAfter on empty elements (bug 3691)
- more DOM conformant XML::LibXML->createDocument API (by Robin Berjon)
- fixed encoding problems with API calls in document encoding
- improved support for importing DTD subsets
- fixed DTD validation error reporting problems with libxml2-2.6.x
- fixed compilation problems with libxml2-2.6.x
- fixed XML::LibXML::Number to support negative numbers
- added XML Schema validation interface (XML::LibXML::Schema)
- added XML RelaxNG validation interface (XML::LibXML::RelaxNG)
- Michael K. Edwards' patch applied with some amendments from Petr Pajas:
* add debian build files (I added SKIP_SAX_INSTALL flag for
Makefile.PL and changed the patch so that it doesn't disable
sax parser registration completely by default, and rather made
debian build use this flag)
* general cleanup (use SV_nolen, etc.)
* SAX parsers cleanup
* general error reporting code cleanup/rewrite, try preventing
possible memory leaks
* recover(1) now triggers warnings (disable with $SIG{__WARN__}=sub {})
(fixes bug 1968, too)
* slighlty more strict parse_string behavior (now same as when
parsing fh, etc): e.g. parse_string("<foo:bar>"), i.e prefix without
NS declaration, raises error unless recover(1) is used
* documentation fixes/updates
* slightly updated test set to reflect the new slightly more strict
parsing.
- fixed default c14n XPath to include attributes and namespaces (Petr Pajas)
- make libxml2's xmlXPathOrderDocElems available through a new
$doc->indexElements method
- added version information of libxml2
- Les Richardson's documentation patch applied.
1.56 Unknown
- added line number interface (thanks to Peter Haworth)
- patch to make perl 5.8.1 and XML::LibXML work together (thanks to François Pons)
- added getElementById to XML::LibXML::Document (thanks to Robin Berjon)
- fixes symbol problem with versions of libxml2 compiled without
thread support (reported by Randal L. Schwartz)
- tiny code clean ups
- corrected tested versions after a local setup problem
1.55 Unknown
- fixed possible problems with math.h
- added C14N interface "toStringC14N()" (thanks to Chip Turner)
- fixed default namespace bug with libxml2 2.5.8 (by Vaclav Barta)
- fixed a NOOP in the XPath code.
- fixed insertBefore() behaviour to be DOM conform
- fixed a minor problem in Makefile.PL
- improved more documentation
- converted documentation to DocBook
1.54 Unknown
- fixed some major bugs, works now with libxml2 2.5.x
- fixed problem with empty document fragments
- bad tag and attribute names cannot be created anymore
- Catalog interface is aware about libxml2 configuration
- XML::LibXML should work now on systems without having zlib installed
- cleaned the error handling code, which
- fixes bad reporting of the validating parser
- fixes bad reporting in xpath functions
- added getElementsBy*Name() functions for the Document Class
- fixed memory management problem introduced in 1.53
(that fixes a lot strange things)
- interface for raw libxml2 DOM building functions
(currently just addChild() and addNewChild(), others will follow)
- fixed namespace handling if nodes are imported to a new DOM.
- fixed segmentation fault during validation under libxml2 2.4.25
- fixed bad CDATA handing in XML::LibXML::SAX::Builder
- fixed namespace handing in XML::LibXML::SAX
- fixed attribute handing in XML::LibXML::SAX
- fixed memory leak in XML::LibXML::SAX
- fixed memory leak in XML::LibXML::Document
- fixed segfault while appending entity ref nodes to documents
- fixed some backward compatibility issues
- fixed cloning with namespaces misbehaviour
- fixed parser problems with libxml2 2.5.3+
- moved iterator classes into a separate package
(after realizing some CPAN testers refuse to read their warnings
from Makefile.PL)
- improved parser testsuite
- improved M
- more documentation
- *NOTE:*
- Version 1.54 fixes potentional buffer overflows were possible with
- earlier versions of the package.
1.53 Unknown
Parser
- catalog interface
- enabled SGML parsing
- implemented libxml2 dom recovering
- parsing into GDOME nodes is now possible
- XML::LibXML::SAX is now faster
- made XML::LibXML::SAX parser running without errors in most (all?) cases
(DTD handling is still not implemented).
DOM interface
- Node Iterator class
- NodeList Iterator class
- introduced XML::GDOME import and export. (EXPERIMENTAL)
- more security checks
general blur
- removed code shared with XML::GDOME to a separate XML::LibXML::Common
module (check CPAN)
- removed some redundand code
- more documentation (and docu fixes) (thanks to Petr Pajas)
major fixes:
- possible buffer overflow with broken XML:
This may effect all older versions of XML::LibXML, please upgrade!
- a bug while replacing the document element.
- very stupid encoding bug. all UTF8 strings will now be marked as
UTF8 correctly
- namespace functions to work with empty namespaces
- toFH()
- namespace setting in XPath functions:
the namespaces of the document element will always be added now
- threaded perl 5.8.0 issues
- calling external entity handlers work again
- XML::LibXML::SAX::Parser will not throw warnings on DTD nodes
1.52 Unknown
- fixed some typos (thanks to Randy Kobes and Hildo Biersma)
- fixed namespace node handling
- fixed empty Text Node bug
- corrected the parser default values.
- added some documentation
1.51 Unknown
- fixed parser bug with broken XML declarations
- fixed memory management within documents that have subsets
- fixed some threaded perl issues
(special thanks to Andreas Koenig for the patch)
- applied Win32 tests
(special thanks to Randy Kobes for the patch)
- fixed findnodes() and find() to return empty arrays in array context
if the statement was legal but produced no result.
- fixed namespace handling in xpath functions
- fixed local namespace handling in DOM functions
- pretty formating to all serializing functions
*NOTE* the XML::LibXML::Node::toString interface changed
check the XML::LibXML::Node man page
- made xpath functions verbose to perl (one can wrap evals now)
- improved native SAX interface
- improved XML::LibXML::SAX::Builder
- added getNamespaces to the node interface
- better libxml2 version testing
- more documentation
1.50 Unknown
- fixed major problems with the validating parser
- fixed default behaviour of the generic parser
- fixed attribute setting of the string parser
- fixed external entity loading for entity expansion
- fixed nodeValue() to handle entities and entity refs correctly
- SAX::Parser ignores now hidden XINCLUDE nodes.
- fixed SAX::Builder to recognize namespace declarations correctly
- compatibility fixes
- importNode() bug fix
- fixed library tests and output in Makefile.PL
- added setOwnerDocument() again
- XML::LibXML::Document::process_xincludes reintroduced
- global callbacks reintroduced
NOTE: the Interface changed here, read XML::LibXML manpage!
- code cleanings
- push parser interface
- basic native libxml2 SAX interface
THIS INTERFACE IS STILL EXPERIMENTAL
- cloneNode clones now within documents
- more documentation
1.49 Unknown
- memory management has been completely rewritten.
now the module should not cause that many memory leaks
(special thanks to Merijn Broeren and Petr Pajas for providing
testcases)
- more libxml2 functions are used
- DOM API is more Level 3 conform
- ownerDocument fixed
- parser validation bug fixed (reported by Erik Ray)
- made parse_xml_chunk() report errors
- fixed the PI interface
- xpath.pl example
- better namespace support
- improved NamedNodeMap support
- restructured the interfaces
- HTML document nodes are recognized as HTML doc nodes instead of plain nodes
- XML::LibXML::SAX::Parser able to handle HTML docs now
(patch by D. Hageman [dhageman@dracken.com])
- added serialization flags ($setTagCompression, $skipDtd and
$skipXMLDeclaration)
- more documentation
1.40 Unknown
- new parsefunction: $parser->parse_xml_chunk($string);
- appendChild( $doc_fragment ) bug fixed
- removed obsolete files (parser.?)
- fixed getElementsByTagName and getElementsByTagNameNS to fit the spec
- new functions in XML::LibXML::Element:
getChildrenByTagName
getChildrenByTagNameNS
getElementsByLocalName
- minor fixes and extensions of the tests
- more docu ;)
- SAX added comment and PI support
- SAX added start_prefix_mapping/end_prefix_mapping
- Fixed find() bug with no results
- Added use IO::Handle so FH reads work
- A number of segfault fixes
- constants added without XML_ prefix
1.31 Unknown
- Removed C-layer parser implementation.
- Added support for prefixes in find* functions
- More memory leak fixes (in custom DOMs)
- Allow global callbacks
1.30 Unknown
- Full PI access
- New parser implementation (safer)
- Callbacks API changed to be on the object, not the class
- SAX uses XML::SAX now (required)
- Memory leak fixes
- applied a bunch of patches provided by T.J. Mather
1.00 Unknown
- Added SAX serialisation
- Added a SAX builder module
- Fixed findnodes in scalar context to return a NodeList object
- Added findvalue($xpath)
- Added find(), which returns different things depending on the XPath
- Added Boolean, Number and Literal data types
0.99 Unknown
- Added support for $doc->URI getter/setter
0.98 Unknown
- New have_library implementation
0.97 Unknown
- Addition of Dtd string parser
- Added support for namespace nodes (e.g. $element->getNamespaces())
- Some memory leak and segfault fixes
- Added $doc->validate([$dtd]) which throws exceptions (augments
$doc->is_valid([$dtd]))
- Added doc files and test files to CPAN distro
0.96 Unknown
- Addition of HTML parser
- getOwner method added
- Element->getAttributes() added
- Element->getAttributesNS(URI) added
- Documentation updates
- Memory leak fixes
- Bug Fixes
0.94 Unknown
- Some DOM Level 2 cleanups
- getParentNode returns XML::LibXML::Document if we get the
document node
0.93 Unknown
- Addition of DOM Level 2 APIs
- some more segfault fixes
- Document is now a Node (which makes lots of things easier)
0.92 Unknown
- Many segfault and other bug fixes
- More DOM API methods added
0.91 Unknown
- Removed from XML::LibXSLT distribution
- Added DOM API (phish)
0.01 2001-03-03
- original version; created by h2xs 1.19