diff options
author | Chin-San Huang <chinsan@FreeBSD.org> | 2007-07-28 19:31:51 +0000 |
---|---|---|
committer | Chin-San Huang <chinsan@FreeBSD.org> | 2007-07-28 19:31:51 +0000 |
commit | 7e4b26ddf079748ee1fa2a574d74ffc34a35c19d (patch) | |
tree | 84023e2e9ad97f3eba8ca2fc6898110e32cecabc /textproc/p5-SGML-Parser-OpenSP | |
parent | 568bb68fdaa4fd77b0802427348314984d031099 (diff) | |
download | ports-7e4b26ddf079748ee1fa2a574d74ffc34a35c19d.tar.gz ports-7e4b26ddf079748ee1fa2a574d74ffc34a35c19d.zip |
Add p5-SGML-Parser-OpenSP 0.100r1, parse SGML documents using OpenSP.
PR: ports/114975
Submitted by: Naram Qashat <cyberbotx at cyberbotx.com>
Approved by: rafan (mentor, implicit)
Notes
Notes:
svn path=/head/; revision=196500
Diffstat (limited to 'textproc/p5-SGML-Parser-OpenSP')
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/Makefile | 31 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/distinfo | 3 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-MANIFEST | 12 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-Makefile.PL | 13 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-OpenSP.xs | 11 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-t-20passfd.t | 50 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-t-21parsestring.t | 69 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/files/patch-t-22mwarnings.t | 71 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/pkg-descr | 5 | ||||
-rw-r--r-- | textproc/p5-SGML-Parser-OpenSP/pkg-plist | 11 |
10 files changed, 276 insertions, 0 deletions
diff --git a/textproc/p5-SGML-Parser-OpenSP/Makefile b/textproc/p5-SGML-Parser-OpenSP/Makefile new file mode 100644 index 000000000000..434ab40c0d8b --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/Makefile @@ -0,0 +1,31 @@ +# New ports collection makefile for: p5-SGML-Parser-OpenSP +# Date created: 27 August 2007 +# Whom: Naram Qashat <cyberbotx@cyberbotx.com> +# +# $FreeBSD$ +# + +PORTNAME= SGML-Parser-OpenSP +PORTVERSION= 0.100r1 +CATEGORIES= textproc perl5 +MASTER_SITES= ${MASTER_SITE_PERL_CPAN} +MASTER_SITE_SUBDIR= SGML +PKGNAMEPREFIX= p5- +DISTNAME= ${PORTNAME}-0.99 + +MAINTAINER= cyberbotx@cyberbotx.com +COMMENT= Parse SGML documents using OpenSP + +BUILD_DEPENDS= onsgmls:${PORTSDIR}/textproc/opensp \ + p5-File-Temp>=0:${PORTSDIR}/devel/p5-File-Temp \ + p5-Class-Accessor>=0:${PORTSDIR}/devel/p5-Class-Accessor +RUN_DEPENDS= ${BUILD_DEPENDS} + +USE_DOS2UNIX= yes +PERL_CONFIGURE= yes +CC= ${CXX} +CONFIGURE_ARGS+="INC=-I${LOCALBASE}/include -I${LOCALBASE}/lib" + +MAN3= SGML::Parser::OpenSP.3 SGML::Parser::OpenSP::Tools.3 + +.include <bsd.port.mk> diff --git a/textproc/p5-SGML-Parser-OpenSP/distinfo b/textproc/p5-SGML-Parser-OpenSP/distinfo new file mode 100644 index 000000000000..92132ea88a8a --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/distinfo @@ -0,0 +1,3 @@ +MD5 (SGML-Parser-OpenSP-0.99.tar.gz) = cb08669ed566ef4070671cf57aa749e3 +SHA256 (SGML-Parser-OpenSP-0.99.tar.gz) = 4822da26240b6feb2e435d84053377eb421afda584439b16da0f31f8fcfddc1b +SIZE (SGML-Parser-OpenSP-0.99.tar.gz) = 33761 diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-MANIFEST b/textproc/p5-SGML-Parser-OpenSP/files/patch-MANIFEST new file mode 100644 index 000000000000..3c864e75fe9f --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-MANIFEST @@ -0,0 +1,12 @@ +--- MANIFEST.orig 2007-07-29 03:17:26.000000000 +0800 ++++ MANIFEST 2007-07-29 03:17:35.000000000 +0800 +@@ -23,6 +23,9 @@ + t/17splitmessage.t + t/18halt.t + t/19refcounting.t ++t/20passfd.t ++t/21parsestring.t ++t/22mwarnings.t + t/98podsyn.t + t/99podcov.t + lib/SGML/Parser/OpenSP.pm diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-Makefile.PL b/textproc/p5-SGML-Parser-OpenSP/files/patch-Makefile.PL new file mode 100644 index 000000000000..7811b2b55c16 --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-Makefile.PL @@ -0,0 +1,13 @@ +--- Makefile.PL.orig 2007-07-29 03:05:27.000000000 +0800 ++++ Makefile.PL 2007-07-29 03:06:38.000000000 +0800 +@@ -26,6 +26,10 @@ + Test::Exception => 0, + File::Temp => 0, + }, ++ PM => { ++ 'lib/SGML/Parser/OpenSP.pm' => '$(INST_LIB)/SGML/Parser/OpenSP.pm', ++ 'lib/SGML/Parser/OpenSP/Tools.pm' => '$(INST_LIB)/SGML/Parser/OpenSP/Tools.pm' ++ }, + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/SGML/Parser/OpenSP.pm', + AUTHOR => 'Bjoern Hoehrmann <bjoern@hoehrmann.de>') : ()), diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-OpenSP.xs b/textproc/p5-SGML-Parser-OpenSP/files/patch-OpenSP.xs new file mode 100644 index 000000000000..1b2dc7cf1336 --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-OpenSP.xs @@ -0,0 +1,11 @@ +--- OpenSP.xs.orig 2007-07-29 02:53:09.000000000 +0800 ++++ OpenSP.xs 2007-07-29 02:53:39.000000000 +0800 +@@ -445,7 +445,7 @@ + AV* av = (AV*)rv; + I32 len = av_len(av); + +- for (I32 i = 0; i < len; ++i) ++ for (I32 i = 0; i <= len; ++i) + { + SV** svp = av_fetch(av, i, 0); + diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-t-20passfd.t b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-20passfd.t new file mode 100644 index 000000000000..429cdc5ab8e3 --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-20passfd.t @@ -0,0 +1,50 @@ +--- /dev/null Fri Jul 27 20:05:08 2007 ++++ t/20passfd.t Fri Jul 27 20:06:50 2007 +X@@ -0,0 +1,46 @@ ++# 20passfd.t -- ... ++# ++# $Id: 20passfd.t,v 1.4 2005/08/14 18:07:19 hoehrmann Exp $ ++ ++use strict; ++use warnings; ++use Test::More tests => 7; ++use Test::Exception; ++use File::Spec qw(); ++ ++use constant NO_DOCTYPE => File::Spec->catfile('samples', 'no-doctype.xml'); ++use constant TEST_CATALOG => File::Spec->catfile('samples', 'test.soc'); ++ ++BEGIN { use_ok('SGML::Parser::OpenSP') }; ++require_ok('SGML::Parser::OpenSP'); ++my $p = SGML::Parser::OpenSP->new; ++isa_ok($p, 'SGML::Parser::OpenSP'); ++ ++sub TestHandler20::new { bless{ok1=>0},shift } ++sub TestHandler20::start_element { shift->{ok1}++ } ++ ++sub TestHandler21::new { bless{ok1=>0},shift } ++sub TestHandler21::start_element { shift->{ok1}++ } ++ ++# ++# Check pass as filename (should work on all platforms). ++$p = SGML::Parser::OpenSP->new; ++my $h1 = TestHandler20->new; ++$p->handler($h1); ++$p->pass_file_descriptor(0); ++lives_ok { $p->parse_string("<no-doctype></no-doctype>") } 'parse_string with temp file name'; ++is($h1->{ok1}, 1, "temp file name handler called"); ++undef $p; ++ ++# ++# Check pass as file descriptor (not on Win32). ++SKIP: { ++ skip 'passing fds for temp files not supported on Win32', 2 if $^O eq 'MSWin32'; ++ $p = SGML::Parser::OpenSP->new; ++ my $h2 = TestHandler21->new; ++ $p->handler($h2); ++ $p->pass_file_descriptor(1); ++ lives_ok { $p->parse_string("<no-doctype></no-doctype>") } 'parse by fd'; ++ is($h2->{ok1}, 1, "temp file descriptor handler called"); ++ undef $p; ++} + diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-t-21parsestring.t b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-21parsestring.t new file mode 100644 index 000000000000..10d57aa49886 --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-21parsestring.t @@ -0,0 +1,69 @@ +--- /dev/null Fri Jul 27 20:05:08 2007 ++++ t/21parsestring.t Fri Jul 27 20:06:55 2007 +X@@ -0,0 +1,65 @@ ++# 06parseliteral.t -- ... ++# ++# $Id: 21parsestring.t,v 1.1 2006/03/06 08:51:59 tbe Exp $ ++ ++use strict; ++use warnings; ++use Test::More tests => 13; ++use Test::Exception; ++use File::Spec qw(); ++ ++use constant NO_DOCTYPE => File::Spec->catfile('samples', 'no-doctype.xml'); ++use constant TEST_CATALOG => File::Spec->catfile('samples', 'test.soc'); ++ ++BEGIN { use_ok('SGML::Parser::OpenSP') }; ++require_ok('SGML::Parser::OpenSP'); ++my $p = SGML::Parser::OpenSP->new; ++isa_ok($p, 'SGML::Parser::OpenSP'); ++ ++######################################################### ++## Parse using ->parse_string(). ++######################################################### ++ ++sub TestHandler1::new { bless{ok1=>0,ok2=>0,ok3=>0,ok4=>0,ok5=>0, ++ ok6=>0,ok7=>0,ok8=>0,ok9=>0,oka=>0},shift } ++sub TestHandler1::start_element { ++ my $s = shift; ++ my $e = shift; ++ ++ return unless defined $s; ++ return unless defined $e; ++ ++ $s->{ok1}++ if UNIVERSAL::isa($s, 'TestHandler1'); ++ ++ # Name ++ $s->{ok2}++ if exists $e->{Name}; ++ $s->{ok3}++ if $e->{Name} =~ /no-doctype/i; ++ ++ # Attributes ++ $s->{ok4}++ if exists $e->{Attributes}; ++ $s->{ok5}++ if UNIVERSAL::isa($e->{Attributes}, "HASH"); ++ $s->{ok6}++ if scalar(keys(%{$_[1]->{Attributes}})) == 0; ++ ++ # Included ++ $s->{ok7}++ if exists $e->{Included}; ++ $s->{ok8}++ if $e->{Included} == 0; ++ ++ # ContentType ++ $s->{ok9}++ if exists $e->{ContentType}; ++} ++ ++my $h1 = TestHandler1->new; ++ ++$p->handler($h1); ++lives_ok { $p->parse_string("<no-doctype></no-doctype>") } ++ 'parsing with parse_string()'; ++ ++ok($h1->{ok1}, 'self to handler'); ++ok($h1->{ok2}, 'has name'); ++ok($h1->{ok3}, 'proper name'); ++ok($h1->{ok4}, 'has attrs'); ++ok($h1->{ok5}, 'attrs hash ref'); ++ok($h1->{ok6}, 'proper attrs'); ++ok($h1->{ok7}, 'has included'); ++ok($h1->{ok8}, 'included == 0'); ++ok($h1->{ok9}, 'has content type'); + diff --git a/textproc/p5-SGML-Parser-OpenSP/files/patch-t-22mwarnings.t b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-22mwarnings.t new file mode 100644 index 000000000000..244ac911870b --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/files/patch-t-22mwarnings.t @@ -0,0 +1,71 @@ +--- /dev/null Fri Jul 27 20:05:08 2007 ++++ t/22mwarnings.t Fri Jul 27 20:06:59 2007 +@@ -0,0 +1,67 @@ ++# 10errors.t -- ... ++# ++# $Id: 22mwarnings.t,v 1.1 2006/11/07 11:14:13 hoehrmann Exp $ ++ ++use strict; ++use warnings; ++use Test::More tests => 7; ++use Test::Exception; ++use File::Spec qw(); ++ ++use constant NO_DOCTYPE => File::Spec->catfile('samples', 'no-doctype.xml'); ++use constant TEST_CATALOG => File::Spec->catfile('samples', 'test.soc'); ++ ++BEGIN { use_ok('SGML::Parser::OpenSP') }; ++require_ok('SGML::Parser::OpenSP'); ++my $p = SGML::Parser::OpenSP->new; ++isa_ok($p, 'SGML::Parser::OpenSP'); ++ ++######################################################### ++## Error reporting ++######################################################### ++ ++sub TestHandler5::new { bless{ok=>0},shift } ++sub TestHandler5::error ++{ ++ return unless @_ == 2; ++ $_[0]->{ok}++ if $_[1]->{Message} =~ /:8:7:W:/; ++} ++ ++my $h5 = TestHandler5->new; ++$p->catalogs(TEST_CATALOG); ++$p->warnings('xml'); ++$p->handler($h5); ++lives_ok { $p->parse("<LITERAL>" . <<"__DOC__"); ++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ++ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ++<html xmlns="http://www.w3.org/1999/xhtml"> ++<head> ++<title></title> ++</head> ++<body> ++<p>foo & bar</p> ++</body> ++</html> ++__DOC__ ++} 'ampersand as data'; ++ ++is($h5->{ok}, 1, 'ampersand as data generates warning'); ++ ++# special case ++$p->warnings(qw/non-sgml-char-ref valid no-duplicate xml/); ++ ++lives_ok { $p->parse("<LITERAL>" . <<"__DOC__"); ++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ++ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ++<html xmlns="http://www.w3.org/1999/xhtml"> ++<head> ++<title></title> ++</head> ++<body> ++<p>foo & bar</p> ++</body> ++</html> ++__DOC__ ++} 'ampersand as data'; ++ ++is($h5->{ok}, 2, 'ampersand as data generates warning'); + diff --git a/textproc/p5-SGML-Parser-OpenSP/pkg-descr b/textproc/p5-SGML-Parser-OpenSP/pkg-descr new file mode 100644 index 000000000000..00b6bde1b78e --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/pkg-descr @@ -0,0 +1,5 @@ +SGML::Parser::OpenSP is an interface to the OpenSP parser. It allows for +Perl scripts to parse an SGML document (including HTML) using the OpenSP +parser. + +WWW: http://search.cpan.org/dist/SGML-Parser-OpenSP/ diff --git a/textproc/p5-SGML-Parser-OpenSP/pkg-plist b/textproc/p5-SGML-Parser-OpenSP/pkg-plist new file mode 100644 index 000000000000..13ad9c4b6c1b --- /dev/null +++ b/textproc/p5-SGML-Parser-OpenSP/pkg-plist @@ -0,0 +1,11 @@ +%%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML/Parser/OpenSP/OpenSP.so +%%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML/Parser/OpenSP/OpenSP.bs +%%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML/Parser/OpenSP/.packlist +%%SITE_PERL%%/%%PERL_ARCH%%/SGML/Parser/OpenSP.pm +%%SITE_PERL%%/%%PERL_ARCH%%/SGML/Parser/OpenSP/Tools.pm +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML/Parser/OpenSP +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML/Parser +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/SGML +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/SGML/Parser/OpenSP +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/SGML/Parser +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/SGML |