From 104c8ff52a32f7e361cdff01ef3371e061046034 Mon Sep 17 00:00:00 2001 From: zhouganqing Date: Wed, 10 Jul 2024 16:24:22 +0800 Subject: [PATCH] New upstream version 2.0207+dfsg+really+2.0134 --- Changes | 54 - HACKING.txt | 6 +- LibXML.pm | 21 +- LibXML.pod | 4 +- LibXML.xs | 83 +- MANIFEST | 5 +- META.json | 47 +- META.yml | 37 +- Makefile.PL | 2 +- README | 28 +- docs/libxml.dbk | 89 +- example/JBR-ALLENtrees.htm | 601 ---------- example/thedieline.rss | 29 - example/yahoo-finance-html-with-errors.html | 1193 ------------------- inc/Devel/CheckLib.pm | 493 ++++++++ lib/XML/LibXML/Attr.pod | 2 +- lib/XML/LibXML/AttributeHash.pm | 2 +- lib/XML/LibXML/Boolean.pm | 2 +- lib/XML/LibXML/CDATASection.pod | 2 +- lib/XML/LibXML/Comment.pod | 2 +- lib/XML/LibXML/Common.pm | 3 +- lib/XML/LibXML/Common.pod | 2 +- lib/XML/LibXML/DOM.pod | 2 +- lib/XML/LibXML/Devel.pm | 2 +- lib/XML/LibXML/Document.pod | 2 +- lib/XML/LibXML/DocumentFragment.pod | 2 +- lib/XML/LibXML/Dtd.pod | 2 +- lib/XML/LibXML/Element.pod | 2 +- lib/XML/LibXML/ErrNo.pm | 2 +- lib/XML/LibXML/ErrNo.pod | 2 +- lib/XML/LibXML/Error.pm | 7 +- lib/XML/LibXML/Error.pod | 2 +- lib/XML/LibXML/InputCallback.pod | 2 +- lib/XML/LibXML/Literal.pm | 2 +- lib/XML/LibXML/Namespace.pod | 2 +- lib/XML/LibXML/Node.pod | 4 +- lib/XML/LibXML/NodeList.pm | 2 +- lib/XML/LibXML/Number.pm | 2 +- lib/XML/LibXML/PI.pod | 2 +- lib/XML/LibXML/Parser.pod | 26 +- lib/XML/LibXML/Pattern.pod | 2 +- lib/XML/LibXML/Reader.pm | 2 +- lib/XML/LibXML/Reader.pod | 12 +- lib/XML/LibXML/RegExp.pod | 2 +- lib/XML/LibXML/RelaxNG.pod | 27 +- lib/XML/LibXML/SAX.pm | 17 +- lib/XML/LibXML/SAX.pod | 2 +- lib/XML/LibXML/SAX/Builder.pm | 2 +- lib/XML/LibXML/SAX/Builder.pod | 2 +- lib/XML/LibXML/SAX/Generator.pm | 2 +- lib/XML/LibXML/SAX/Parser.pm | 2 +- lib/XML/LibXML/Schema.pod | 23 +- lib/XML/LibXML/Text.pod | 2 +- lib/XML/LibXML/XPathContext.pm | 2 +- lib/XML/LibXML/XPathContext.pod | 4 +- lib/XML/LibXML/XPathExpression.pod | 2 +- perl-libxml-mm.c | 2 +- scripts/bump-version-number.pl | 25 +- scripts/tag-release.pl | 16 +- t/00-report-prereqs.t | 194 --- t/02parse.t | 6 +- t/13dtd.t | 2 +- t/17callbacks.t | 2 +- t/18docfree.t | 3 +- t/25relaxng.t | 32 +- t/26schema.t | 23 +- t/35huge_mode.t | 5 - t/40reader.t | 1 - t/43options.t | 21 +- t/48_SAX_Builder_rt_91433.t | 3 +- t/48_gh_pr63_detect_undef_values.t | 34 - t/48_rt123379_setNamespace.t | 8 - t/48_rt93429_recover_2_in_html_parsing.t | 1 - t/62overload.t | 12 - t/91unique_key.t | 1 - t/pod-files-presence.t | 9 +- test/relaxng/net.rng | 12 - test/schema/net.xsd | 4 - 78 files changed, 709 insertions(+), 2586 deletions(-) delete mode 100644 example/JBR-ALLENtrees.htm delete mode 100644 example/thedieline.rss delete mode 100644 example/yahoo-finance-html-with-errors.html create mode 100644 inc/Devel/CheckLib.pm delete mode 100644 t/00-report-prereqs.t delete mode 100644 t/48_gh_pr63_detect_undef_values.t delete mode 100644 test/relaxng/net.rng delete mode 100644 test/schema/net.xsd diff --git a/Changes b/Changes index e00313e..1692766 100644 --- a/Changes +++ b/Changes @@ -1,59 +1,5 @@ Revision history for Perl extension XML::LibXML -2.0207 2021-04-17 - - Small cleanups: - - https://github.com/shlomif/perl-XML-LibXML/pull/63 - - Thanks to @Grinnz , @Kritzefitz and @atoomic . - -2.0206 2020-09-15 - - Add expand_entities => 1 to the instantiation at lib/XML/LibXML/SAX.pm - - in order to fix https://rt.cpan.org/Public/Bug/Display.html?id=132759 - - failing XML-Simple tests - - Thanks to SREZIC , and GRANTM . - - Update HACKING.txt . - -2.0205 2020-05-08 - - Add XML::LibXML to the XML/SAX/ParserDetails.ini configuration file - upon installation. - - https://rt.cpan.org/Public/Bug/Display.html?id=132523 - - https://github.com/shlomif/perl-XML-LibXML/pull/49 - - Thanks to SREZIC , @genio , and @plicease . - -2.0204 2020-03-17 - - Require a recent Alien::Libxml2. - - https://rt.cpan.org/Public/Bug/Display.html?id=132129 - - Thanks to SREZIC - -2.0203 2020-03-11 - - Use Alien::Base::Wrapper for better portability. - - https://github.com/shlomif/perl-XML-LibXML/pull/45 - - Thanks to @plicease - -2.0202 2020-01-13 - - Disable loading external DTDs or external entities by default - - Thanks to Tim Retout - - Docs: Noting that HTTPS doesn't work for schema-loading either. - - Thanks to Jason McIntosh - - Allow to parse RelaxNG without accessing network - - Thanks to PALI - - Allow to parse XML Schema without accessing network - - Thanks to PALI - - Add Test-Count assertion count checking using - https://metacpan.org/pod/Code::TidyAll::Plugin::TestCount - -2.0201 2019-05-25 - - Set MIN_PERL_VERSION to 5.8.1. - - Alien::Libxml2 Makefile.PL cleanups. - - Update the README for grammar and info. - - Link to XML-LibXML "by Example" - - https://github.com/shlomif/perl-XML-LibXML/pull/36 - - Thanks to @Grinnz . - -2.0200 2019-03-23 - - Convert to use Alien::Libxml2 . - - https://github.com/shlomif/perl-XML-LibXML/pull/30 - - Thanks to @genio and @plicease . - 2.0134 2019-02-10 - Fix overzealous POD escaping in the docs' synposes - https://github.com/shlomif/perl-XML-LibXML/issues/26 diff --git a/HACKING.txt b/HACKING.txt index 3667c02..c285ed2 100644 --- a/HACKING.txt +++ b/HACKING.txt @@ -11,9 +11,9 @@ Use Test::More for test scripts while using Test::Count annotations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ One should use Test::More for new test scripts, while using Test::Count -( https://metacpan.org/module/Test::Count ) "# TEST" annotations. Some -of the old test scripts under +t/*.t+ had used Test.pm, but they -have all been converted to Test::More, which should be used for new code. +( http://beta.metacpan.org/module/Test::Count ) "# TEST" annotations. Some +of the old test scripts under +t/*.t+ are still using Test.pm, but it should +not be used for new code. Any bug fixes or feature addition patches should be accompanied with a test script to test the code. diff --git a/LibXML.pm b/LibXML.pm index 7f033ca..700ad9b 100644 --- a/LibXML.pm +++ b/LibXML.pm @@ -29,11 +29,11 @@ use XML::LibXML::XPathContext; use IO::Handle; # for FH reads called as methods BEGIN { -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE $ABI_VERSION = 2; require Exporter; -use XSLoader (); -@ISA = qw(Exporter); +require DynaLoader; +@ISA = qw(DynaLoader Exporter); use vars qw($__PROXY_NODE_REGISTRY $__threads_shared $__PROXY_NODE_REGISTRY_MUTEX $__loaded); @@ -147,7 +147,7 @@ $CloseCB = undef; #-------------------------------------------------------------------------# # bootstrapping # #-------------------------------------------------------------------------# -XSLoader::load( 'XML::LibXML', $VERSION ); +bootstrap XML::LibXML $VERSION; undef &AUTOLOAD; *encodeToUTF8 = \&XML::LibXML::Common::encodeToUTF8; @@ -261,7 +261,7 @@ use constant { HTML_PARSE_NOERROR => (1<<5), # suppress error reports }; -$XML_LIBXML_PARSE_DEFAULTS = ( XML_PARSE_NODICT ); +$XML_LIBXML_PARSE_DEFAULTS = ( XML_PARSE_NODICT | XML_PARSE_DTDLOAD | XML_PARSE_NOENT ); # this hash is made global so that applications can add names for new # libxml2 parser flags as temporary workaround @@ -366,7 +366,6 @@ sub new { } # parser flags $opts{no_blanks} = !$opts{keep_blanks} if exists($opts{keep_blanks}) and !exists($opts{no_blanks}); - $opts{load_ext_dtd} = $opts{expand_entities} if exists($opts{expand_entities}) and !exists($opts{load_ext_dtd}); for (keys %OUR_FLAGS) { $self->{$OUR_FLAGS{$_}} = delete $opts{$_}; @@ -2079,13 +2078,13 @@ sub new { my $self = undef; if ( defined $args{location} ) { - $self = $class->parse_location( $args{location}, XML::LibXML->_parser_options(\%args), $args{recover} ); + $self = $class->parse_location( $args{location} ); } elsif ( defined $args{string} ) { - $self = $class->parse_buffer( $args{string}, XML::LibXML->_parser_options(\%args), $args{recover} ); + $self = $class->parse_buffer( $args{string} ); } elsif ( defined $args{DOM} ) { - $self = $class->parse_document( $args{DOM}, XML::LibXML->_parser_options(\%args), $args{recover} ); + $self = $class->parse_document( $args{DOM} ); } return $self; @@ -2103,10 +2102,10 @@ sub new { my $self = undef; if ( defined $args{location} ) { - $self = $class->parse_location( $args{location}, XML::LibXML->_parser_options(\%args), $args{recover} ); + $self = $class->parse_location( $args{location} ); } elsif ( defined $args{string} ) { - $self = $class->parse_buffer( $args{string}, XML::LibXML->_parser_options(\%args), $args{recover} ); + $self = $class->parse_buffer( $args{string} ); } return $self; diff --git a/LibXML.pod b/LibXML.pod index 73a9e50..f757b36 100644 --- a/LibXML.pod +++ b/LibXML.pod @@ -25,8 +25,6 @@ a XML::XPath-like interface to XPath API of libxml2. The module is split into several packages which are not described in this section; unless stated otherwise, you only need to C<<<<<< use XML::LibXML; >>>>>> in your programs. -Check out XML::LibXML by Example (L<<<<<< http://grantm.github.io/perl-libxml-by-example/ >>>>>>) for a tutorial. - For further information, please check the following documentation: =over 4 @@ -507,7 +505,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/LibXML.xs b/LibXML.xs index 51bb3be..efca0b6 100644 --- a/LibXML.xs +++ b/LibXML.xs @@ -7337,14 +7337,11 @@ DESTROY( self ) xmlRelaxNGPtr -parse_location( self, url, parser_options = 0, recover = FALSE ) +parse_location( self, url ) char * url - int parser_options - bool recover PREINIT: const char * CLASS = "XML::LibXML::RelaxNG"; xmlRelaxNGParserCtxtPtr rngctxt = NULL; - xmlExternalEntityLoader old_ext_ent_loader = NULL; PREINIT_SAVED_ERROR CODE: INIT_ERROR_HANDLER; @@ -7360,33 +7357,20 @@ parse_location( self, url, parser_options = 0, recover = FALSE ) (xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx, saved_error ); #endif - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) { - old_ext_ent_loader = xmlGetExternalEntityLoader(); - xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader ); - } - RETVAL = xmlRelaxNGParse( rngctxt ); - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) - xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader ); - xmlRelaxNGFreeParserCtxt( rngctxt ); CLEANUP_ERROR_HANDLER; - REPORT_ERROR((RETVAL == NULL) ? 0 : recover); + REPORT_ERROR((RETVAL == NULL) ? 0 : 1); OUTPUT: RETVAL xmlRelaxNGPtr -parse_buffer( self, perlstring, parser_options = 0, recover = FALSE ) +parse_buffer( self, perlstring ) SV * perlstring - int parser_options - bool recover PREINIT: const char * CLASS = "XML::LibXML::RelaxNG"; xmlRelaxNGParserCtxtPtr rngctxt = NULL; - xmlExternalEntityLoader old_ext_ent_loader = NULL; char * string = NULL; STRLEN len = 0; PREINIT_SAVED_ERROR @@ -7409,33 +7393,20 @@ parse_buffer( self, perlstring, parser_options = 0, recover = FALSE ) (xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx, saved_error ); #endif - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) { - old_ext_ent_loader = xmlGetExternalEntityLoader(); - xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader ); - } - RETVAL = xmlRelaxNGParse( rngctxt ); - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) - xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader ); - xmlRelaxNGFreeParserCtxt( rngctxt ); CLEANUP_ERROR_HANDLER; - REPORT_ERROR((RETVAL == NULL) ? 0 : recover); + REPORT_ERROR((RETVAL == NULL) ? 0 : 1); OUTPUT: RETVAL xmlRelaxNGPtr -parse_document( self, doc, parser_options = 0, recover = FALSE ) +parse_document( self, doc ) xmlDocPtr doc - int parser_options - bool recover PREINIT: const char * CLASS = "XML::LibXML::RelaxNG"; xmlRelaxNGParserCtxtPtr rngctxt = NULL; - xmlExternalEntityLoader old_ext_ent_loader = NULL; PREINIT_SAVED_ERROR CODE: INIT_ERROR_HANDLER; @@ -7451,20 +7422,10 @@ parse_document( self, doc, parser_options = 0, recover = FALSE ) (xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx, saved_error ); #endif - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) { - old_ext_ent_loader = xmlGetExternalEntityLoader(); - xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader ); - } - RETVAL = xmlRelaxNGParse( rngctxt ); - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) - xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader ); - xmlRelaxNGFreeParserCtxt( rngctxt ); CLEANUP_ERROR_HANDLER; - REPORT_ERROR((RETVAL == NULL) ? 0 : recover); + REPORT_ERROR((RETVAL == NULL) ? 0 : 1); OUTPUT: RETVAL @@ -7526,14 +7487,11 @@ DESTROY( self ) xmlSchemaPtr -parse_location( self, url, parser_options = 0, recover = FALSE ) +parse_location( self, url ) char * url - int parser_options - bool recover PREINIT: const char * CLASS = "XML::LibXML::Schema"; xmlSchemaParserCtxtPtr rngctxt = NULL; - xmlExternalEntityLoader old_ext_ent_loader = NULL; PREINIT_SAVED_ERROR CODE: INIT_ERROR_HANDLER; @@ -7551,32 +7509,20 @@ parse_location( self, url, parser_options = 0, recover = FALSE ) (xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx, saved_error ); - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) { - old_ext_ent_loader = xmlGetExternalEntityLoader(); - xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader ); - } - RETVAL = xmlSchemaParse( rngctxt ); - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) - xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader ); - xmlSchemaFreeParserCtxt( rngctxt ); CLEANUP_ERROR_HANDLER; - REPORT_ERROR((RETVAL == NULL) ? 0 : recover); + REPORT_ERROR((RETVAL == NULL) ? 0 : 1); OUTPUT: RETVAL xmlSchemaPtr -parse_buffer( self, perlstring, parser_options = 0, recover = FALSE ) +parse_buffer( self, perlstring ) SV * perlstring - int parser_options - bool recover PREINIT: const char * CLASS = "XML::LibXML::Schema"; xmlSchemaParserCtxtPtr rngctxt = NULL; - xmlExternalEntityLoader old_ext_ent_loader = NULL; char * string = NULL; STRLEN len = 0; PREINIT_SAVED_ERROR @@ -7601,19 +7547,10 @@ parse_buffer( self, perlstring, parser_options = 0, recover = FALSE ) (xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx, saved_error ); - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) { - old_ext_ent_loader = xmlGetExternalEntityLoader(); - xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader ); - } - RETVAL = xmlSchemaParse( rngctxt ); - - if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) - xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader ); - xmlSchemaFreeParserCtxt( rngctxt ); CLEANUP_ERROR_HANDLER; - REPORT_ERROR((RETVAL == NULL) ? 0 : recover); + REPORT_ERROR((RETVAL == NULL) ? 0 : 1); OUTPUT: RETVAL diff --git a/MANIFEST b/MANIFEST index 4297696..86f2c0a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -62,6 +62,7 @@ example/xmlns/badguy.xml example/xmlns/goodguy.xml example/xpath.pl example/yahoo-finance-html-with-errors.html +inc/Devel/CheckLib.pm lib/XML/LibXML/Attr.pod lib/XML/LibXML/AttributeHash.pm lib/XML/LibXML/Boolean.pm @@ -115,7 +116,6 @@ scripts/prints-to-comments.pl scripts/tag-release.pl scripts/total-build-and-test.bash scripts/update-HACKING-file.bash -t/00-report-prereqs.t t/01basic.t t/02parse.t t/03doc.t @@ -161,7 +161,6 @@ t/46err_column.t t/47load_xml_callbacks.t t/48_RH5_double_free_rt83779.t t/48_SAX_Builder_rt_91433.t -t/48_gh_pr63_detect_undef_values.t t/48_memleak_rt_83744.t t/48_reader_undef_warning_on_empty_str_rt106830.t t/48_removeChild_crashes_rt_80395.t @@ -204,12 +203,10 @@ test/relaxng/demo2.rng test/relaxng/demo3.rng test/relaxng/demo4.rng test/relaxng/invaliddemo.xml -test/relaxng/net.rng test/relaxng/schema.rng test/schema/badschema.xsd test/schema/demo.xml test/schema/invaliddemo.xml -test/schema/net.xsd test/schema/schema.xsd test/textReader/countries.xml test/xinclude/entity.txt diff --git a/META.json b/META.json index 2bfa259..aef3db5 100644 --- a/META.json +++ b/META.json @@ -1,10 +1,10 @@ { "abstract" : "Interface to Gnome libxml2 xml parsing and DOM library", "author" : [ - "Petr Pajas " + "Petr Pajas" ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010", + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", "keywords" : [ "dom", "html", @@ -33,8 +33,7 @@ "no_index" : { "directory" : [ "t", - "inc", - "xt" + "inc" ] }, "prereqs" : { @@ -45,58 +44,32 @@ }, "configure" : { "requires" : { - "Alien::Base::Wrapper" : "0", - "Alien::Libxml2" : "0.14", - "Config" : "0", "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "requires" : { - "Carp" : "0", - "DynaLoader" : "0", - "Encode" : "0", - "Exporter" : "5.57", - "IO::Handle" : "0", - "Scalar::Util" : "0", - "Tie::Hash" : "0", + "Test::More" : "0", "XML::NamespaceSupport" : "1.07", "XML::SAX" : "0.11", "XML::SAX::Base" : "0", - "XML::SAX::DocumentLocator" : "0", "XML::SAX::Exception" : "0", "base" : "0", - "constant" : "0", - "overload" : "0", "parent" : "0", - "perl" : "5.008001", + "perl" : "5.008", "strict" : "0", "vars" : "0", "warnings" : "0" } - }, - "test" : { - "requires" : { - "Config" : "0", - "Errno" : "0", - "IO::File" : "0", - "IO::Handle" : "0", - "POSIX" : "0", - "Scalar::Util" : "0", - "Test::More" : "0", - "locale" : "0", - "utf8" : "0" - } } }, "release_status" : "stable", "resources" : { + "homepage" : "https://github.com/shlomif/perl-XML-LibXML", "repository" : { - "type" : "git", - "url" : "https://github.com/shlomif/perl-XML-LibXML.git", - "web" : "https://github.com/shlomif/perl-XML-LibXML" + "url" : "https://github.com/shlomif/perl-XML-LibXML" } }, - "version" : "2.0207", - "x_serialization_backend" : "JSON::PP version 4.06" + "version" : "2.0134", + "x_serialization_backend" : "JSON::PP version 2.97001" } diff --git a/META.yml b/META.yml index fee45e0..26ab4cb 100644 --- a/META.yml +++ b/META.yml @@ -1,25 +1,13 @@ --- abstract: 'Interface to Gnome libxml2 xml parsing and DOM library' author: - - 'Petr Pajas ' + - 'Petr Pajas' build_requires: - Config: '0' - Errno: '0' ExtUtils::MakeMaker: '0' - IO::File: '0' - IO::Handle: '0' - POSIX: '0' - Scalar::Util: '0' - Test::More: '0' - locale: '0' - utf8: '0' configure_requires: - Alien::Base::Wrapper: '0' - Alien::Libxml2: '0.14' - Config: '0' ExtUtils::MakeMaker: '0' -dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010' +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' keywords: - dom - html @@ -45,29 +33,20 @@ no_index: directory: - t - inc - - xt requires: - Carp: '0' - DynaLoader: '0' - Encode: '0' - Exporter: '5.57' - IO::Handle: '0' - Scalar::Util: '0' - Tie::Hash: '0' + Test::More: '0' XML::NamespaceSupport: '1.07' XML::SAX: '0.11' XML::SAX::Base: '0' - XML::SAX::DocumentLocator: '0' XML::SAX::Exception: '0' base: '0' - constant: '0' - overload: '0' parent: '0' - perl: '5.008001' + perl: '5.008' strict: '0' vars: '0' warnings: '0' resources: - repository: https://github.com/shlomif/perl-XML-LibXML.git -version: '2.0207' + homepage: https://github.com/shlomif/perl-XML-LibXML + repository: https://github.com/shlomif/perl-XML-LibXML +version: '2.0134' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/Makefile.PL b/Makefile.PL index db85a65..5e49473 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -223,7 +223,7 @@ unless ( $is_Win32 ) { # cannot get config in W32 $libxml2_version = $1; } # 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors) - exit 1 if !$FORCE and $libxml2_version ne "2.9.4"; + exit 0 if !$FORCE and $libxml2_version ne "2.9.4"; } if ( $@ =~ /^UNTESTED (\S*)/ ) { warn "Note: libxml2 $1 was not tested with this XML::LibXML version.\n" diff --git a/README b/README index 827b6ff..ce77ecb 100644 --- a/README +++ b/README @@ -3,8 +3,8 @@ INTRODUCTION This module implements a Perl interface to the Gnome libxml2 library which provides interfaces for parsing and manipulating XML files. This module allows -Perl programmers to make use of its highly capable validating XML parser and -its high performance DOM implementation. +Perl programmers to make use of the highly capable validating XML parser and +the high performance DOM implementation. IMPORTANT NOTES @@ -104,8 +104,7 @@ Which version of libxml2 should be used? XML::LibXML is tested against a couple versions of libxml2 before it is released. Thus there are versions of libxml2 that are known not to work properly with XML::LibXML. The Makefile.PL keeps a blacklist of the -incompatible libxml2 versions using Alien::Libxml2. The blacklist itself is -kept inside its "alienfile" file. +incompatible libxml2 versions. If Makefile.PL detects one of the incompatible versions, it notifies the user. It may still happen that XML::LibXML builds and pass its tests with such a @@ -123,9 +122,6 @@ certain conditions. This is no reason to assume that it shall work without problems. If Makefile.PL marks a version of libxml2 as incompatible or broken it is done for a good reason. -Full linking information for libxml2 can be obtained by invoking "xml2-config ---libs". - Notes for Microsoft Windows =========================== @@ -179,10 +175,10 @@ incompatible) versions of those DLLs. Notes for Mac OS X ================== -Due to a refactoring of the module, XML::LibXML will not run with some earlier -versions of Mac OS X. It appears that this is related to special linker options -for that OS prior to version 10.2.2. Since the developers do not have full -access to this OS, help/ patches from OS X gurus are highly appreciated. +Due refactoring the module, XML::LibXML will not run with some earlier versions +of Mac OS X. It appears that this is related to special linker options for that +OS prior to version 10.2.2. Since the developers do not have full access to +this OS, help/ patches from OS X gurus are highly appreciated. It is confirmed that XML::LibXML builds and runs without problems since Mac OS X 10.2.6. @@ -232,12 +228,12 @@ Additionally I received the following Note from Rozi Kovesdi: CONTACT ======= -For bug reports, please use the issue tracker at -https://github.com/shlomif/perl-XML-LibXML/issues . +For bug reports, please use the CPAN request tracker on +http://rt.cpan.org/NoAuth/Bugs.html?Dist=XML-LibXML -For suggestions etc. you may contact the maintainer directly at -https://www.shlomifish.org/me/contact-me/ , but in general, it is recommended -to use the mailing list given below. +For suggestions etc. you may contact the maintainer directly at "pajas at ufal +dot mff dot cuni dot cz", but in general, it is recommended to use the mailing +list given below. For suggestions etc., and other issues related to XML::LibXML you may use the perl XML mailing list (perl-xml@listserv.ActiveState.com), where most diff --git a/docs/libxml.dbk b/docs/libxml.dbk index c7a4208..efc5d16 100644 --- a/docs/libxml.dbk +++ b/docs/libxml.dbk @@ -22,7 +22,7 @@ - 2.0207 + 2.0134 2001-2007 AxKit.com Ltd @@ -45,8 +45,8 @@ This module implements a Perl interface to the Gnome libxml2 library which provides interfaces for parsing and manipulating XML files. This - module allows Perl programmers to make use of its highly - capable validating XML parser and its high performance DOM + module allows Perl programmers to make use of the highly + capable validating XML parser and the high performance DOM implementation. @@ -155,9 +155,7 @@ See Notes for Microsoft Windows below.) libxml2 before it is released. Thus there are versions of libxml2 that are known not to work properly with XML::LibXML. The Makefile.PL keeps a blacklist of - the incompatible libxml2 versions using Alien::Libxml2. - The blacklist itself is kept inside its "alienfile" - file. + the incompatible libxml2 versions. If Makefile.PL detects one of the incompatible versions, it notifies the user. It may still happen that @@ -177,9 +175,6 @@ See Notes for Microsoft Windows below.) reason to assume that it shall work without problems. If Makefile.PL marks a version of libxml2 as incompatible or broken it is done for a good reason. - - Full linking information for libxml2 can be obtained - by invoking "xml2-config --libs". @@ -228,14 +223,12 @@ See Notes for Microsoft Windows below.) Notes for Mac OS X - - Due to a refactoring of the module, XML::LibXML will - not run with some earlier versions of Mac OS X. It - appears that this is related to special linker options - for that OS prior to version 10.2.2. Since the - developers do not have full access to this OS, help/ - patches from OS X gurus are highly appreciated. - + Due refactoring the module, XML::LibXML will not + run with some earlier versions of Mac OS X. It appears that this is related + to special linker options for that OS prior to version + 10.2.2. Since the developers do not have full access to this OS, + help/ patches from OS X gurus are highly + appreciated. It is confirmed that XML::LibXML builds and runs without problems since Mac OS X 10.2.6. @@ -288,14 +281,9 @@ perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include' Contact - For bug reports, please use the issue tracker at - https://github.com/shlomif/perl-XML-LibXML/issues . + For bug reports, please use the CPAN request tracker on http://rt.cpan.org/NoAuth/Bugs.html?Dist=XML-LibXML - - For suggestions etc. you may contact the maintainer directly at - https://www.shlomifish.org/me/contact-me/ - , but in general, it is recommended to use the mailing - list given below. + For suggestions etc. you may contact the maintainer directly at "pajas at ufal dot mff dot cuni dot cz", but in general, it is recommended to use the mailing list given below. For suggestions etc., and other issues @@ -393,9 +381,6 @@ EOT unless stated otherwise, you only need to use XML::LibXML; in your programs. - Check out XML::LibXML by Example - for a tutorial. - For further information, please check the following documentation: @@ -1126,7 +1111,7 @@ $dom = $parser->load_xml(...); This function is available since XML::LibXML 1.70. It provides easy to use interface to the XML parser that parses - given file (or non-HTTPS URL), string, or input stream + given file (or URL), string, or input stream to a DOM tree. The arguments can be passed in a HASH reference or as name => value pairs. @@ -1143,11 +1128,6 @@ $dom = $parser->load_xml(...); and for more information. - Note that, due to a limitation in the underlying libxml2 - library, this call does not recognize HTTPS-based URLs. (It - will treat an HTTPS URL as a filename, likely throwing a "No such - file or directory" exception.) - @@ -1274,11 +1254,10 @@ $dom = $parser->load_html(...); This function parses an XML document from a file or network; - $xmlfilename can be either a filename or a (non-HTTPS) URL. + $xmlfilename can be either a filename or an URL. Note that for parsing files, this function is the fastest choice, about 6-8 times faster then parse_fh(). - @@ -1325,7 +1304,7 @@ my $doc = $parser->parse_string(\$xmlstring, $baseuri); Similar to parse_file() but parses HTML (strict) documents; - $htmlfile can be filename or (non-HTTPS) URL. + $htmlfile can be filename or URL. An optional second argument can be used to pass some options to the HTML @@ -3252,7 +3231,7 @@ my $dtd = $document->createInternalSubset( "foo", "-//FOO//DTD FOO 0.1// This will unbind the Child Node from its parent $node. The function returns the unbound node. If - $childnode is not a child of the given Node the function will fail. + oldNode is not a child of the given Node the function will fail. @@ -5786,19 +5765,16 @@ $doc = XML::LibXML->new->parse_file($url); - $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 ); -$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 ); -$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 ); + $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url ); +$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring ); +$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc ); - The constructor of XML::LibXML::RelaxNG needs to be called with list of parameters. At least location, string or DOM parameter is required to - specify source of schema. Optional parameter no_network set to 1 cause that parser would not access network and optional parameter recover - set 1 cause that parser would not call die() on errors. - - It is important, that each schema only have a single source. + The constructor of XML::LibXML::RelaxNG may get called with either one of three parameters. The parameter tells the class from which + source it should generate a validation schema. It is important, that each schema only have a single source. The location parameter allows one to parse a schema - from the filesystem or a (non-HTTPS) URL. + from the filesystem or a URL. The string parameter will parse the schema from the given XML string. @@ -5854,18 +5830,15 @@ $doc = XML::LibXML->new->parse_file($url); - $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 ); -$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 ); + $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url ); +$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring ); - The constructor of XML::LibXML::Schema needs to be called with list of parameters. At least location or string parameter is required to - specify source of schema. Optional parameter no_network set to 1 cause that parser would not access network and optional parameter recover - set 1 cause that parser would not call die() on errors. - - It is important, that each schema only have a single source. + The constructor of XML::LibXML::Schema may get called with either one of two parameters. The parameter tells the class from which + source it should generate a validation schema. It is important, that each schema only have a single source. The location parameter allows one to parse a schema - from the filesystem or a (non-HTTPS) URL. + from the filesystem or a URL. The string parameter will parse the schema from the given XML string. @@ -6003,7 +5976,7 @@ my @nodes = $xc->findnodes('$A[work_area/street = $B]/name'); registerVarLookupFunc $xpc->registerVarLookupFunc($callback, $data) Registers variable lookup function - $callback. The registered function is + $prefix. The registered function is executed by the XPath engine each time an XPath variable is evaluated. It takes three arguments: $data, variable name, and variable @@ -6334,7 +6307,7 @@ sub processNode { location - Read XML from a local file or (non-HTTPS) URL. + Read XML from a local file or URL. @@ -6379,7 +6352,7 @@ sub processNode { RelaxNG => $rng_schema can be used to pass either a - object or a filename or (non-HTTPS) URL of a RelaxNG schema to the + object or a filename or URL of a RelaxNG schema to the constructor. The schema is then used to validate the document as it is processed. @@ -6388,7 +6361,7 @@ sub processNode { Schema => $xsd_schema can be used to pass either a - object or a filename or (non-HTTPS) URL of a W3C XSD schema to the + object or a filename or URL of a W3C XSD schema to the constructor. The schema is then used to validate the document as it is processed. diff --git a/example/JBR-ALLENtrees.htm b/example/JBR-ALLENtrees.htm deleted file mode 100644 index 98de95d..0000000 --- a/example/JBR-ALLENtrees.htm +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - ALLEN Descendancies - - - - - -
- -
-

