461 lines
14 KiB
Diff
461 lines
14 KiB
Diff
|
Patch obtained from OpenEmbedded.
|
||
|
|
||
|
Upstream-Status: Pending
|
||
|
|
||
|
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
|
||
|
|
||
|
--- libsgmls-perl-1.03ii.orig/Makefile
|
||
|
+++ libsgmls-perl-1.03ii/Makefile
|
||
|
@@ -94,5 +94,5 @@
|
||
|
mv /tmp/${DIST} SGMLSpm
|
||
|
|
||
|
clean:
|
||
|
- cd DOC; make clean
|
||
|
+ #cd DOC; make clean
|
||
|
rm -f *~ core *.tar *.tar.gz
|
||
|
--- libsgmls-perl-1.03ii.orig/Makefile.PL
|
||
|
+++ libsgmls-perl-1.03ii/Makefile.PL
|
||
|
@@ -0,0 +1,17 @@
|
||
|
+use ExtUtils::MakeMaker;
|
||
|
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
||
|
+# the contents of the Makefile that is written.
|
||
|
+WriteMakefile(
|
||
|
+ 'NAME' => 'SGMLS',
|
||
|
+ 'VERSION' => '1.03ii',
|
||
|
+ 'PM' => { 'SGMLS.pm' => '$(INST_LIBDIR)/SGMLS.pm',
|
||
|
+ 'Output.pm' => '$(INST_LIBDIR)/SGMLS/Output.pm',
|
||
|
+ 'Refs.pm' => '$(INST_LIBDIR)/SGMLS/Refs.pm',
|
||
|
+ 'skel.pl' => '$(INST_LIBDIR)/sgmlspl-specs/skel.pl',
|
||
|
+ },
|
||
|
+ 'MAN3PODS'=> { 'SGMLS.pm' => '$(INST_MAN3DIR)/SGMLS.3pm',
|
||
|
+ 'Output.pm' => '$(INST_MAN3DIR)/SGMLS::Output.3pm',
|
||
|
+ 'Refs.pm' => '$(INST_MAN3DIR)/SGMLS::Refs.3pm',
|
||
|
+ },
|
||
|
+ 'EXE_FILES' => [ 'sgmlspl', ],
|
||
|
+);
|
||
|
--- libsgmls-perl-1.03ii.orig/Output.pm
|
||
|
+++ libsgmls-perl-1.03ii/Output.pm
|
||
|
@@ -5,7 +5,7 @@
|
||
|
@ISA = Exporter;
|
||
|
@EXPORT = qw(output push_output pop_output);
|
||
|
|
||
|
-$version = '$Id: Output.pm,v 1.6 1995/12/05 12:21:51 david Exp $';
|
||
|
+$version = '$Id: Output.pm,v 1.1 1999/10/26 19:30:45 ardo Exp $';
|
||
|
|
||
|
=head1 NAME
|
||
|
|
||
|
--- libsgmls-perl-1.03ii.orig/Refs.pm
|
||
|
+++ libsgmls-perl-1.03ii/Refs.pm
|
||
|
@@ -2,11 +2,11 @@
|
||
|
|
||
|
use Carp;
|
||
|
|
||
|
-$version = '$Id: Refs.pm,v 1.5 1995/12/03 21:28:36 david Exp $';
|
||
|
+$version = '$Id: Refs.pm,v 1.1 1999/10/26 19:30:45 ardo Exp $';
|
||
|
|
||
|
=head1 NAME
|
||
|
|
||
|
-SGMLS::Refs
|
||
|
+SGMLS::Refs - Forward refeence handling
|
||
|
|
||
|
=head1 SYNOPSIS
|
||
|
|
||
|
--- libsgmls-perl-1.03ii.orig/sgmlspl.1
|
||
|
+++ libsgmls-perl-1.03ii/sgmlspl.1
|
||
|
@@ -0,0 +1,47 @@
|
||
|
+.\" -*- nroff -*-
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.TH SGMLSPL 1 "October 26, 1999" "SGMLSPL" "SGMLSPL"
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.SH "NAME"
|
||
|
+sgmlspl \- a simple post-processor for nsgmls
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.SH "SYNOPSIS"
|
||
|
+.B sgmlspl
|
||
|
+.I "spec file"
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.SH "DESCRIPTION"
|
||
|
+sgmlspl is a sample application to convert SGML documents to other
|
||
|
+formats by providing a specification file detailing exactly how to
|
||
|
+handle each element, external data entity, subdocument entity, CDATA
|
||
|
+string, record end, SDATA string, and processing instruction.
|
||
|
+
|
||
|
+To use sgmlspl, prepare a specification file containing regular perl5
|
||
|
+code. If the SGML document were named doc.sgml, the sgmlspl
|
||
|
+specification file were named, spec.pl, and the name of the new file
|
||
|
+were doc.latex, then use the following command in a Unix shell to
|
||
|
+convert the SGML document:
|
||
|
+
|
||
|
+nsgmls doc.sgml | sgmlspl spec.pl > doc.latex
|
||
|
+
|
||
|
+sgmlspl will pass any additional arguments on to the specification
|
||
|
+file, which can then process them in the regular perl5 fashion.
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.SH "SEE ALSO"
|
||
|
+.TP
|
||
|
+.BR /usr/share/doc/sgmls-doc/sgmlspl/sgmlspl.html
|
||
|
+sgmlspl documentation in HTML format
|
||
|
+.TP
|
||
|
+.BR /usr/share/doc/sgmls-doc/SGMLSpm/sgmls.html
|
||
|
+SGMLS documentation in HTML format
|
||
|
+.TP
|
||
|
+.BR nsgmls (1)
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
+.SH "AUTHOR"
|
||
|
+Ardo van Rangelrooij <ardo@debian.org>
|
||
|
+.\"
|
||
|
+.\" ----------------------------------------------------------------------
|
||
|
--- libsgmls-perl-1.03ii.orig/sgmlspl
|
||
|
+++ libsgmls-perl-1.03ii/sgmlspl
|
||
|
@@ -0,0 +1,323 @@
|
||
|
+#!/usr/bin/perl
|
||
|
+########################################################################
|
||
|
+# sgmlspl: a simple SGML postprocesser for the SGMLS and NSGMLS
|
||
|
+# parsers (requires SGMLS.pm library).
|
||
|
+#
|
||
|
+# Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca>
|
||
|
+#
|
||
|
+# This program is free software; you can redistribute it and/or modify
|
||
|
+# it under the terms of the GNU General Public License as published by
|
||
|
+# the Free Software Foundation; either version 2 of the License, or
|
||
|
+# (at your option) any later version.
|
||
|
+#
|
||
|
+# This program is distributed in the hope that it will be useful,
|
||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
+# GNU General Public License for more details.
|
||
|
+#
|
||
|
+# You should have received a copy of the GNU General Public License
|
||
|
+# along with this program; if not, write to the Free Software
|
||
|
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
|
+#
|
||
|
+# $Log: sgmlspl,v $
|
||
|
+# Revision 1.1 2004/02/23 01:23:07 ardo
|
||
|
+# Added debian changes for version 1.03ii-27.
|
||
|
+#
|
||
|
+# Revision 1.1 2001/04/15 14:42:01 ardo
|
||
|
+# *** empty log message ***
|
||
|
+#
|
||
|
+# Revision 1.8 1995/12/03 21:46:31 david
|
||
|
+# Eliminated all use of the SGMLS_Event::key method.
|
||
|
+#
|
||
|
+# Revision 1.7 1995/11/15 20:22:24 david
|
||
|
+# Changed "use Output" to "use SGMLS::Output". Qualified the STDIN
|
||
|
+# filehandle for the SGMLS object with the main:: package name.
|
||
|
+#
|
||
|
+# Revision 1.6 1995/08/12 16:15:14 david
|
||
|
+# Revised version for 1.01 distribution.
|
||
|
+#
|
||
|
+# Revision 1.5 1995/04/27 11:52:25 david
|
||
|
+# Changed 'print' to 'main::output' for re handler; empty string
|
||
|
+# translates into an empty sub {} rather than a sub printing an empty
|
||
|
+# string; instead of evaluating every argument as a perl script, take
|
||
|
+# only the first as a perl script and the rest as its arguments; allow
|
||
|
+# empty scripts or scripts which do not end with '1;'; pass the event
|
||
|
+# itself as the second argument to each handler, after the event data.
|
||
|
+#
|
||
|
+# Revision 1.4 1995/04/23 14:44:58 david
|
||
|
+# Use the Output package. Fixed the $version variable.
|
||
|
+#
|
||
|
+# Revision 1.3 1995/04/22 21:02:49 david
|
||
|
+# Added some missing 'last SWITCH;' statements in the sgmls function.
|
||
|
+#
|
||
|
+# Revision 1.2 1995/04/22 20:58:48 david
|
||
|
+# Added $SGMLS_PL::version variable and changed SDATA notation from
|
||
|
+# [SDATA] to |SDATA|.
|
||
|
+#
|
||
|
+# Revision 1.1 1995/04/22 14:40:50 david
|
||
|
+# Initial revision
|
||
|
+#
|
||
|
+########################################################################
|
||
|
+
|
||
|
+use SGMLS::Output;
|
||
|
+
|
||
|
+package SGMLS_PL;
|
||
|
+use SGMLS;
|
||
|
+
|
||
|
+$version = '$Id: sgmlspl,v 1.1 2004/02/23 01:23:07 ardo Exp $';
|
||
|
+
|
||
|
+#
|
||
|
+# Set up handler defaults.
|
||
|
+#
|
||
|
+$start_document_handler = sub {};
|
||
|
+$end_document_handler = sub {};
|
||
|
+$start_element_handlers = { '' => sub {} };
|
||
|
+$end_element_handlers = { '' => sub {} };
|
||
|
+$cdata_handler = sub { main::output($_[0]); };
|
||
|
+$sdata_handlers = { '' => sub { main::output($_[0]);} };
|
||
|
+$re_handler = sub { main::output("\n"); };
|
||
|
+$pi_handler = sub { '' => sub {} };
|
||
|
+$entity_handlers = { '' => sub {} };
|
||
|
+$start_subdoc_handlers = { '' => sub {} };
|
||
|
+$end_subdoc_handlers = { '' => sub {} };
|
||
|
+$conforming_handler = sub {};
|
||
|
+
|
||
|
+#
|
||
|
+# Main access point: declare handlers for different SGML events.
|
||
|
+#
|
||
|
+# Usage: sgml(event, handler);
|
||
|
+#
|
||
|
+# The event may be one of the following strings, or a special pattern.
|
||
|
+# The generic events are as follow:
|
||
|
+#
|
||
|
+# 'start' The beginning of the document.
|
||
|
+# 'end' The end of the document.
|
||
|
+# 'start_element' The beginning of an element.
|
||
|
+# 'end_element' The end of an element.
|
||
|
+# 'cdata' Regular character data.
|
||
|
+# 'sdata' Special system-specific data.
|
||
|
+# 're' A record-end.
|
||
|
+# 'pi' A processing instruction.
|
||
|
+# 'entity' An external-entity reference.
|
||
|
+# 'start_subdoc' The beginning of a subdocument entity.
|
||
|
+# 'end_subdoc' The end of a subdocument entity.
|
||
|
+# 'conforming' The document is conforming.
|
||
|
+#
|
||
|
+# In addition to these generic events, it is possible to handlers
|
||
|
+# for certain specific, named events, as follow:
|
||
|
+#
|
||
|
+# '<GI>' The beginning of element GI.
|
||
|
+# '</GI>' The end of element GI.
|
||
|
+# '[SDATA]' The system-specific data SDATA.
|
||
|
+# '&ENAME;' A reference to the external entity ENAME.
|
||
|
+# '{ENAME}' The beginning of the subdocument-entity ENAME.
|
||
|
+# '{/ENAME}' The end of the subdocument-entity ENAME.
|
||
|
+#
|
||
|
+#
|
||
|
+# The handler may be a string, which will simply be printed when the
|
||
|
+# event occurs (this is usually useful only for the specific, named
|
||
|
+# events), or a reference to an anonymous subroutine, which will
|
||
|
+# receive two arguments: the event data and the event itself. For
|
||
|
+# example,
|
||
|
+#
|
||
|
+# sgml('<FOO>', "\n\\begin{foo}\n");
|
||
|
+#
|
||
|
+# and
|
||
|
+#
|
||
|
+# sgml('<FOO>', sub { output("\n\\begin{foo}\n"); });
|
||
|
+#
|
||
|
+# will have identical results.
|
||
|
+#
|
||
|
+sub main::sgml {
|
||
|
+ my ($spec,$handler) = (@_);
|
||
|
+ if (ref($handler) ne 'CODE') {
|
||
|
+ $handler =~ s/\\/\\\\/g;
|
||
|
+ $handler =~ s/'/\\'/g;
|
||
|
+ if ($handler eq '') {
|
||
|
+ $handler = sub {};
|
||
|
+ } else {
|
||
|
+ $handler = eval "sub { main::output('$handler'); };";
|
||
|
+ }
|
||
|
+ }
|
||
|
+ SWITCH: {
|
||
|
+ # start-document handler
|
||
|
+ $spec eq 'start' && do {
|
||
|
+ $start_document_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # end-document handler
|
||
|
+ $spec eq 'end' && do {
|
||
|
+ $end_document_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # start-element handler
|
||
|
+ $spec =~ /^<([^\/].*|)>$/ && do {
|
||
|
+ $start_element_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic start-element handler
|
||
|
+ $spec eq 'start_element' && do {
|
||
|
+ $start_element_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # end-element handler
|
||
|
+ $spec =~ /^<\/(.*)>$/ && do {
|
||
|
+ $end_element_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic end-element handler
|
||
|
+ $spec =~ 'end_element' && do {
|
||
|
+ $end_element_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # cdata handler
|
||
|
+ $spec eq 'cdata' && do {
|
||
|
+ $cdata_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # sdata handler
|
||
|
+ $spec =~ /^\|(.*)\|$/ && do {
|
||
|
+ $sdata_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic sdata handler
|
||
|
+ $spec eq 'sdata' && do {
|
||
|
+ $sdata_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # record-end handler
|
||
|
+ $spec eq 're' && do {
|
||
|
+ $re_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # processing-instruction handler
|
||
|
+ $spec eq 'pi' && do {
|
||
|
+ $pi_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # entity-reference handler
|
||
|
+ $spec =~ /^\&(.*);$/ && do {
|
||
|
+ $entity_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic entity-reference handler
|
||
|
+ $spec eq 'entity' && do {
|
||
|
+ $entity_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # start-subdoc handler
|
||
|
+ $spec =~ /^\{([^\/].*|)\}$/ && do {
|
||
|
+ $start_subdoc_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic start-subdoc handler
|
||
|
+ $spec eq 'start_subdoc' && do {
|
||
|
+ $start_subdoc_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # end-subdoc handler
|
||
|
+ $spec =~ /^\{\/(.*)\}$/ && do {
|
||
|
+ $end_subdoc_handlers->{$1} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # generic end-subdoc handler
|
||
|
+ $spec eq 'end_subdoc' && do {
|
||
|
+ $end_subdoc_handlers->{''} = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ # conforming handler
|
||
|
+ $spec eq 'conforming' && do {
|
||
|
+ $conforming_handler = $handler;
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+
|
||
|
+ die "Bad SGML handler pattern: $spec\n";
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
+
|
||
|
+#
|
||
|
+# The first argument on the command line is a perl module which will be
|
||
|
+# read here and evaluated in the 'main' package -- everything else will
|
||
|
+# be an argument to it.
|
||
|
+#
|
||
|
+package main;
|
||
|
+
|
||
|
+$ARGV = shift;
|
||
|
+unless ($ARGV eq '' || do 'sgmlspl-specs/' . $ARGV || do $ARGV) {
|
||
|
+ if (!-e $ARGV) {
|
||
|
+ die "FATAL: $ARGV does not exist.\n";
|
||
|
+ } elsif (!-r $ARGV) {
|
||
|
+ die "FATAL: $ARGV exists but is read-protected.\n";
|
||
|
+ } elsif ($@) {
|
||
|
+ die "FATAL: $@\n";
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
+
|
||
|
+#
|
||
|
+# Do the actual work, using the SGMLS package.
|
||
|
+#
|
||
|
+package SGMLS_PL;
|
||
|
+
|
||
|
+$parse = new SGMLS(main::STDIN); # a new parse object
|
||
|
+
|
||
|
+&{$start_document_handler}(); # run the start handler.
|
||
|
+
|
||
|
+ # run the appropriate handler for each
|
||
|
+ # event
|
||
|
+while ($event = $parse->next_event) {
|
||
|
+ my $type = $event->type;
|
||
|
+ SWITCH: {
|
||
|
+ $type eq 'start_element' && do {
|
||
|
+ &{($start_element_handlers->{$event->data->name}||
|
||
|
+ $start_element_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'end_element' && do {
|
||
|
+ &{($end_element_handlers->{$event->data->name}||
|
||
|
+ $end_element_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'cdata' && do {
|
||
|
+ &{$cdata_handler}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'sdata' && do {
|
||
|
+ &{($sdata_handlers->{$event->data}||
|
||
|
+ $sdata_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 're' && do {
|
||
|
+ &{$re_handler}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'pi' && do {
|
||
|
+ &{$pi_handler}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'entity' && do {
|
||
|
+ &{($entity_handlers->{$event->data->name}||
|
||
|
+ $entity_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'start_subdoc' && do {
|
||
|
+ &{($start_subdoc_handlers->{$event->data->name}||
|
||
|
+ $start_subdoc_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'end_subdoc' && do {
|
||
|
+ &{($end_subdoc_handlers->{$event->data->name}||
|
||
|
+ $end_subdoc_handlers->{''} || sub {})}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+ $type eq 'conforming' && do {
|
||
|
+ &{$conforming_handler}($event->data,$event);
|
||
|
+ last SWITCH;
|
||
|
+ };
|
||
|
+
|
||
|
+ die "Unknown SGML event type: $type\n";
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
+&{$end_document_handler}(); # run the end handler
|
||
|
--- libsgmls-perl-1.03ii.orig/sgmlspl.pl
|
||
|
+++ libsgmls-perl-1.03ii/sgmlspl.pl
|
||
|
@@ -238,7 +238,7 @@
|
||
|
package main;
|
||
|
|
||
|
$ARGV = shift;
|
||
|
-unless ($ARGV eq '' || do $ARGV) {
|
||
|
+unless ($ARGV eq '' || do 'sgmlspl-specs/' . $ARGV || do $ARGV) {
|
||
|
if (!-e $ARGV) {
|
||
|
die "FATAL: $ARGV does not exist.\n";
|
||
|
} elsif (!-r $ARGV) {
|
||
|
--- libsgmls-perl-1.03ii.orig/SGMLS.pm
|
||
|
+++ libsgmls-perl-1.03ii/SGMLS.pm
|
||
|
@@ -1,7 +1,7 @@
|
||
|
package SGMLS;
|
||
|
use Carp;
|
||
|
|
||
|
-$version = '$Revision: 1.14 $';
|
||
|
+$version = '$Revision: 1.1 $';
|
||
|
|
||
|
=head1 NAME
|
||
|
|