--- 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