The ALLEN Patrilineage Descendancies

- -
- - -
-

Posted Patrilineage Pedigrees & Descendancies

-
-

-The following ancestral ALLEN descendancies have been contributed by researchers of this ALLEN patrilineage, and are generally substantiated with -evidence. Each descendancy begins with the earliest known male ancestor of a particular sublineange and continues down to the tested male descendant. -Since this DNA patrilineage project is focused on tested or testable male ALLENs, these descendancy trees have been pruned not only of daughters, but -also of male lines which are known to have gone extinct or “daughtered out”. However, in some instances complete reconstructed families of -the first generation or two will be included because of their broad-based genealogical interest; in such cases males known or presumed to have died -without children will be flagged “no known issue”, or “(NKI)”.

- -

-The information provided for each male ALLEN should be sufficient in most cases to uniquely identify him in the USCensus and other readily available -sources. These data comprise (insofar as is known): date and place of birth, date and place of death, the name(s) of his wife (or wives) and the -date and place of marriage. Indefinite dates are always qualified as either approximate (“abt”, “bef”, “aft”, or -“by”) or merely estimated (“say”). Approximated dates imply supporting evidence which merely fails of complete accuracy, while -“say” dates are guesstimates based on typical patterns of the time, place, and social group. In some places, I have adjusted dates provided -by the sources to conform to these conventions, taking into consideration the accompanying evidence.

- -

-The yDNA-tested male descendants are flagged below with their Project #s and the “handle” of the Principal Researcher, e.g.  -Donald-05, Camilla-06).

- -

-Inferences about the placement of the distinctive yDNA mutations of project members have been interwoven with their descendancies, below, in red; please note, however, the careful qualifications where they appear. Most inferences drawn from DNA evidence -are probabilistic in nature and one needs to keep an open mind about alternative interpretations, just as one does with the genealogy itself.

- - -

invisible writing

-

Early ALLENs—Possible Project Ancestors

-

invisible writing

-

1-William of York County, Virginia, died about 1677

-

(SourcesHT ALLEN)

-

1--William Allen (- bef 12Nov1677 YorkCoVA)  m. Judith

-

|--2-Hudson Allen [no known descendants]

-

|--2-William Allen [supposed to be father of William of New Kent … Albemarle Cos, below]

-

invisible writing

- -

Known ALLEN Project Sublineages

- -

invisible writing

-

1-Robert Allen of New Kent, Hanover, Goochland, and Henrico Counties, VA, born say 1680

-

(Sources: This Robert descendancy is the main focus of MILLER, -and except for the final generations connecting to the present, has been derived from MILLER by John B. Robb. - It should be noted, however, that Melba Allen of Mississippi has an entirely different reconstruction of the top of this Allen tree.   Donna Bailey, who is a descendant of this line through Robert->Robert->Josiah of South Carolina, has furnished additional -material for her more recent ancestors.

- -

1-Robert Allen (say 1680 - abt 1756 HenricoCoVA)

-

The mutation DYS447- probably appears early downstream of the patriarch Robert.

-

|--m1. say 1708 Elizabeth [WALKER?]

-

|--2-Robert Allen (say 1709 NewKentCoVA - abt 1783 CaswellCoNC)

-

|   |--m1. Elizabeth [YOUNG??]

-

|   |--3-Young Allen (by 1732 - 1774 WakeCoNC)

-

|   |   |--m. Martha [COLEMAN?]

-

|   |   |   MILLER adds sons Robert & Drury citing Young’s will -but that document lists only the sons below;

-

|   |   |   the bogus Drury was supposedly the progenitor of one of the IredellCoNC Allen families.

-

|   |   |--4-William Allen (say 1757 - after 1791)—no known issue

-

|   |   |--4-Coleman Allen (say 1760 - [GA?])—Colemans & other descendants turn up in GA

-

|   |   |--4-Robin Allen (say 1763 -)—no known issue

-

|   |   |--4-Young Allen (say 1766 -)—no known issue

-

|   |   |--4-Josiah Allen (say 1766 - 1823 AnsonCoNC)

-

|   |   |   |--m. 1794 Nancy WHITE, GranvilleCoNC—Sons William, Joshua, Young, & Joseph

-

|   |   |--4-David Allen (abt 1771 -)—removed to AnsonCoNC; no known issue

-

- |   |--3-Josiah Allen (abt 1733 - 1781 EdgefieldCoSC)

-

|   |   |--m1. say 1757 _?_

-

|   |   |--4-James Allen (abt 1758 - 1826 MontgomeryCoAL)

-

|   |   |   |--m1. _?_

-

|   |   |   |--5-Lemuel Young Allen (abt 1797 EdgefieldCoSC - abt 1851 RuskCoTX)

-

|   |   |   |--m2. Rebecca HUDSON

-

|   |   |   |--5- ...who had sons James Jefferson, Alsey, Madison, and Josiah (all minors in 1826)

-

|   |   |--4-Robert Allen (abt 1760 - 1829 MontgomeryCoAL)

-

|   |   |--m. Nancy HAHM, in SC—Sons Dean, Wade Hampton, James, Robert, George

-

|   |   |--4-Josiah Allen (abt 1762 - 1796 EdgefieldCoSC)

-

|   |   |--m. Jennet—Sons William Winn, and Benjamin

-

|   |   |--4-Young Allen (abt 1764 - abt 1834 EdgefieldCoSC)

-

|   |   |--m. Susanna RICHARDSON— Son Aaron

-

|   |   |--4-Drury Allen (1777 EdgefieldCoSC - btw 26Apr1856 and 4Feb1857 ClarkeCoAL)

-

|   |   |--m1. abt 1799 [Margaret WAITE], EdgefieldCoSC

-

|   |   |   |--5-Josiah Allen 1800 EdgefieldCoSC - 1891 JasperCoMS)

-

|   |   |   |   |--m. abt 1833 Elizabeth HOWELL, RankinCoMS

-

|   |   |   |--5-Henry Allen abt 1801 EdgefieldCoSC - 1891 JasperCoMS)

-

|   |   |   |   |--m2. Sarah LATHAM

-

|   |   |   |--5-Drury Allen 1806 EdgefieldCoSC - 1908 ErathCoTX)

-

|   |   |   |   |--m1. 1826 Elizabeth BUCKELEW, ClarkeCoAL

-

|   |   |   |   |--m2. 1841 Elizabeth (_?_) WOOD, ClarkeCoAL

-

|   |   |   |   |--6-George Washington Allen (1851 ClarkeCoAL - 1943 ErathCoTX)

-

|   |   |   |   |   |--m. 1869 Sarah Elizabeth JORDAN, ClarkeCoAL

-

|   |   |   |   |   |--7-Henry Hampton Allen (1874 ClarkeCoAL - 1964 HoodCoTX)

-

|   |   |   |   |   |   |--m. 1892 Ida Leona Batts

-

|   |   |   |   |   |   |--8-Boyd Earl Allen (1910 ErathCoTX - 1990 ErathCoTX)

-

|   |   |   |   |   |   |   |--9-Danny Ray Allen     - *** Donna-08 ***     (has the DYS447- mutation)

-

|   |   |--m2. 1821 Nanch/Fannie WEBB, ClarkeCoAL

-

|   |--3-Robert Allen (abt 1735 - 1801 RichmondCoGA)

-

|   |        Robert settled initially with brother Josiah in old ColletonCoSC (now extinct)

-

|   |   |--m. abt 1760 Elizabeth WEST—Sons West, Jesse, Robert, Drury, Young, William

-

|   |        The wide gap between 3-Robert & 3-Drury suggests that there may have been 2 fathers Robert;

-

|   |        there is solid evidence at least that 3-Drury was the son of 2-Robert who died in CaswellCoNC..

-

|   |--3-Drury Allen (1749 LunenburgCoVA - 1826 PikeCoGA)

-

|   |   |--m. Elizabeth YARBOROUGH

-

|   |   |--4-Josiah Allen (abt 1769 [ButeCoNC?] - abt 1816 GreeneCoGA)

-

|   |   |   |--m. 1791 Elizabeth BROWNING—Sons Robert A., Young Drury, and Pleasant Josiah

-

|   |   |--4-Clement Allen (say 1773 - bef 1823 PikeCoGA

-

|   |   |   |--m. Nancy McKISSICK—Sons Josiah, Young Stokes, John Cunningham, Drury, and James.

-

|   |   |--4-Stokes Allen (say 1775 - by 1831 PikeCoGA

-

|   |   |   |--m. Susanna (GRAVES) FOUSHEE—Sons Clement Young, Thomas G., Stephen W., Young Drewry

-

|   |--m2. by 1765 Hannah (EDWARDS) HUDSON

-

|--2-Benjamin Allen (twin) (1711 NewKentCoVA - aft 1766 [HenricoCoVA?])—no known issue

-

|--2-Joseph Allen (twin) (1711 NewKentCoVA - 1771 CharlotteCoVA)

-

|   |--m. Sarah HUNT

-

|   |--3-Memucan Hunt Allen (1753 - abt 1833 AndersonCoKY)—sons Joseph and Charles

-

|   |--3-Memucan had brothers Benjamin, Robert, and Charles; the latter came with him to KY.

-

|--2-Drury Allen (1714 NewKentCoVA - abt 1803 PersonCoNC)

-

|   |--m. Sarah TINSLEY

-

|   |--3-David Allen (1746 LunenburgCoVA - 1828 PersonCoNC)

-

|   |   |--m. Catherine LANIER—sons Thomas, Drury, William

-

|--2-Richard Allen (say 1718 NewKentCoVA - aft 1772 [Henrico/HanoverCoVA])

-

|   |--m. _?_ (no record of marriage); probably had son Drury who sold his HanoverCo land

-

|--2-William Allen (say 1721 NewKentCoVA - abt 1785 GranvilleCoNC)—married twice but left no sons

-

|--m2. aft 1734 Sarah [WINSTON??]

-

invisible writing

- -

invisible writing

-

1-William Allen of Mecklenburg County, VA, born say 1725

-

(SourcesDr. Bob Allen; - additions by John B. Robb based on MILLER, - CARPENTER/McKEE,
and the USCensus)

-

1-William Allen (say 1725 VA - 1789 MecklenburgCoVA)

-

|--m1. say 1750, _?_ WRAY

-

|--2-Turner Allen (abt 1751 - [LunenburgCoVA?])  m. Sally NESBITT

-

|--2-Drury Allen (abt 1753 - 1823 AnsonCoNC)

-

|   |--m. abt 1772, Eleanor (“Nelly”) JARROTT

-

|   |--3-Julius Allen (say 1773 - 1845 AnsonCoNC)

-

|   |   |--m. _?_ SMITH

-

|   |   |--4-Henderson Allen (1814 AnsonsCoNC - 1897 GA)---m. 1842 Sarah C. HAMMOND

-

|   |--3-Thomas Allen (abt 1775 - 1858 FayetteCoTN

-

|   |   |--m1. _?_ SMITH

-

|   |   |--4-Jeremiah Allen (say 1808 AnsonCoNC - aft 1858)

-

|   |   |--4-Miles Allen (abt 1811 AnsonCoNC - abt 1843 [FayetteCoTN?])

-

|   |   |   |--m. abt 1832 Eliza Ann MORRIS

-

|   |   |   |--5-William Thomas Allen (1834 TN - abt 1859)

-

|   |   |   |   |--m. abt 1857 Rosanna HYATT

-

|   |   |   |   |--6-William Addison Allen (1858 AnsonCoNC - 1928 AnsonCoNC)

-

|   |   |   |   |   |--m. 1878 Louisa Charlotte TOMLINSON

-

|   |   |   |   |   |--7-William Addison Allen (1891 AnsonCoNC - 1955 AnsonCoNC)

-

|   |   |   |   |   |   |--8-Clinton Thomas Allen     - *** Lynda-09 ***    (no mutations)

-

- |   |   |--4-Edmond Allen (abt 1816 NC -)

-

|   |   |   |--m. Rebecca SMITH b.AL)

-

|   |   |--m2. Nancy

-

|   |--3-David Allen (abt 1780 VA - abt 1850 MarshallCoMS)

-

|   |   |--m1. Mary PARKER; m2. Elizabeth TURNER

-

|   |   |-?4-Claiborne Allen (abt 1815 NC - aft 1850 [MarshallCoMS?])

-

|   |--3-Benjamin Allen (abt 1781 NC - 1878 SumterCoAL)

-

|   |   |--m. abt 1812 Huldah PARKER

-

|   |   |--4-Richmond Allen (1813 NC - 1889 SumterCoAL)---m. 1834 Sarah R. ALLEN

-

|   |   |--4-Wiley Allen (1815 NC - 1891 SumterCoAL)---m. Elvira Ann Tiras PONDS

-

|   |   |        (removed to AL about 1840)

-

|   |   |--4-William Allen (abt 1817 NC - aft 1850 [ChoctawCoAL?])---m. Frances L.

-

|   |   |- 4-Enoch Allen (abt 1824 NC - 1896 Sumter/ChoctawCoAL?])---m. Jane S.

-

|   |   |- 4-Hampton Allen (1829 NC - 1903)---m. Susan Elizabeth BOWERS

-

|   |   |- 4-Robert Allen (abt 1834 NC - 1903)---m. Susan Elizabeth BOWERS

-

|   |   |- 4-Alexander Allen, a twin (abt 1837 NC - 1903)---m. Susan Elizabeth BOWERS

-

|   |   |- 4-Jeremiah Allen, a twin (abt 1837 NC -)---m. Molly SIMPSON (NKI)

-

|   |   |--4-other children: Jules, Dock (NKI), Norriss (NKI), Mary Ann, Harriet, Thomas (NKI)

-

|   |--3-William Allen ( -)

-

|   |--3-John Allen (abt 1792- 1857 AnsonCoNC)

-

The mutation CDYb- first appears with John or one of his descendants.

-

|   |   |--m. abt 1812 Mary (“Polly”) ALLEN (a 1st cousin)

-

|   |   |--4-Drury Allen (abt 1825 NC - bef 1880 [AnsonCoNC?])

-

|   |   |   |--m. Catharine Rowena BAUCOM

-

|   |   |   |--5-William Henry Allen (abt 1851 AnsonCoNC - 1924 StanlyCoNC)

-

|   |   |   |   |--m. 1873 Ellen CURLEE

-

|   |   |   |   |--6-Robert Sidney Allen (1876 AnsonCoNC - 1953 LeeCoSC)

-

|   |   |   |   |   |--m. 1903 Lilla Emile CRUMP

-

|   |   |   |   |   |--7-Flake Shellum Allen (1918 AnsonCoNC - 1963 AnsonCoNC)

-

|   |   |   |   |   |   |--8-Robert Shepherd Allen     - *** Dr.Bob-04 *** -    (has the CDYb- mutation)

-

|--2-William Allen (abt 1757 -)

-

|--2-John Allen (abt 1759 -)  m. 1783, Nancy MORGAN

-

|--2-Darling Allen (abt 1760 - 1802 AnsonCoNC)

-

|   |--m. 1793, Judith NANCE (Sons: Robert Nance b.1792, Darling)

-

|--2-Young Allen (abt 1764 - [LunenburgCoVA?])  m. Sarah POOLE

-

|--2-Pleasant Allen (abt 1766 -)  m. 1787, Rebecca WATSON

-

|--2-Meredith Allen (say 1768 - 1829 HenryCoVA)  m. 1788, Nancy COOPER

-

|--2-Gray Allen (abt 1770 -)  m. 1791, Molly NANCE (Son: Gray)

-

|--m2. say 1775, Ann

-

|--2-Robert Allen (abt 1776 - [HenryCoVA?])  m. Celia MULLINS

-

|--2-Joseph Smith Allen (1779 MecklenburgCoVA - StCharlesCoMO)

-

|   |--m1. 1807, Sarah WADE (Son William)

-

|   |--m2. abt 1811, Rachel MAY (Sons: William M., Robert L., John Pines, Joseph J.)

-

|--2-Pines Allen (abt 1782 MecklenburgCoVA - MO)

-

|   |--m1. 1807 HenryCoVA, Charlotte BAILEY (Sons: Robert B., Joseph J., John Parks, Charles C.

-

|   |--m2. 1821 Nancy HUGHES (Sons: Pines Henderson b.1825 NC, William M. b.1832 MO

-

-

- -

invisible writing

-

1-Reynold Allen of Granville, Johnston, Wake, and Iredell Cos NC, born say 1723

-

(SourcesMILLER - (mostly based on contributions by Sara C. Allen))

- -

1-Reynold Allen (say 1723 - abt 1808 [IredellCoNC?])

-

|--m. say 1751, Mary

-

|--2-Young Allen (say 1756 NC - 1834 WakeCoNC)

-

|   |--m. say 1779 Phebe PULLEN

-

|   |--3-James Akin Allen (abt 1782 WakeCoNC - 1862 WakeCoNC)

-

|   |   |--m1. Mary WYNNE

-

|   |   |--4-William Gaston Allen (1810 NC - 1858)   m. 1839 Martha B. SHIPP, WakeCoNC

-

|   |   |--4-Henry Young Allen (1824 NC -)  1850 Susan Ann OVERBY, GranvilleCoNC

-

|   |   |--4-Solomon J. Allen (abt 1831 - abt 1901)—no known issue

-

|   |   |--m2. 1849 Priscilla JACKSON

-

|   |--3-John Allen (abt 1784 NC - [aft 1860 CarrollCoTN??])  m. 1808 Sarah HARRISON WakeCoNC

-

|   |   |--4-Moses Harrison Allen (1808-1886 NC)   m. 1827 Lucy Williams Rhodes, WakeCoNC

-

|   |   |--4-Henry Anderson Allen (1814 - aft 1880 [WakeCoNC?]).

-

|   |   |   |--m. 1837, Sarah Elizabeth ROGERS, WakeCoNC

-

|   |   |--4-Wyatt Marion Allen (1824 WakeCoNC - 1863 WakeCoNC)

-

|   |   |   |--m. 1855 Martha Ann BAILEY, WakeCoNC

-

|   |--3-Henry Allen (- abt 1841 WakeCoNC)  m. 1831 Aley Sharpe Allen

-

|   |   |--4-James H. Allen (1815 NC -)  m. 1838, Elizabeth C. SPAIN

-

|   |--3-Miles Allen (- bef 1839 GibsonCoTN)

-

|   |   |--m. 1810 Jinsey ("Jane") BLEDSOE

-

|   |   |--4-Reynold Allen (1791 NC - abt 1879 WakeCoNC)

-

|   |   |   |--m1. 1824 Betsy Ann HARRISON

-

|   |   |   |--5-William Anderson Allen (1825 NC - 1884)  m. 1849 Maria G. HICKS

-

|   |   |   |--m2. 1836 Jane H. CANNON

-

|   |   |   |--5-Charles Nickolas Allen (abt 1837 -)  m. 1862 Caroline V. JOHNS WakeCoNC

-

|   |   |   |--5-James Bascumb Allen (abt 1851 -)

-

|   |--3-Young W. Allen (abt 1796 NC - aft 1880 [CarrollCoTN?]   m. Ann ROGERS

-

|--2-Reynold Allen (say 1758 - abt 1812 IredellCoNC)

-

|   |--3-William Moore Allen (abt 1784 NC - abt 1851 IredellCoNC)

-

|   |   |--4-Hinchea Allen  m. 1835 Catherine LITTLE, LincolnCoNC

-

|   |   |--4-David Allen

-

|   |   |--4-Burrell Allen  m. 1832 Rhoda L. HOKE, LincolnCoNC

-

|   |   |--4-John Allen

-

|   |   |--4-William Lee Allen

-

|   |   |--4-Augustus Allen

-

|   |--3-David Allen (say 1786 -)

-

|   |--3-Darling Allen (1788 IredellCoNC - 1867 WilkesCoNC)  m. 1809 Susan WALLIS, WilkesCoNC

-

|   |   |--4-(1841 - 1843 IredellCoNC)—no known issue

-

|   |   |--4-William Wallace Allen (1827 IredellCoNC - abt 1863)  m. Agnes MOORE

-

|   |   |--4-John Allen

-

|   |   |--4-Benton Carlton Allen (abt 1828 IredellCoNC -)

-

|   |--3-John Haden Allen ()

-

-

- - -

invisible writing

-

1-William Allen of New Kent, Goochland, and Albemarle Counties, Virginia, born say 1691

-

(SourcesBill A. Allen, Donald - Allen, WICKER. Project members Bill A., and Donald have researched their lines extensively and published -books on them which credibly link their TN ancestors to NC and VA respectively, and both books are full of anecdotal and background information which -brings their genealogy to life: see Bill-A_ALLEN, and Donald_ALLEN)

- -

1-William Allen (say 1691 - 1752 AlbemarleCoVA)

-

|--m1. abt 1712 Hannah [WATSON?]

-

|--2-Samuel Allen (1713 -)

-

|   |--m. Martha ARCHER

-

|--m2. 1720 Mary (HUNT) MINGE

-

|--2-William Hunt Allen (1724 -1806 BuckinghamCoVA)  m. Elizabeth

-

- |--2-John Allen (1726 - 1754 AlbemarleCoVA)

-

|   |--m. abt 1748 Betheniah Thomas NEVIL

-

|   |--3-Samuel Allen (1747 - 1800 AmherstCoVA)

-

|   |   |--m. 1771 Hannah JOPLING

-

|   |   |--4-George Allen (1773 [AmherstCoVA?] - 1835 WhiteCo, later DekalbCoTN)

-

|   |   |   |--m. 1798 Phebe WALKER, VA

-

|   |   |   |--5-John W[alker?] Allen (abt 1800 [AmherstCoVA?] - aft 1870 [DeKalbCoTN?])

-

|   |   |   |   |--m. abt 1823 Lucy W. FLOWERS

-

|   |   |   |   |--6-George Allen (abt 1832 TN -)

-

|   |   |   |   |--6-William Allen (abt 1834 TN -)

-

|   |   |   |   |--6-John M. Allen (1843 SmithCoTN - 1902 WiseCoTN)

-

|   |   |   |   |   |--m. 1876 Sarah Ann PELTON TarrantCoTX

-

|   |   |   |   |   |--7-O'Guster ("Gus") Allen (1877 TarrantCoTN - 1959 OklahomaCityOK)

-

|   |   |   |   |   |   |--m. 1895 Frances Rosine JACKSON JackCoTX

-

|   |   |   |   |   |   |--8-John Elmer Allen (1907 OklahomaTerr - 1989 OklahomaCityOK)

-

|   |   |   |   |   |   |   |--9-Donald Lee Allen     - *** Donald-05 ***

-

|   |   |   |--5-John W. had possible brothers Jesse, Samuel, William D, and George H

-

|   |   |--4-Jesse Allen (1777 [AmherstCoVA?] - 1857 DekalbCoTN)

-

|   |   |   |--m. Nancy WALKER va

-

|   |   |--4-Samuel Hunt Allen (abt 1785 AmherstCoVA? - abt 1831)

-

|   |   |   |--m. by 1810 Polly WALKER VA

-

|   |   |--4-John Allen (abt 1786 AmherstCoVA? - 1854)

-

|   |--3-Jesse Allen (abt 1748 - abt 1781 BuckinghamCoVA)

-

|--2-Valentine Allen (1730 - 1797 RockinghamCoNC)  m. Nancy Ann ARNOLD

-

The mutation DYS449+ first appears with Valentine or one of his descendants.

-

|   |--m. 1753 Nancy Ann ARNOLD CumberlandCoVA

-

|   |--3-William Hunt Allen (by 1755 - abt 1822 BedfordCoTN)

-

|   |   |--m. 1777 Agatha SCALES RockinghamCoNC

-

|   |   |--4-George Hunt Allen (1780 RockinghamCoNC - 1874 MarshallCoTN)

-

|   |   |   |--m. 1804 Mary OGILVIE DavidsonCoTN

-

|   |   |   |--5-Grant Iverson Allen (1805 WilliamsonCoTN - 1891 MarshallCoTN)

-

|   |   |   |   |--m. 1830 Nancy Elizabeth ALLEN WilliamsonCoTN

-

|   |   |   |   | ---6-Thomas Alexander Allen (1837 MarshallCoTN - 1917 MarshallCoTN)

-

|   |   |   |   |   |    ----m. 1867 Mary Fredonia Jane Ewing WilliamsonCoTN

-

|   |   |   |   |   | ---7-William Harris Allen (1876 MarshallCoTN - 1942 MarshallCoTN)

-

|   |   |   |   |   |   |    ----m. 1909 Ruth Hunter WilliamsonCoTN

-

|   |   |   |   |   |   | ---8-Thomas Hunter Allen (1912 MarshallCoTN - 1972 MarshallCoTN)

-

|   |   |   |   |   |   |   | ---9-William Alfred Allen    *** Bill-A-03 *** -    (has the DYS449+ mutation)

-

|   |--3-George Allen (abt 1774 - 1854 MarshallCoTN)  m. Annie Eliza PATRICK

-

|--2-George Hunt Allen (1734 - 1778)  m. Mary BALLARD

-

|--2-Phillip Allen (1740 - 1763)

-

-

- -

invisible writing

-

1-James T Allen of Bastrop, and Wise County, TX, born 1832

-

(SourcesBill Bernard Allen, - Fletcher Thomason)

-

The mutation DYS449+ occurs either downstream or within a few generations upstream of James T. Allen.

-

1-James T. Allen (1832 TN - 1900 WiseCoTX)

-

|--m. say 1755, Sarah ("Sallie") C. MILLER

-

|--2-Henry Clay Allen (1857 EllisCoTX - 1946 PhoenixAZ)

-

|   |--m1. abt 1878 Edna Eliza TIMMONS

-

|   |--3-William Louis Allen (1879 WiseCoTX - 1966 MercerCoIL)

-

|   |   |--m. abt 1910 Maude SWARTOUT

-

|   |   |--4-James Elwood Allen (1927 MercerCoIL - 2008 RockIslandCoIL)

-

|   |   |   |--m. Violet Irene GEORGE

-

|   |   |   |--5-William Bernard Allen (1949 -)

-

|   |   |   |   | ---6-William Bernard Allen (1971)    *** Bill-B-01 *** -    (has the DYS449+ mutation)

-

|   |--m2. 1881 Molly Eugenia Brazziel (Children: Tom, James, Etta Anna)

-

|--2-Frank Marion Allen (1866 - )

-

|--m1. abt 1895 Loucille LYNCH

-

|   |--3-Tincy boy Kenneth Allen (1912 CottleCoTX - 1992 WiseCoTX)

-

|   |   |--m. Dovie Elizabeth BARTON

-

|   |   |--4-Lee Roy Allen (1942 TarrantCoTX -) *** Fletcher-12 ***

-

invisible writing

-

1-Charles Henry Francis Marion Allen of Georgia, and Cherokee County, Alabama, born abt 1826

-

(Sources: Winston Allen, and John B. Robb)

-

The mutation DYS447- occurs either downstream or within a few generations upstream of Charles Henry Allen.

- -

1-Charles Henry Francis Marion Allen (abt 1825 GA - bef 1900 [AL?])

-

|--m. abt 1846 Francis [TOWERS?]

-

|--2-James T. Allen (abt 1849 AL -)

-

|--2-A[sa] Benjamin R. Allen (1861 AL - bef 1910 [LamarCoTX?])

-

|   |--m. abt 1884 Martha Lou CHISENHALL

-

|   |--3-James Lawrence Allen (1891 LamarCoTX -)

-

|   |   |--m. Essie Velma RATLIFF

-

|   |   |--4-Winston Allen     - *** Winston-14 *** - (has the DYS447- mutation) -

- -

invisible writing

-

1-Joseph Allen of Elbert County, Georgia, born abt 1760

-

(SourcesLouDean Mayes)

-

The mutation DYS447- occurs upstream of the patriarch, Joseph, of this sublineage.

-

The mutations DYS570- & 464- occur probably downstream of Joseph.

- -

1-Joseph Allen (say 1760 GA - 1833 ElbertCoGA)

-

|--m. bef 1790 Agnes PATTERSON

-

|--2-James Allen (1808 ElbertCoGA - 1880 HartCoGA)

-

|   |--m. 1837 Mary A. HAYNES, ElbertCoGA

-

|   |--3-James Monroe Allen (1846 ElbertCoGA - 1921 AndersonCoSC)

-

|   |   |--m. 1867 Mary Elizabeth Frances SANDERS, HartCoGA

-

|   |   |--4-James Henry Edward Allen (1869 HartCoGA - 1943 HartCoGA)

-

|   |   |--m. 1910 Mary Lula OWENS, HartCoGA

-

|   |   |   |--5-Ira Wilson Allen 1914 HartCoGA - 1976 HartCoGA)

-

|   |   |   |   |--6-Ira Wilson Allen, Jr     - *** LouDean-07 ***     - (has the DYS447- mutation, also 570- and 464-)

-

invisible writing

-

1-Russell Allen of Franklin County, AL, born abt 1828 in GA

-

(SourcesOwen Allen)

-

The mutation CDYb- occurs either downstream or within a few generations upstream of Russell.

-

1-Russell Allen (abt 1828 GA - bef 1880 [FranklinCoAL?])

-

|--m. abt 1849 Millie

-

|--2-Peter Allen (abt 1857 - bef 1920)

-

|   |--m. abt 1880, Savannah

-

|   |--3-Morrison Allen (1881 AL - 1976)

-

|   |   |--m. Lula Elizabeth WHITE

-

|   |   |--4-Owen Tillman Allen (1909 ColbertCoAL - 1958)

-

|   |   |   |--5-Owen Allen    *** Owen-10 *** -    (has the CDYb- mutation)

-

-

- -

invisible writing

-

1-James Allen of Gonzales County, TX, born 1814 in NC

-

(SourcesCamilla Mitchell)

-

1-James Allen (1814 NC - 1868 GonzalesCoTX)

-

|--m1. 1835 Camilla Catherine Tores LILLY [MontgomeryCoNC?])

-

|--2-James Robberson Allen (1841 - 1842)

-

|--2-Robbert Alexander Allen (1843 - 1863 MadisonParishLA)—no known issue

-

|--m2. 1852 Mary Ann Key, MaconCoAL

-

|--2-Henry Clarence Allen (1852 AL -)

-

|--2-Augustus Key Allen (1858 -)

-

|--2-Marion Jackson Allen (1861 -)

-

|--2-Thomas Jefferson Allen (1865 GonzalesCoTX - 1926 SanAntonioTX)

-

|   |--m. 1898 Lillie Louisa BEACH, ElPasoTX

-

|   |--3-Marion Thomas Allen (1905 DimmitCoTX - 1986)

-

|   |   |--4-William Douglas Allen    *** Camilla-06 *** -    (no mutations—is the project RPH)

-

-

- -

invisible writing

-

1-Robert N. Nesbitt of Hunt County, TX, born 1831 in TN

-

(SourcesGeoff Nesbitt)

-

1-Robert N. Nesbitt (1831 TN - aft 1910)

-

|--m. abt 1854 Martha E. SHEPARD

-

|--2-William Allen Nesbitt (1860 TX - 1937)

-

|   |--m. 1862 Caddie VANNERSON, HopkinsCoTX

-

|   |--3-Robert Allen Nesbitt (1889 TX - 1934)

-

|   |   |--m. Robbie RIKE

-

|   |   |--4-Robert Allen Nesbitt, Jr. (1914 AdaOK - 1988 GalvestonTX)

-

|   |   |   |--5-Geoffrey Robert Nesbitt -    *** Geoff-11 *** -    (no mutations)

-

-

- -

invisible writing

-

1-Frank Harris of Marion County, Alabama, born say 1850

-

(SourcesSandra Hunt)

-

The mutation CDYB+ occurs either downstream or within a few generations upstream of Frank Harris.

-

1-Frank Harris (say 1850 AL - 1900 MarionCoAL)

-

|--m. abt 1875 Lucy M. [PATE?]

-

|--2-William Earl Harris (1883 AL - 1972)

-

|   |--m1. abt 1903 Neety PALMER

-

|   |--3-Willie Dalton Harris (abt 1904 MarionCoAL - 1992)

-

|   |   |--4-Hugh E. Harris -    *** Sandra-13 *** -    (has the CDYb+ mutation)

-

|   |--m2. abt 1909 Artie TICE

- -

invisible writing

-

1-Gideon A. Allen of Twiggs Co GA, and Bossier Parish Louisiana, born 1804 in NC

-

(SourcesCary Allen, whose web page has more on his Allen line)

- -

The mutation 464- occurs either downstream or within a few generations upstream of Gideon.

-

1-Gideon A. Allen (1804 NC - 1875 BossierParLA)

-

|--m. 1828 Mary Ann HORN, TwiggsCoGA

-

|--2-John G. Allen (1835 TwiggsCoGA - 1906 BossierParLA)

-

|   |--m. 1854 Emily L. SPURLIN, BossierParLA

-

|   |--3-John Claud Allen (1869 BossierParLA - 1927 BossierParLA)

-

|   |   |--m. 1896 Mary Louwellen ALLEN

-

|   |   |--4-Claud Tarkington Allen (1900 BossierParLA - 1990 GreenvilleCoSC)

-

|   |   |   |--m. 1921 Iona Olive ARNOLD, CaddoParLA

-

|   |   |   |--5-John Clyde Allen (1931 BossierParLA - 2003)

-

|   |   |   |   |--6-Cary Neal Allen -    *** Cary-02 *** -    (has a 464- mutation, to 11-13-14-15)

- -

-
-
- - -
-

-

- - -
- -
Navigating from here
-

-The menu buttons at top right takes you to other pages on this site, while the nav panel above targets other points on -thispage, or brings up other resources. If you find yourself lost, the browser BACK button will take you back to where you -were (some people also have a convenient BACK button on their mouse, right under their thumb). Or hitting the Home key of -your keyboard will take you back to the top of this page where you are now.

- - -
-
- - - - -
- - - - - - - - - - - diff --git a/example/thedieline.rss b/example/thedieline.rss deleted file mode 100644 index ea1cd14..0000000 --- a/example/thedieline.rss +++ /dev/null @@ -1,29 +0,0 @@ - - - TheDieline.com: Package Design - - - - tag:typepad.com,2003:weblog-611821 - 2011-06-15T11:03:00-07:00 - The World's #1 Package Design Website - TypePad - - Ginja d' Óbidos - - - tag:typepad.com,2003:post-6a00d8345250f069e20133f1a9824b970b - 2010-06-25T10:00:00-07:00 - 2010-06-24T22:16:07-07:00 - - The Dieline - - - - - -<font color="#000000" ><p><Img align="left" border="0" height="1" width="1" style="border:0;float:left;margin:0;" vspace="0" hspace="0" src="http://feeds.feedblitz.com/~/i/15124587/1ir2jk/thedieline"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-popup" onclick="window.open( this.href, &#39;_blank&#39;, &#39;width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0&#39; ); return false" style="display: inline;"><img alt="1" class="asset asset-image at-xid-6a00d8345250f069e20133f1a97caa970b " src="http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-550wi" style="width: 540px; " ></a> <br>Lisbon based <a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://"></a><a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.ntgj.org/" target="_blank">NT.GJ</a> designed this cherry liqueur concept which features actual cherries within...</div><p><a href="http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline">CLICK HERE to read the rest of the post...</a> <!-- _!fbztxtlnk!_ http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline -->&raquo;</p></font><p><div style="clear:both;"><em>(Want to see more packaging? Visit <a href="http://www.TheDieline.com">TheDieline.com</a>!)</em><p></div></p> -<div style="clear:both;"><a title="Tweet with Bit.ly" href="http://bit.ly/?v=3&ref=feedblitz&u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&t=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/bitly.jpg"></a> <a title="Add to Delicious" href="http://delicious.com/post?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/delicious.jpg"></a> <a title="Digg This" href="http://digg.com/submit?phase=2&url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/digg.jpg"></a> <a title="Add to FaceBook" href="http://facebook.com/share.php?u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&t=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/facebook.jpg"></a> <a title="Add to Google Bookmarks" href="http://google.com/bookmarks/mark?op=edit&bkmk=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/google.jpg"></a> <a title="Stumble This" href="http://stumbleupon.com/submit?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/stumble.jpg"></a> <a title="Tweet This" href="http://twitter.com/home?status=Ginja+d%26%2339%3b+Óbidos+http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/twitter.jpg"></a> <a title="Subscribe by RSS" href="http://feeds.feedblitz.com/thedieline"><img height="16" border="0" src="http://assets.feedblitz.com/images/rss.gif"></a> <a title="View Comments" href="http://www.thedieline.com/blog/2010/06/ginja-d-%C3%B3bidos.html"><img height=16 border=0 src="http://assets.feedblitz.com/images/comment.png"></a> </div> - - - diff --git a/example/yahoo-finance-html-with-errors.html b/example/yahoo-finance-html-with-errors.html deleted file mode 100644 index 046306d..0000000 --- a/example/yahoo-finance-html-with-errors.html +++ /dev/null @@ -1,1193 +0,0 @@ - - - - Yahoo! Finance - Business Finance, Stock Market, Quotes, News - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
Skip to search.
Make Y! My Homepage
 
  1. Drag the "Y!" and drop it onto the "Home" icon.
  2. Select "Yes" from the pop up window.
  3. Nothing, you're done.

If this didn't work for you see detailed instructions

Close this window

- -
- -
- - -
- -
- -
- - { "market" : {"NAME" : "", "ID" : "us", "TZ" : "", "TZOFFSET" : "-14400", "open" : "", "close" : "", "flags" : ""} ,"STREAMER_SERVER" : "http://streamerapi.finance.yahoo.com" ,"arrowAsChangeSign" : false ,"throttleInterval": "1000","localize":"0" ,"region": "US","lang" : "en-US","mu":"1" ,"up_arrow_icon" :"http://l.yimg.com/a/i/us/fi/03rd/up_g.gif" , "down_arrow_icon":"http://l.yimg.com/a/i/us/fi/03rd/down_r.gif" ,"up_color" :"green" , "down_color":"red","pass_market_id" : "0","market_status_yrb" :"YFT_MARKET_WILL_OPEN"} - - - - - -
- -
- - -
-
- -
- - -
- -
-
-
- -
Learn how to trade on Breakout from Y! Finance
- -
- - - -
- - - -
- - - - -
-
-
-
-

Facts Column

-
- -
- -
Dow12,188.69+145.13+1.21%
Chart for Dow
Nasdaq2,729.310.000.00%
Chart for Nasdaq
S&P 5001,296.670.000.00%
Chart for S&P 500
10 Yr Bond(%)3.0450%0.0000
Chart for 10 Yr Bond(%)
Oil93.65+0.76+0.82%
Chart for Oil
Gold1,508.10+8.40+0.56%
Chart for Gold
FTSE 1005,831.33+64.45+1.12%
Chart for FTSE 100
DAX7,274.16+103.73+1.45%
Chart for DAX
CAC 403,925.90+74.01+1.92%
Chart for CAC 40
Nikkei 2259,797.26+148.28+1.54%
Chart for Nikkei 225
Hang Seng22,061.18-0.600.00%
Chart for Hang Seng
Straits Times3,079.74+28.95+0.95%
Chart for Straits Times
{"s" : "","k" : "a00,a50,b00,b60,c10,g00,h00,l10,p20,t10,v00","o" : "CLQ11.NYM,GCN11.CMX,^DJI,^FCHI,^FTSE,^GDAXI,^GSPC,^HSI,^IXIC,^N225,^STI,^TNX","j" : "c10,l10,p20,t10"} - - -
-

Wed 6:32am ET- Briefing.com
[BRIEFING.COM] S&P futures vs fair value: +6.00. Nasdaq futures vs fair value: +8.00....

-» Read more -
- - -
- -
- - - - -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - -
Currency PairPriceChange
EUR/USD1.4419+ 0.0050
USD/JPY81.0650+ 0.0300
GBP/USD1.6024+ 0.0031
- -
- - -
-
Sponsored by:
- GFT - Trade the Biggest Market
Forex. Free Practice Account. -
- -
- -
- - - - - - - - - - - -
$1 U.S. Dollar (USD) =
Japanese Yen81.0650 ¥
Euro0.6934 €
- -
- - -
-
- -
- -
- - » View more investing ideas - - - - -
-

Market Movers

-Newsworthy

Determined based on increased frequency of appearance in news

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SPRD12.490.000.00% -Spreadtrum Communications, Inc.Chart for SPRD - - -
MON66.900.000.00% -Monsanto Company Common StockChart for MON - - -
LYG2.800.000.00% -Lloyds Banking Group Plc AmericChart for LYG - - -
EK3.440.000.00% -Eastman Kodak Company Common StChart for EK - - -
GIS37.210.000.00% -General Mills, Inc. Common StocChart for GIS - - -
-More Market Movers -
{"s" : "ek,gis,lyg,mon,sprd","k" : "a00,a50,b00,b60,c10,g00,h00,l10,p20,t10,v00","o" : "AA,AAPL,ADXS.OB,ARAY,CMG,FIZZ,INTC,MCD,NOK,WNI","j" : "c10,l10,p20,t10"} - - -
-
-
- -
-

Community Sentiment

- -

Powered by Collective Intellect, Inc.

-
- - -
-
-

News and Opinion Column

-
- -
-

Top Stories

-
-Wal-Mart Stores cutting gas prices for 3 months- AP

Wal-Mart Stores Inc. is cutting gas prices by 10 cents a gallon for three months. The world's biggest retailer says customers visiting participating Murphy USA and Walmart gas stations from Wednesday through Sept. 30 will receive the discount on all fuel, gas and diesel purchases when they use a reloadable Walmart gift card, Walmart MoneyCard or a Walmart credit card.

- -
- - - -
- -
- -
-

Focus on Lifelong Investing

- brought to you by Fidelity -
-
- - - » View More Stories... -
- - - -
- - - - - - -
- -
- - - » View More -
- - -
- - - -
-
-

Breakout

- -
-
- - - » View More -
- - -
- - - - -
-
-
- -
- -
- - - -
- -
- - -
- -
- - - » View all columnists -
- - -
- - - - -
-
-
- - - -
-
- -
-

Sponsored Links

-
-
Hot Stock Pick - GTSO
-
Rare Earth Minerals used in touch screens. China. Invest Now.
-
www.RareEarthExporters.com
-
-
-
2011 Market Crash?
-
Analyst Dennis Slothower foresaw 2008 collapse; issues new warning
-
www.stealthstocksonline.com
-
-
ING DIRECT Investing
-
No Acct. Minimum. Free Mobile App. $50 Account Bonus. Learn More!
-
www.ShareBuilder.com/ingdirect
-
-
-
100% Accurate Stock Picks
-
Electrifying Stock Pick Accuracy. Only 5 Free spots left. Sign Up Now!
-
www.PerfectPennyStocks.com
-
-
Stock Recommendations
-
Buy/Hold/Sell and target prices on over 5,500 stocks every day
-
www.ValuEngine.com
-
-
-
Where's the Dow headed?
-
The answer may surprise you. Find out now with Chart of the Day.
-
www.chartoftheday.com
-
-
- - -
-
-
-

Videos, My Quotes, Rates

-
- -
AdChoices
-
- -
- - - - -
- - - - -
-
- -

Quotes

Your most recently viewed tickers will automatically show up here if you type a ticker in the Get Quotes box on the top of the page.
{"s" : "GE,MCD,T,YHOO,^DJI,^IXIC,^SPC,^TYX","k" : "a00,a50,b00,b60,c10,g00,h00,l10,p20,t10,v00","o" : "","j" : ""} - - - -
- - - - -
- -

Rates

See today's average mortgage rates across the country. Source: Bankrate.com

Loan TypeTodayLast Week
30 Year Fixed4.50%4.51%
15 Year Fixed3.67%3.69%
1 Year ARM3.18%3.14%
30 Year Fixed Jumbo5.02%4.98%
5/1 ARM3.06%3.05%
3/1 ARM3.26%3.33%
» View rates in your area

See today's average home equity rates across the country. Source: Bankrate.com

Loan TypeTodayLast Week
$30K Home Equity Loan5.95%5.99%
$50K Home Equity Loan5.73%5.79%
$75K Home Equity Loan5.71%5.76%
$30K HELOC4.77%4.75%
$50K HELOC4.42%4.43%
$75K HELOC4.40%4.40%
» View rates in your area

See today's average savings rates across the country. Source: Bankrate.com

Savings TypeTodayLast Week
6 month CD0.54%0.54%
1 year CD0.89%0.89%
3 year CD1.31%1.31%
MMA0.62%0.62%
$10K MMA 0.71%0.71%
$25K MMA0.87%0.87%
» View rates in your area

See today's average auto rates across the country. Source: Bankrate.com

Auto TypeTodayLast Week
36 Month New Car Loan3.66%3.91%
48 Month New Car Loan3.77%3.99%
60 Month New Car Loan3.81%4.02%
72 Month New Car Loan3.24%3.37%
36 Month Used Car Loan4.66%4.68%
48 Month Used Car Loan4.73%4.56%
» View rates in your area

See today's average credit card rates across the country. Source: CreditCards.com

Card TypeTodayLast Week
Low Interest Credit Cards10.73%10.73%
Balance Transfer Credit Cards12.78%12.76%
Business Credit Cards13.07%13.07%
Student Credit Cards13.77%13.77%
Cash Back Credit Cards13.90%13.87%
Airline Credit Cards14.31%14.24%
» View more rates
- - - - - -
- - - - -
-
Trending Now
-

Trending Now

- -
- - - -
-
- -
-
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/inc/Devel/CheckLib.pm b/inc/Devel/CheckLib.pm new file mode 100644 index 0000000..77ecb6a --- /dev/null +++ b/inc/Devel/CheckLib.pm @@ -0,0 +1,493 @@ +# $Id: CheckLib.pm,v 1.25 2008/10/27 12:16:23 drhyde Exp $ + +package # +Devel::CheckLib; + +use 5.00405; #postfix foreach +use strict; +use warnings; + +use vars qw($VERSION @ISA @EXPORT); +$VERSION = '1.01'; +use Config qw(%Config); +use Text::ParseWords 'quotewords'; + +use File::Spec; +use File::Temp; + +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(assert_lib check_lib_or_exit check_lib); + +# localising prevents the warningness leaking out of this module +local $^W = 1; # use warnings is a 5.6-ism + +_findcc(); # bomb out early if there's no compiler + +=head1 NAME + +Devel::CheckLib - check that a library is available + +=head1 DESCRIPTION + +Devel::CheckLib is a perl module that checks whether a particular C +library and its headers are available. + +=head1 SYNOPSIS + + use Devel::CheckLib; + + check_lib_or_exit( lib => 'jpeg', header => 'jpeglib.h' ); + check_lib_or_exit( lib => [ 'iconv', 'jpeg' ] ); + + # or prompt for path to library and then do this: + check_lib_or_exit( lib => 'jpeg', libpath => $additional_path ); + +=head1 USING IT IN Makefile.PL or Build.PL + +If you want to use this from Makefile.PL or Build.PL, do +not simply copy the module into your distribution as this may cause +problems when PAUSE and search.cpan.org index the distro. Instead, use +the use-devel-checklib script. + +=head1 HOW IT WORKS + +You pass named parameters to a function, describing to it how to build +and link to the libraries. + +It works by trying to compile some code - which defaults to this: + + int main(void) { return 0; } + +and linking it to the specified libraries. If something pops out the end +which looks executable, it gets executed, and if main() returns 0 we know +that it worked. That tiny program is +built once for each library that you specify, and (without linking) once +for each header file. + +If you want to check for the presence of particular functions in a +library, or even that those functions return particular results, then +you can pass your own function body for main() thus: + + check_lib_or_exit( + function => 'foo();if(libversion() > 5) return 0; else return 1;' + incpath => ... + libpath => ... + lib => ... + header => ... + ); + +In that case, it will fail to build if either foo() or libversion() don't +exist, and main() will return the wrong value if libversion()'s return +value isn't what you want. + +=head1 FUNCTIONS + +All of these take the same named parameters and are exported by default. +To avoid exporting them, C. + +=head2 assert_lib + +This takes several named parameters, all of which are optional, and dies +with an error message if any of the libraries listed can +not be found. B: dying in a Makefile.PL or Build.PL may provoke +a 'FAIL' report from CPAN Testers' automated smoke testers. Use +C instead. + +The named parameters are: + +=over + +=item lib + +Must be either a string with the name of a single +library or a reference to an array of strings of library names. Depending +on the compiler found, library names will be fed to the compiler either as +C<-l> arguments or as C<.lib> file names. (E.g. C<-ljpeg> or C) + +=item libpath + +a string or an array of strings +representing additional paths to search for libraries. + +=item LIBS + +a C-style space-seperated list of +libraries (each preceded by '-l') and directories (preceded by '-L'). + +This can also be supplied on the command-line. + +=item debug + +If true - emit information during processing that can be used for +debugging. + +=back + +And libraries are no use without header files, so ... + +=over + +=item header + +Must be either a string with the name of a single +header file or a reference to an array of strings of header file names. + +=item incpath + +a string or an array of strings +representing additional paths to search for headers. + +=item INC + +a C-style space-seperated list of +incpaths, each preceded by '-I'. + +This can also be supplied on the command-line. + +=back + +=head2 check_lib_or_exit + +This behaves exactly the same as C except that instead of +dieing, it warns (with exactly the same error message) and exits. +This is intended for use in Makefile.PL / Build.PL +when you might want to prompt the user for various paths and +things before checking that what they've told you is sane. + +If any library or header is missing, it exits with an exit value of 0 to avoid +causing a CPAN Testers 'FAIL' report. CPAN Testers should ignore this +result -- which is what you want if an external library dependency is not +available. + +=head2 check_lib + +This behaves exactly the same as C except that it is silent, +returning false instead of dieing, or true otherwise. + +=cut + +sub check_lib_or_exit { + eval 'assert_lib(@_)'; + if($@) { + warn $@; + exit; + } +} + +sub check_lib { + eval 'assert_lib(@_)'; + return $@ ? 0 : 1; +} + +sub assert_lib { + my %args = @_; + my (@libs, @libpaths, @headers, @incpaths); + + # FIXME: these four just SCREAM "refactor" at me + @libs = (ref($args{lib}) ? @{$args{lib}} : $args{lib}) + if $args{lib}; + @libpaths = (ref($args{libpath}) ? @{$args{libpath}} : $args{libpath}) + if $args{libpath}; + @headers = (ref($args{header}) ? @{$args{header}} : $args{header}) + if $args{header}; + @incpaths = (ref($args{incpath}) ? @{$args{incpath}} : $args{incpath}) + if $args{incpath}; + + # work-a-like for Makefile.PL's LIBS and INC arguments + # if given as command-line argument, append to %args + for my $arg (@ARGV) { + for my $mm_attr_key (qw(LIBS INC)) { + if (my ($mm_attr_value) = $arg =~ /\A $mm_attr_key = (.*)/x) { + # it is tempting to put some \s* into the expression, but the + # MM command-line parser only accepts LIBS etc. followed by =, + # so we should not be any more lenient with whitespace than that + $args{$mm_attr_key} .= " $mm_attr_value"; + } + } + } + + # using special form of split to trim whitespace + if(defined($args{LIBS})) { + foreach my $arg (split(' ', $args{LIBS})) { + die("LIBS argument badly-formed: $arg\n") unless($arg =~ /^-[lLR]/); + push @{$arg =~ /^-l/ ? \@libs : \@libpaths}, substr($arg, 2); + } + } + if(defined($args{INC})) { + foreach my $arg (split(' ', $args{INC})) { + die("INC argument badly-formed: $arg\n") unless($arg =~ /^-I/); + push @incpaths, substr($arg, 2); + } + } + + my ($cc, $ld) = _findcc(); + my @missing; + my @wrongresult; + my @use_headers; + + # first figure out which headers we can't find ... + for my $header (@headers) { + push @use_headers, $header; + my($ch, $cfile) = File::Temp::tempfile( + 'assertlibXXXXXXXX', SUFFIX => '.c' + ); + my $ofile = $cfile; + $ofile =~ s/\.c$/$Config{_o}/; + print $ch qq{#include <$_>\n} for @use_headers; + print $ch qq{int main(void) { return 0; }\n}; + close($ch); + my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; + my @sys_cmd; + # FIXME: re-factor - almost identical code later when linking + if ( $Config{cc} eq 'cl' ) { # Microsoft compiler + require Win32; + @sys_cmd = ( + @$cc, + $cfile, + "/Fe$exefile", + (map { '/I'.Win32::GetShortPathName($_) } @incpaths), + "/link", + @$ld + ); + } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland + @sys_cmd = ( + @$cc, + @$ld, + (map { "-I$_" } @incpaths), + "-o$exefile", + $cfile + ); + } else { # Unix-ish: gcc, Sun, AIX (gcc, cc), ... + @sys_cmd = ( + @$cc, + @$ld, + $cfile, + (map { "-I$_" } @incpaths), + "-o", "$exefile" + ); + } + warn "# @sys_cmd\n" if $args{debug}; + my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); + push @missing, $header if $rv != 0 || ! -x $exefile; + _cleanup_exe($exefile); + unlink $ofile if -e $ofile; + unlink $cfile; + } + + # now do each library in turn with headers + my($ch, $cfile) = File::Temp::tempfile( + 'assertlibXXXXXXXX', SUFFIX => '.c' + ); + my $ofile = $cfile; + $ofile =~ s/\.c$/$Config{_o}/; + print $ch qq{#include <$_>\n} foreach (@headers); + print $ch "int main(void) { ".($args{function} || 'return 0;')." }\n"; + close($ch); + for my $lib ( @libs ) { + my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; + my @sys_cmd; + if ( $Config{cc} eq 'cl' ) { # Microsoft compiler + require Win32; + my @libpath = map { + q{/libpath:} . Win32::GetShortPathName($_) + } @libpaths; + # this is horribly sensitive to the order of arguments + @sys_cmd = ( + @$cc, + $cfile, + "${lib}.lib", + "/Fe$exefile", + (map { '/I'.Win32::GetShortPathName($_) } @incpaths), + "/link", + @$ld, + (map {'/libpath:'.Win32::GetShortPathName($_)} @libpaths), + ); + } elsif($Config{cc} eq 'CC/DECC') { # VMS + } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland + @sys_cmd = ( + @$cc, + @$ld, + "-o$exefile", + (map { "-I$_" } @incpaths), + (map { "-L$_" } @libpaths), + "-l$lib", + $cfile); + } else { # Unix-ish + # gcc, Sun, AIX (gcc, cc) + @sys_cmd = ( + @$cc, + @$ld, + $cfile, + "-o", "$exefile", + (map { "-I$_" } @incpaths), + (map { "-L$_" } @libpaths), + "-l$lib", + ); + } + warn "# @sys_cmd\n" if $args{debug}; + my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); + push @missing, $lib if $rv != 0 || ! -x $exefile; + my $absexefile = File::Spec->rel2abs($exefile); + $absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/; + push @wrongresult, $lib if $rv == 0 && -x $exefile && system($absexefile) != 0; + unlink $ofile if -e $ofile; + _cleanup_exe($exefile); + } + unlink $cfile; + + my $miss_string = join( q{, }, map { qq{'$_'} } @missing ); + die("Can't link/include C library $miss_string, aborting.\n") if @missing; + my $wrong_string = join( q{, }, map { qq{'$_'} } @wrongresult); + die("wrong result: $wrong_string\n") if @wrongresult; +} + +sub _cleanup_exe { + my ($exefile) = @_; + my $ofile = $exefile; + $ofile =~ s/$Config{_exe}$/$Config{_o}/; + unlink $exefile if -f $exefile; + unlink $ofile if -f $ofile; + unlink "$exefile\.manifest" if -f "$exefile\.manifest"; + if ( $Config{cc} eq 'cl' ) { + # MSVC also creates foo.ilk and foo.pdb + my $ilkfile = $exefile; + $ilkfile =~ s/$Config{_exe}$/.ilk/; + my $pdbfile = $exefile; + $pdbfile =~ s/$Config{_exe}$/.pdb/; + unlink $ilkfile if -f $ilkfile; + unlink $pdbfile if -f $pdbfile; + } + return +} + +# return ($cc, $ld) +# where $cc is an array ref of compiler name, compiler flags +# where $ld is an array ref of linker flags +sub _findcc { + # Need to use $keep=1 to work with MSWin32 backslashes and quotes + my $Config_ccflags = $Config{ccflags}; # use copy so ASPerl will compile + my @Config_ldflags = (); + for my $config_val ( @Config{qw(ldflags perllibs)} ){ + push @Config_ldflags, $config_val if ( $config_val =~ /\S/ ); + } + my @ccflags = grep { length } quotewords('\s+', 1, $Config_ccflags||''); + my @ldflags = grep { length } quotewords('\s+', 1, @Config_ldflags); + my @paths = split(/$Config{path_sep}/, $ENV{PATH}); + my @cc = split(/\s+/, $Config{cc}); + return ( [ @cc, @ccflags ], \@ldflags ) if -x $cc[0]; + foreach my $path (@paths) { + my $compiler = File::Spec->catfile($path, $cc[0]) . $Config{_exe}; + return ([ $compiler, @cc[1 .. $#cc], @ccflags ], \@ldflags) + if -x $compiler; + } + die("Couldn't find your C compiler\n"); +} + +# code substantially borrowed from IPC::Run3 +sub _quiet_system { + my (@cmd) = @_; + + # save handles + local *STDOUT_SAVE; + local *STDERR_SAVE; + open STDOUT_SAVE, ">&STDOUT" or die "CheckLib: $! saving STDOUT"; + open STDERR_SAVE, ">&STDERR" or die "CheckLib: $! saving STDERR"; + + # redirect to nowhere + local *DEV_NULL; + open DEV_NULL, ">" . File::Spec->devnull + or die "CheckLib: $! opening handle to null device"; + open STDOUT, ">&" . fileno DEV_NULL + or die "CheckLib: $! redirecting STDOUT to null handle"; + open STDERR, ">&" . fileno DEV_NULL + or die "CheckLib: $! redirecting STDERR to null handle"; + + # run system command + my $rv = system(@cmd); + + # restore handles + open STDOUT, ">&" . fileno STDOUT_SAVE + or die "CheckLib: $! restoring STDOUT handle"; + open STDERR, ">&" . fileno STDERR_SAVE + or die "CheckLib: $! restoring STDERR handle"; + + return $rv; +} + +=head1 PLATFORMS SUPPORTED + +You must have a C compiler installed. We check for C<$Config{cc}>, +both literally as it is in Config.pm and also in the $PATH. + +It has been tested with varying degrees on rigourousness on: + +=over + +=item gcc (on Linux, *BSD, Mac OS X, Solaris, Cygwin) + +=item Sun's compiler tools on Solaris + +=item IBM's tools on AIX + +=item SGI's tools on Irix 6.5 + +=item Microsoft's tools on Windows + +=item MinGW on Windows (with Strawberry Perl) + +=item Borland's tools on Windows + +=item QNX + +=back + +=head1 WARNINGS, BUGS and FEEDBACK + +This is a very early release intended primarily for feedback from +people who have discussed it. The interface may change and it has +not been adequately tested. + +Feedback is most welcome, including constructive criticism. +Bug reports should be made using L or by email. + +When submitting a bug report, please include the output from running: + + perl -V + perl -MDevel::CheckLib -e0 + +=head1 SEE ALSO + +L + +L + +=head1 AUTHORS + +David Cantrell Edavid@cantrell.org.ukE + +David Golden Edagolden@cpan.orgE + +Yasuhiro Matsumoto Emattn@cpan.orgE + +Thanks to the cpan-testers-discuss mailing list for prompting us to write it +in the first place; + +to Chris Williams for help with Borland support; + +to Tony Cook for help with Microsoft compiler command-line options + +=head1 COPYRIGHT and LICENCE + +Copyright 2007 David Cantrell. Portions copyright 2007 David Golden. + +This module is free-as-in-speech software, and may be used, distributed, +and modified under the same conditions as perl itself. + +=head1 CONSPIRACY + +This module is also free-as-in-mason software. + +=cut + +1; diff --git a/lib/XML/LibXML/Attr.pod b/lib/XML/LibXML/Attr.pod index fa6a5cd..de5b0a4 100644 --- a/lib/XML/LibXML/Attr.pod +++ b/lib/XML/LibXML/Attr.pod @@ -121,7 +121,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/AttributeHash.pm b/lib/XML/LibXML/AttributeHash.pm index c83f0dc..b880fcb 100644 --- a/lib/XML/LibXML/AttributeHash.pm +++ b/lib/XML/LibXML/AttributeHash.pm @@ -7,7 +7,7 @@ use Tie::Hash; our @ISA = qw/Tie::Hash/; use vars qw($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE BEGIN { diff --git a/lib/XML/LibXML/Boolean.pm b/lib/XML/LibXML/Boolean.pm index faa53b7..420a407 100644 --- a/lib/XML/LibXML/Boolean.pm +++ b/lib/XML/LibXML/Boolean.pm @@ -16,7 +16,7 @@ use warnings; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use overload '""' => \&value, diff --git a/lib/XML/LibXML/CDATASection.pod b/lib/XML/LibXML/CDATASection.pod index 1113e56..710936e 100644 --- a/lib/XML/LibXML/CDATASection.pod +++ b/lib/XML/LibXML/CDATASection.pod @@ -45,7 +45,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Comment.pod b/lib/XML/LibXML/Comment.pod index aaacdce..f6c933c 100644 --- a/lib/XML/LibXML/Comment.pod +++ b/lib/XML/LibXML/Comment.pod @@ -46,7 +46,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Common.pm b/lib/XML/LibXML/Common.pm index eb7681c..e8d7e4f 100644 --- a/lib/XML/LibXML/Common.pm +++ b/lib/XML/LibXML/Common.pm @@ -19,11 +19,12 @@ use strict; use warnings; require Exporter; +require DynaLoader; use vars qw( @ISA $VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS); @ISA = qw(Exporter); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use XML::LibXML qw(:libxml); diff --git a/lib/XML/LibXML/Common.pod b/lib/XML/LibXML/Common.pod index 9423109..5519cfd 100644 --- a/lib/XML/LibXML/Common.pod +++ b/lib/XML/LibXML/Common.pod @@ -116,7 +116,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/DOM.pod b/lib/XML/LibXML/DOM.pod index d01e75a..bb0afae 100644 --- a/lib/XML/LibXML/DOM.pod +++ b/lib/XML/LibXML/DOM.pod @@ -129,7 +129,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Devel.pm b/lib/XML/LibXML/Devel.pm index 8f13912..d4dfe61 100644 --- a/lib/XML/LibXML/Devel.pm +++ b/lib/XML/LibXML/Devel.pm @@ -12,7 +12,7 @@ use warnings; use XML::LibXML; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use 5.008_000; diff --git a/lib/XML/LibXML/Document.pod b/lib/XML/LibXML/Document.pod index 2cdc576..2a33360 100644 --- a/lib/XML/LibXML/Document.pod +++ b/lib/XML/LibXML/Document.pod @@ -683,7 +683,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/DocumentFragment.pod b/lib/XML/LibXML/DocumentFragment.pod index 61e741c..b86d754 100644 --- a/lib/XML/LibXML/DocumentFragment.pod +++ b/lib/XML/LibXML/DocumentFragment.pod @@ -27,7 +27,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Dtd.pod b/lib/XML/LibXML/Dtd.pod index 294cb17..8cbf46a 100644 --- a/lib/XML/LibXML/Dtd.pod +++ b/lib/XML/LibXML/Dtd.pod @@ -89,7 +89,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Element.pod b/lib/XML/LibXML/Element.pod index f6f0b74..b8912b7 100644 --- a/lib/XML/LibXML/Element.pod +++ b/lib/XML/LibXML/Element.pod @@ -382,7 +382,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/ErrNo.pm b/lib/XML/LibXML/ErrNo.pm index 0fa6308..12563b6 100644 --- a/lib/XML/LibXML/ErrNo.pm +++ b/lib/XML/LibXML/ErrNo.pm @@ -14,7 +14,7 @@ use strict; use warnings; use vars qw($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use constant ERR_OK => 0; use constant ERR_INTERNAL_ERROR => 1; diff --git a/lib/XML/LibXML/ErrNo.pod b/lib/XML/LibXML/ErrNo.pod index 4b1b59e..d0a3263 100644 --- a/lib/XML/LibXML/ErrNo.pod +++ b/lib/XML/LibXML/ErrNo.pod @@ -17,7 +17,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Error.pm b/lib/XML/LibXML/Error.pm index 9855eaf..18704fd 100644 --- a/lib/XML/LibXML/Error.pm +++ b/lib/XML/LibXML/Error.pm @@ -17,6 +17,7 @@ no warnings 'recursion'; use Encode (); use vars qw(@error_domains $VERSION $WARNINGS); +use Carp; use overload '""' => \&as_string, 'eq' => sub { @@ -28,7 +29,7 @@ use overload fallback => 1; $WARNINGS = 0; # 0: suppress, 1: report via warn, 2: report via die -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use constant XML_ERR_NONE => 0; use constant XML_ERR_WARNING => 1; # A simple warning @@ -242,7 +243,7 @@ sub as_string { # warnings. This has the pleasing benefit of making the test suite # run warning-free. no warnings 'utf8'; - my $context = Encode::encode('UTF-8', $self->{context}); + my $context = Encode::encode('utf8', $self->{context}, Encode::FB_DEFAULT); $msg.=$context."\n"; $context = substr($context,0,$self->{column}); $context=~s/[^\t]/ /g; @@ -253,7 +254,7 @@ sub as_string { sub dump { my ($self)=@_; - require Data::Dumper; + use Data::Dumper; return Data::Dumper->new([$self],['error'])->Dump; } diff --git a/lib/XML/LibXML/Error.pod b/lib/XML/LibXML/Error.pod index b8915e3..132910e 100644 --- a/lib/XML/LibXML/Error.pod +++ b/lib/XML/LibXML/Error.pod @@ -244,7 +244,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/InputCallback.pod b/lib/XML/LibXML/InputCallback.pod index 3cfcd15..6e2d937 100644 --- a/lib/XML/LibXML/InputCallback.pod +++ b/lib/XML/LibXML/InputCallback.pod @@ -280,7 +280,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Literal.pm b/lib/XML/LibXML/Literal.pm index 1bc9fa1..6550354 100644 --- a/lib/XML/LibXML/Literal.pm +++ b/lib/XML/LibXML/Literal.pm @@ -16,7 +16,7 @@ use strict; use warnings; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use overload '""' => \&value, diff --git a/lib/XML/LibXML/Namespace.pod b/lib/XML/LibXML/Namespace.pod index 85d5598..f89518a 100644 --- a/lib/XML/LibXML/Namespace.pod +++ b/lib/XML/LibXML/Namespace.pod @@ -141,7 +141,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Node.pod b/lib/XML/LibXML/Node.pod index 6f8e9a5..cb03988 100644 --- a/lib/XML/LibXML/Node.pod +++ b/lib/XML/LibXML/Node.pod @@ -174,7 +174,7 @@ stripped from the context it is and inserted into a (hidden) document-fragment. $childnode = $node->removeChild( $childnode ); -This will unbind the Child Node from its parent C<<<<<< $node >>>>>>. The function returns the unbound node. If C<<<<<< $childnode >>>>>> is not a child of the given Node the function will fail. +This will unbind the Child Node from its parent C<<<<<< $node >>>>>>. The function returns the unbound node. If C<<<<<< oldNode >>>>>> is not a child of the given Node the function will fail. =item replaceChild @@ -763,7 +763,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/NodeList.pm b/lib/XML/LibXML/NodeList.pm index ca748d9..6d0845b 100644 --- a/lib/XML/LibXML/NodeList.pm +++ b/lib/XML/LibXML/NodeList.pm @@ -17,7 +17,7 @@ use XML::LibXML::Literal; use XML::LibXML::Number; use vars qw($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use overload '""' => \&to_literal, diff --git a/lib/XML/LibXML/Number.pm b/lib/XML/LibXML/Number.pm index cddd4c0..1a27821 100644 --- a/lib/XML/LibXML/Number.pm +++ b/lib/XML/LibXML/Number.pm @@ -14,7 +14,7 @@ use strict; use warnings; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use overload '""' => \&value, diff --git a/lib/XML/LibXML/PI.pod b/lib/XML/LibXML/PI.pod index 99323ff..644d2dc 100644 --- a/lib/XML/LibXML/PI.pod +++ b/lib/XML/LibXML/PI.pod @@ -74,7 +74,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Parser.pod b/lib/XML/LibXML/Parser.pod index 034395d..9f9478f 100644 --- a/lib/XML/LibXML/Parser.pod +++ b/lib/XML/LibXML/Parser.pod @@ -174,17 +174,13 @@ eval{} block This function is available since XML::LibXML 1.70. It provides easy to use -interface to the XML parser that parses given file (or non-HTTPS URL), string, -or input stream to a DOM tree. The arguments can be passed in a HASH reference -or as name => value pairs. The function can be called as a class method or an -object method. In both cases it internally creates a new parser instance -passing the specified parser options; if called as an object method, it clones -the original parser (preserving its settings) and additionally applies the -specified options to the new parser. See the constructor C<<<<<< new >>>>>> and L<<<<<< Parser Options >>>>>> for more information. - -Note that, due to a limitation in the underlying libxml2 library, this call -does not recognize HTTPS-based URLs. (It will treat an HTTPS URL as a filename, -likely throwing a "No such file or directory" exception.) +interface to the XML parser that parses given file (or URL), string, or input +stream to a DOM tree. The arguments can be passed in a HASH reference or as +name => value pairs. The function can be called as a class method or an object +method. In both cases it internally creates a new parser instance passing the +specified parser options; if called as an object method, it clones the original +parser (preserving its settings) and additionally applies the specified options +to the new parser. See the constructor C<<<<<< new >>>>>> and L<<<<<< Parser Options >>>>>> for more information. =item load_html @@ -273,8 +269,8 @@ This is an alias to process_xincludes, but through a JAVA like function name. $doc = $parser->parse_file( $xmlfilename ); This function parses an XML document from a file or network; $xmlfilename can -be either a filename or a (non-HTTPS) URL. Note that for parsing files, this -function is the fastest choice, about 6-8 times faster then parse_fh(). +be either a filename or an URL. Note that for parsing files, this function is +the fastest choice, about 6-8 times faster then parse_fh(). =item parse_fh @@ -312,7 +308,7 @@ function. $doc = $parser->parse_html_file( $htmlfile, \%opts ); Similar to parse_file() but parses HTML (strict) documents; $htmlfile can be -filename or (non-HTTPS) URL. +filename or URL. An optional second argument can be used to pass some options to the HTML parser as a HASH reference. See options labeled with HTML in L<<<<<< Parser Options >>>>>>. @@ -988,7 +984,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Pattern.pod b/lib/XML/LibXML/Pattern.pod index 3cf4d72..95309ab 100644 --- a/lib/XML/LibXML/Pattern.pod +++ b/lib/XML/LibXML/Pattern.pod @@ -94,7 +94,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Reader.pm b/lib/XML/LibXML/Reader.pm index 40f093c..fa0ad06 100644 --- a/lib/XML/LibXML/Reader.pm +++ b/lib/XML/LibXML/Reader.pm @@ -14,7 +14,7 @@ use strict; use warnings; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use 5.008_000; diff --git a/lib/XML/LibXML/Reader.pod b/lib/XML/LibXML/Reader.pod index 094e852..268396a 100644 --- a/lib/XML/LibXML/Reader.pod +++ b/lib/XML/LibXML/Reader.pod @@ -90,7 +90,7 @@ where ... are (optional) reader options described below in L<<<<<< Reader option =item location -Read XML from a local file or (non-HTTPS) URL. +Read XML from a local file or URL. =item string @@ -129,14 +129,14 @@ override document encoding. =item RelaxNG => $rng_schema -can be used to pass either a L<<<<<< XML::LibXML::RelaxNG >>>>>> object or a filename or (non-HTTPS) URL of a RelaxNG schema to the constructor. -The schema is then used to validate the document as it is processed. +can be used to pass either a L<<<<<< XML::LibXML::RelaxNG >>>>>> object or a filename or URL of a RelaxNG schema to the constructor. The schema +is then used to validate the document as it is processed. =item Schema => $xsd_schema -can be used to pass either a L<<<<<< XML::LibXML::Schema >>>>>> object or a filename or (non-HTTPS) URL of a W3C XSD schema to the constructor. -The schema is then used to validate the document as it is processed. +can be used to pass either a L<<<<<< XML::LibXML::Schema >>>>>> object or a filename or URL of a W3C XSD schema to the constructor. The schema +is then used to validate the document as it is processed. =item ... @@ -657,7 +657,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/RegExp.pod b/lib/XML/LibXML/RegExp.pod index 0ef9b6e..41eec28 100644 --- a/lib/XML/LibXML/RegExp.pod +++ b/lib/XML/LibXML/RegExp.pod @@ -58,7 +58,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/RelaxNG.pod b/lib/XML/LibXML/RelaxNG.pod index a05d583..c7165b5 100644 --- a/lib/XML/LibXML/RelaxNG.pod +++ b/lib/XML/LibXML/RelaxNG.pod @@ -9,9 +9,9 @@ XML::LibXML::RelaxNG - RelaxNG Schema Validation use XML::LibXML; $doc = XML::LibXML->new->parse_file($url); - $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 ); - $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 ); - $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 ); + $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url ); + $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring ); + $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc ); eval { $rngschema->validate( $doc ); }; =head1 DESCRIPTION @@ -27,20 +27,17 @@ validation. =item new - $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 ); - $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 ); - $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 ); + $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url ); + $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring ); + $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc ); -The constructor of XML::LibXML::RelaxNG needs to be called with list of -parameters. At least location, string or DOM parameter is required to specify -source of schema. Optional parameter no_network set to 1 cause that parser -would not access network and optional parameter recover set 1 cause that parser -would not call die() on errors. - -It is important, that each schema only have a single source. +The constructor of XML::LibXML::RelaxNG may get called with either one of three +parameters. The parameter tells the class from which source it should generate +a validation schema. It is important, that each schema only have a single +source. The location parameter allows one to parse a schema from the filesystem or a -(non-HTTPS) URL. +URL. The string parameter will parse the schema from the given XML string. @@ -73,7 +70,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/SAX.pm b/lib/XML/LibXML/SAX.pm index 681499e..bd4f26f 100644 --- a/lib/XML/LibXML/SAX.pm +++ b/lib/XML/LibXML/SAX.pm @@ -14,7 +14,7 @@ use warnings; use vars qw($VERSION @ISA); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE use XML::LibXML; use XML::SAX::Base; @@ -47,16 +47,9 @@ sub _parse_characterstream { croak( "not implemented yet" ); } -# See: -# https://rt.cpan.org/Public/Bug/Display.html?id=132759 -sub _calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc -{ - return XML::LibXML->new( expand_entities => 1, ); -} - sub _parse_bytestream { my ( $self, $fh ) = @_; - $self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser}; + $self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser}; $self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_fh; $self->{ParserOptions}{ParseFuncParam} = $fh; $self->_parse; @@ -65,7 +58,7 @@ sub _parse_bytestream { sub _parse_string { my ( $self, $string ) = @_; - $self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser}; + $self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser}; $self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_string; $self->{ParserOptions}{ParseFuncParam} = $string; $self->_parse; @@ -74,7 +67,7 @@ sub _parse_string { sub _parse_systemid { my $self = shift; - $self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser}; + $self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser}; $self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_file; $self->{ParserOptions}{ParseFuncParam} = shift; $self->_parse; @@ -83,7 +76,7 @@ sub _parse_systemid { sub parse_chunk { my ( $self, $chunk ) = @_; - $self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser}; + $self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser}; $self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_xml_chunk; $self->{ParserOptions}{LibParser}->{IS_FILTER}=1; # a hack to prevent parse_xml_chunk from issuing end_document $self->{ParserOptions}{ParseFuncParam} = $chunk; diff --git a/lib/XML/LibXML/SAX.pod b/lib/XML/LibXML/SAX.pod index dc736f7..f990347 100644 --- a/lib/XML/LibXML/SAX.pod +++ b/lib/XML/LibXML/SAX.pod @@ -47,7 +47,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/SAX/Builder.pm b/lib/XML/LibXML/SAX/Builder.pm index c16ee87..0c168f6 100644 --- a/lib/XML/LibXML/SAX/Builder.pm +++ b/lib/XML/LibXML/SAX/Builder.pm @@ -21,7 +21,7 @@ sub CLONE_SKIP { return $XML::LibXML::__threads_shared ? 0 : 1; } -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE sub new { my $class = shift; diff --git a/lib/XML/LibXML/SAX/Builder.pod b/lib/XML/LibXML/SAX/Builder.pod index c199c2f..6972671 100644 --- a/lib/XML/LibXML/SAX/Builder.pod +++ b/lib/XML/LibXML/SAX/Builder.pod @@ -38,7 +38,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/SAX/Generator.pm b/lib/XML/LibXML/SAX/Generator.pm index 2ae881f..c8ee22b 100644 --- a/lib/XML/LibXML/SAX/Generator.pm +++ b/lib/XML/LibXML/SAX/Generator.pm @@ -15,7 +15,7 @@ use warnings; use XML::LibXML; use vars qw ($VERSION); -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE sub CLONE_SKIP { return $XML::LibXML::__threads_shared ? 0 : 1; diff --git a/lib/XML/LibXML/SAX/Parser.pm b/lib/XML/LibXML/SAX/Parser.pm index 0b2ba85..1f9ed49 100644 --- a/lib/XML/LibXML/SAX/Parser.pm +++ b/lib/XML/LibXML/SAX/Parser.pm @@ -18,7 +18,7 @@ use XML::LibXML::Common qw(:libxml); use XML::SAX::Base; use XML::SAX::DocumentLocator; -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE @ISA = ('XML::SAX::Base'); sub CLONE_SKIP { diff --git a/lib/XML/LibXML/Schema.pod b/lib/XML/LibXML/Schema.pod index 5bfc958..dca03c2 100644 --- a/lib/XML/LibXML/Schema.pod +++ b/lib/XML/LibXML/Schema.pod @@ -9,8 +9,8 @@ XML::LibXML::Schema - XML Schema Validation use XML::LibXML; $doc = XML::LibXML->new->parse_file($url); - $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 ); - $xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 ); + $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url ); + $xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring ); eval { $xmlschema->validate( $doc ); }; =head1 DESCRIPTION @@ -27,19 +27,16 @@ validation. As of 2.6.32, libxml2 only supports decimal types up to 24 digits =item new - $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 ); - $xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 ); + $xmlschema = XML::LibXML::Schema->new( location => $filename_or_url ); + $xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring ); -The constructor of XML::LibXML::Schema needs to be called with list of -parameters. At least location or string parameter is required to specify source -of schema. Optional parameter no_network set to 1 cause that parser would not -access network and optional parameter recover set 1 cause that parser would not -call die() on errors. - -It is important, that each schema only have a single source. +The constructor of XML::LibXML::Schema may get called with either one of two +parameters. The parameter tells the class from which source it should generate +a validation schema. It is important, that each schema only have a single +source. The location parameter allows one to parse a schema from the filesystem or a -(non-HTTPS) URL. +URL. The string parameter will parse the schema from the given XML string. @@ -69,7 +66,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/Text.pod b/lib/XML/LibXML/Text.pod index be65280..a70a4ed 100644 --- a/lib/XML/LibXML/Text.pod +++ b/lib/XML/LibXML/Text.pod @@ -170,7 +170,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/XPathContext.pm b/lib/XML/LibXML/XPathContext.pm index 10e62ed..48a960e 100644 --- a/lib/XML/LibXML/XPathContext.pm +++ b/lib/XML/LibXML/XPathContext.pm @@ -17,7 +17,7 @@ use Carp; use XML::LibXML; use XML::LibXML::NodeList; -$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE +$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE # should LibXML XPath data types be used for simple objects # when passing parameters to extension functions (default: no) diff --git a/lib/XML/LibXML/XPathContext.pod b/lib/XML/LibXML/XPathContext.pod index 0b8f81c..deb5107 100644 --- a/lib/XML/LibXML/XPathContext.pod +++ b/lib/XML/LibXML/XPathContext.pod @@ -143,7 +143,7 @@ Returns namespace URI registered with C<<<<<< $prefix >>>>>>. If C<<<<<< $prefix $xpc->registerVarLookupFunc($callback, $data) -Registers variable lookup function C<<<<<< $callback >>>>>>. The registered function is executed by the XPath engine each time an XPath +Registers variable lookup function C<<<<<< $prefix >>>>>>. The registered function is executed by the XPath engine each time an XPath variable is evaluated. It takes three arguments: C<<<<<< $data >>>>>>, variable name, and variable ns-URI and must return one value: a number or string or any C<<<<<< XML::LibXML:: >>>>>> object that can be a result of findnodes: Boolean, Literal, Number, Node (e.g. Document, Element, etc.), or NodeList. For convenience, simple (non-blessed) @@ -362,7 +362,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/lib/XML/LibXML/XPathExpression.pod b/lib/XML/LibXML/XPathExpression.pod index 5ff7b0d..2291d4e 100644 --- a/lib/XML/LibXML/XPathExpression.pod +++ b/lib/XML/LibXML/XPathExpression.pod @@ -52,7 +52,7 @@ Petr Pajas =head1 VERSION -2.0207 +2.0134 =head1 COPYRIGHT diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c index b433c5c..afe82d5 100644 --- a/perl-libxml-mm.c +++ b/perl-libxml-mm.c @@ -1118,7 +1118,7 @@ Sv2C( SV* scalar, const xmlChar *encoding ) dTHX; xs_warn("SV2C: start!\n"); - if ( scalar != NULL && SvOK(scalar) ) { + if ( scalar != NULL && scalar != &PL_sv_undef ) { STRLEN len = 0; char * t_pv =SvPV(scalar, len); xmlChar* ts = NULL; diff --git a/scripts/bump-version-number.pl b/scripts/bump-version-number.pl index 18b13ba..3884d60 100644 --- a/scripts/bump-version-number.pl +++ b/scripts/bump-version-number.pl @@ -3,14 +3,14 @@ use strict; use warnings; -use File::Find::Object (); -use Path::Tiny qw/ path tempdir tempfile cwd /; +use File::Find::Object; +use IO::All; -my $tree = File::Find::Object->new( {}, 'lib/' ); +my $tree = File::Find::Object->new({}, 'lib/'); my $version_n = shift(@ARGV); -if ( !defined($version_n) ) +if (!defined($version_n)) { die "Specify version number as an argument! bump-version-number.pl '0.0.1'"; } @@ -19,26 +19,27 @@ sub process_file { # The filename. my ($r) = @_; - my $fh = path($r); - my @lines = $fh->lines_utf8; + my @lines = io->file($r)->getlines(); foreach (@lines) { -s#(\$VERSION = "|^Version )\d+\.\d+(?:\.\d+)?("|)#$1 . $version_n . $2#e; + s#(\$VERSION = "|^Version )\d+\.\d+(?:\.\d+)?("|)#$1 . $version_n . $2#e; } - $fh->spew_utf8(@lines); + io->file($r)->print( + @lines + ); } process_file('LibXML.pm'); -while ( my $r = $tree->next() ) -{ - if ( $r =~ m{/\.(?:svn|hg|git)\z} ) +while (my $r = $tree->next()) { + if ($r =~ m{/\.(?:svn|hg|git)\z}) { $tree->prune(); } - elsif ( $r =~ m{\.pm\z} ) + elsif ($r =~ m{\.pm\z}) { process_file($r); } } + diff --git a/scripts/tag-release.pl b/scripts/tag-release.pl index aca9b97..ca08d00 100644 --- a/scripts/tag-release.pl +++ b/scripts/tag-release.pl @@ -3,21 +3,25 @@ use strict; use warnings; -use Path::Tiny qw/ path /; +use IO::All; my ($version) = - ( map { m{\$VERSION *= *"([^"]+)"} ? ($1) : () } - path('LibXML.pm')->lines_utf8() ); + (map { m{\$VERSION *= *"([^"]+)"} ? ($1) : () } + io->file('LibXML.pm')->getlines() + ) + ; -if ( !defined($version) ) +if (!defined ($version)) { die "Version is undefined!"; } my @cmd = ( - "git", "tag", "-m", "Tagging the XML-LibXML release as $version", + "git", "tag", "-m", + "Tagging the XML-LibXML release as $version", "XML-LibXML-$version", ); -print join( " ", map { /\s/ ? qq{"$_"} : $_ } @cmd ), "\n"; +print join(" ", map { /\s/ ? qq{"$_"} : $_ } @cmd), "\n"; exec(@cmd); + diff --git a/t/00-report-prereqs.t b/t/00-report-prereqs.t deleted file mode 100644 index 259894e..0000000 --- a/t/00-report-prereqs.t +++ /dev/null @@ -1,194 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do './t/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -my $cpan_meta_error; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source) - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( $cpan_meta_error || @dep_errors ) { - diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n"; -} - -if ( $cpan_meta_error ) { - my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; - diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n"; -} - -if ( @dep_errors ) { - diag join("\n", - "\nThe following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -# TEST -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/t/02parse.t b/t/02parse.t index b111507..929654d 100644 --- a/t/02parse.t +++ b/t/02parse.t @@ -25,8 +25,6 @@ use constant XML_DECL => "\n"; use Errno qw(ENOENT); -# TEST*533 - ## # test values my @goodWFStrings = ( @@ -722,7 +720,7 @@ my $badXInclude = q{ my %badstrings = ( SIMPLE => ''."\n\n", ); - my $parser = XML::LibXML->new(expand_entities => 1); + my $parser = XML::LibXML->new; $parser->validation(1); my $doc; @@ -747,7 +745,7 @@ EOXML EOXML - my $parser = XML::LibXML->new(expand_entities => 1); + my $parser = XML::LibXML->new; $parser->validation(1); eval { $parser->parse_string( $badxml ); }; diff --git a/t/13dtd.t b/t/13dtd.t index 08c2fbb..bd6b747 100644 --- a/t/13dtd.t +++ b/t/13dtd.t @@ -69,7 +69,7 @@ ok($dtdstr, "DTD String read"); # TEST ok ($@, '->validate throws an exception'); - my $parser = XML::LibXML->new(load_ext_dtd => 1); + my $parser = XML::LibXML->new(); # TEST ok ($parser->validation(1), '->validation returns 1'); # this one is OK as it's well formed (no DTD) diff --git a/t/17callbacks.t b/t/17callbacks.t index e2d9859..dafaee0 100644 --- a/t/17callbacks.t +++ b/t/17callbacks.t @@ -276,7 +276,7 @@ $XML::LibXML::close_cb = $close1_global_counter->cb(); { # tests if global callbacks are working - my $parser = XML::LibXML->new(load_ext_dtd => 1); + my $parser = XML::LibXML->new(); # TEST ok($parser, '$parser was init'); diff --git a/t/18docfree.t b/t/18docfree.t index 9a2cff6..fb559d5 100644 --- a/t/18docfree.t +++ b/t/18docfree.t @@ -9,6 +9,5 @@ use XML::LibXML; $doc = XML::LibXML::Document->new(); } # used to get "Attempt to free unreferenced scalar" here -# TEST -pass('docfree Out of scope is OK - no "Attempt to free unreferenced scalar"'); +ok(1, 'docfree Out of scope is OK - no "Attempt to free unreferenced scalar"'); diff --git a/t/25relaxng.t b/t/25relaxng.t index 93e6188..dd579ee 100644 --- a/t/25relaxng.t +++ b/t/25relaxng.t @@ -16,7 +16,7 @@ BEGIN { use XML::LibXML; if ( XML::LibXML::LIBXML_VERSION >= 20510 ) { - plan tests => 17; + plan tests => 13; } else { plan skip_all => 'Skip No RNG Support compiled'; @@ -32,7 +32,6 @@ my $badfile = "test/relaxng/badschema.rng"; my $validfile = "test/relaxng/demo.xml"; my $invalidfile = "test/relaxng/invaliddemo.xml"; my $demo4 = "test/relaxng/demo4.rng"; -my $netfile = "test/relaxng/net.rng"; print "# 1 parse schema from a file\n"; { @@ -128,34 +127,5 @@ EOXML } -print "# 6 check that no_network => 1 works\n"; -{ - my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, no_network => 1 ) }; - # TEST - like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $rng, 'RNG from file location with external import and no_network => 1 is not loaded.' ); -} -{ - my $rng = eval { XML::LibXML::RelaxNG->new( string => <<'EOF', no_network => 1 ) }; - - - - - - - - - - - - -EOF - # TEST - like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' ); -} - } # Version >= 20510 test diff --git a/t/26schema.t b/t/26schema.t index 17f641e..90831ab 100644 --- a/t/26schema.t +++ b/t/26schema.t @@ -15,7 +15,7 @@ use Test::More; use XML::LibXML; if ( XML::LibXML::LIBXML_VERSION >= 20510 ) { - plan tests => 12; + plan tests => 8; } else { plan skip_all => 'No Schema Support compiled.'; @@ -27,7 +27,6 @@ my $file = "test/schema/schema.xsd"; my $badfile = "test/schema/badschema.xsd"; my $validfile = "test/schema/demo.xml"; my $invalidfile = "test/schema/invaliddemo.xml"; -my $netfile = "test/schema/net.xsd"; # 1 parse schema from a file @@ -113,23 +112,3 @@ EOF is( $result, 0, 'validate() with element returns 0' ); } -# 5 check that no_network => 1 works -{ - my $schema = eval { XML::LibXML::Schema->new( location => $netfile, no_network => 1 ) }; - # TEST - like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $schema, 'Schema from file location with external import and no_network => 1 is not loaded.' ); -} -{ - my $schema = eval { XML::LibXML::Schema->new( string => <<'EOF', no_network => 1 ) }; - - - - -EOF - # TEST - like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' ); -} diff --git a/t/35huge_mode.t b/t/35huge_mode.t index 1ccb334..adf03da 100644 --- a/t/35huge_mode.t +++ b/t/35huge_mode.t @@ -49,14 +49,11 @@ my($parser, $doc); $parser = XML::LibXML->new; #$parser->set_option(huge => 0); -# TEST ok(!$parser->get_option('huge'), "huge mode disabled by default"); $doc = eval { $parser->parse_string($evil_xml); }; -# TEST isnt("$@", "", "exception thrown during parse"); -# TEST like($@, qr/entity.*loop/si, "exception refers to entity reference loop"); @@ -64,11 +61,9 @@ $parser = XML::LibXML->new; $doc = eval { $parser->parse_string($benign_xml); }; -# TEST is("$@", "", "no exception thrown during parse"); my $body = $doc->findvalue( '/lolz' ); -# TEST is($body, 'haha', 'entity was parsed and expanded correctly'); exit; diff --git a/t/40reader.t b/t/40reader.t index f08c2ab..4b75b22 100644 --- a/t/40reader.t +++ b/t/40reader.t @@ -19,7 +19,6 @@ BEGIN{ use_ok('XML::LibXML::Reader'); }; -# TEST*100 my $file = "test/textReader/countries.xml"; { my $reader = XML::LibXML::Reader->new(location => $file, {expand_entities => 1}); diff --git a/t/43options.t b/t/43options.t index d46fe23..826f0ad 100644 --- a/t/43options.t +++ b/t/43options.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 291; +use Test::More tests => 290; use XML::LibXML; @@ -50,7 +50,7 @@ no_network { my $p = XML::LibXML->new(); for my $opt (@all) { - my $ret = 0; + my $ret = (($opt =~ /^(?:load_ext_dtd|expand_entities)$/) ? 1 : 0); # TEST*$all ok( ($p->get_option($opt)||0) == $ret @@ -110,21 +110,18 @@ no_network ok( $p->get_option('recover') == 2, ' TODO : Add test name' ); # TEST - ok( $p->expand_entities() == 0, 'expand_entities should default to false' ); + ok( $p->expand_entities() == 1, ' TODO : Add test name' ); # TEST - ok( $p->load_ext_dtd() == 0, 'load_ext_dtd should default to false' ); - $p->load_ext_dtd(1); - # TEST - ok( $p->load_ext_dtd() == 1, 'load_ext_dtd should be true after being set to true' ); + ok( $p->load_ext_dtd() == 1, ' TODO : Add test name' ); $p->load_ext_dtd(0); - $p->expand_entities(1); # TEST - ok( $p->expand_entities() == 1, 'expand_entities should be true after being set to true' ); - # TEST - ok( $p->load_ext_dtd() == 1, 'load_ext_dtd should be true after expand_entities is set to true' ); + ok( $p->load_ext_dtd() == 0, ' TODO : Add test name' ); $p->expand_entities(0); # TEST - ok( $p->expand_entities() == 0, 'expand_entities should be false after being set to false' ); + ok( $p->expand_entities() == 0, ' TODO : Add test name' ); + $p->expand_entities(1); + # TEST + ok( $p->expand_entities() == 1, ' TODO : Add test name' ); } { diff --git a/t/48_SAX_Builder_rt_91433.t b/t/48_SAX_Builder_rt_91433.t index 808c0ec..3422d42 100644 --- a/t/48_SAX_Builder_rt_91433.t +++ b/t/48_SAX_Builder_rt_91433.t @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/usr/bin/perl -w use strict; use warnings; @@ -50,7 +50,6 @@ $parser->parse_string(<<'END_OF_XML'); END_OF_XML -# TEST eq_or_diff( \@got_warnings, [], diff --git a/t/48_gh_pr63_detect_undef_values.t b/t/48_gh_pr63_detect_undef_values.t deleted file mode 100644 index cb5f935..0000000 --- a/t/48_gh_pr63_detect_undef_values.t +++ /dev/null @@ -1,34 +0,0 @@ - -use strict; -use warnings; - -=head1 DESCRIPTION - -L - -This test program - - use warnings; - use XML::LibXML; - - my $test = XML::LibXML::Text->new({}->{bar}); - -produces the following warning: - - $ perl ~/test.pl - Use of uninitialized value in subroutine entry at /home/sven/test.pl line 4. - -This apparently happens, because Sv2C tries to catch undef values by comparing the memory location of the scalar in question to &PL_sv_undef. While PL_sv_undef certainly is an undef value, not all undef values share its memory location. The added commit fixes this, by using SvOK to correctly detect all undef values. - -=cut - -use Test::More tests => 1; - -use XML::LibXML; - -$SIG{__WARN__} = sub { die "warning " . shift . "!"; }; - -my $test = XML::LibXML::Text->new( {}->{bar} ); - -# TEST -pass("success"); diff --git a/t/48_rt123379_setNamespace.t b/t/48_rt123379_setNamespace.t index bf396f7..45bf5e8 100644 --- a/t/48_rt123379_setNamespace.t +++ b/t/48_rt123379_setNamespace.t @@ -4,20 +4,12 @@ use warnings; use XML::LibXML; use Test::More tests => 8; -# TEST ok(my $doc = XML::LibXML::Document->new(), 'new document'); -# TEST ok(my $elm = $doc->createElement('D:element'), 'create element'); -# TEST ok($elm->setAttribute('xmlns:D', 'attribute'), 'set attribute'); $doc->setDocumentElement($elm); # XXX does not return true if successful -# TEST ok(my $str = $doc->toString(0), 'to string'); -# TEST ok(my $par = XML::LibXML->new(), 'new parser'); -# TEST ok( eval { $par->parse_string($str) } , 'parse string'); -# TEST is($@, "", 'parse error'); -# TEST like($str, qr{}, 'xml element'); diff --git a/t/48_rt93429_recover_2_in_html_parsing.t b/t/48_rt93429_recover_2_in_html_parsing.t index c1c06be..d684fa4 100644 --- a/t/48_rt93429_recover_2_in_html_parsing.t +++ b/t/48_rt93429_recover_2_in_html_parsing.t @@ -27,7 +27,6 @@ use XML::LibXML; close($fh); - # TEST is($buf, '', 'No warning emitted on load_html with recover => 2.'); } diff --git a/t/62overload.t b/t/62overload.t index 98b9032..24ee7be 100644 --- a/t/62overload.t +++ b/t/62overload.t @@ -16,35 +16,23 @@ $e2->setAttribute('attr' => 'value2'); my $h1 = \%{ $e1 }; my $h2 = \%{ $e2 }; -# TEST isnt $h1,$h2, 'different references'; -# TEST is $h1->{attr}, 'value1', 'affr for el 1'; -# TEST is $h2->{attr}, 'value2', 'affr for el 2'; -# TEST is "$e1", '', 'stringify for el 1'; -# TEST is "$e2", '', 'stringify for el 2'; -# TEST cmp_ok 0+$e1, '>', 1, 'num for el 1'; -# TEST cmp_ok 0+$e2, '>', 1, 'num for el 2'; -# TEST isnt 0+$e1,0+$e2, 'num for e1 and e2 differs'; my $e3 = $e1; -# TEST ok $e3 eq $e1, 'eq'; -# TEST ok $e3 == $e1, '=='; -# TEST ok $e1 ne $e2, 'ne'; -# TEST ok $e1 != $e2, '!='; diff --git a/t/91unique_key.t b/t/91unique_key.t index fd5a0bb..19ad9e5 100644 --- a/t/91unique_key.t +++ b/t/91unique_key.t @@ -23,7 +23,6 @@ my $foo = $doc->documentElement; my @children_1 = $foo->childNodes; my @children_2 = $foo->childNodes; -# TEST ok($children_1[0]->can('unique_key'), 'unique_key method available') or exit -1; diff --git a/t/pod-files-presence.t b/t/pod-files-presence.t index 02b069d..e2d63b6 100644 --- a/t/pod-files-presence.t +++ b/t/pod-files-presence.t @@ -3,15 +3,9 @@ use strict; use warnings; -use Test::More; +use Test::More tests => 3; use File::Spec; -if ( ! $ENV{AUTHOR_TESTING} ) { - plan skip_all => "only for AUTHORS"; -} else { - plan tests => 3; -} - sub _is_present { my $path = shift; @@ -35,3 +29,4 @@ sub _is_present } } } + diff --git a/test/relaxng/net.rng b/test/relaxng/net.rng deleted file mode 100644 index 32f8571..0000000 --- a/test/relaxng/net.rng +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/test/schema/net.xsd b/test/schema/net.xsd deleted file mode 100644 index 21bb390..0000000 --- a/test/schema/net.xsd +++ /dev/null @@ -1,4 +0,0 @@ - - - -