]> git.pond.sub.org Git - empserver/blobdiff - info/emp2html.pl
New info Hvy-Plastic
[empserver] / info / emp2html.pl
index 1a85697b9b0b3eff963afe00b8a5848bb132e2d8..ce131d8d66ebce45ee7588c2aab14e5af848ce93 100644 (file)
@@ -3,26 +3,42 @@
 use strict;
 use warnings;
 
-my $esc="\\";
+my $esc = "\\";
+my $ignore = 0;
 my @a;
 
+print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n";
+print "   \"http://www.w3.org/TR/html4/strict.dtd\">\n";
+print "<html>\n";
+print "<head>\n";
+
 line: while (<>) {
     chomp;                     # strip record separator
-    s/([^\\](\\\\)*)\\\".*/$1/g; # strip comments
+    s/((^|[^\\])(\\\\)*)\\\".*/$1/g; # strip comments
 
     @a = req($_);
 
     if (!@a) {
-       print htmlify($_), "\n";
+       print htmlify($_), "\n" unless $ignore;
        next line;
     }
 
     # requests
 
+    if ($a[1] eq "ig") { $ignore = 1; next line; }
+    if ($ignore) {
+       $ignore = 0 if $a[1] eq "..";
+       next line;
+    }
+
     if ($a[1] eq "TH") {
        @a = checkarg(2, @a);
        $a[3] = htmlify($a[3]);
-       print "<title>$a[2] : $a[3]</title><h1>$a[2] : $a[3]</h1>\n";
+       print "<title>$a[2] : $a[3]</title>\n";
+       print "</head>\n";
+       print "<body>\n";
+       print "<h1>$a[2] : $a[3]</h1>\n";
+       print "<p>\n";
        next line;
     }
 
@@ -43,6 +59,7 @@ line: while (<>) {
        @a = checkarg(1, @a);
        $a[2] = htmlify($a[2]);
        print "<h2>$a[2]</h2>\n";
+       print "<p>\n";
        next line;
     }
 
@@ -51,7 +68,7 @@ line: while (<>) {
 
     if ($a[1] =~ /NF|nf/i) { printf (("<p><pre>\n")); next line; }
     if ($a[1] =~ /FI|fi/i) { printf (("</pre><p>\n")); next line; }
-    if ($a[1] eq "s1") { printf (("<hr> \n")); next line; }
+    if ($a[1] eq "s1") { printf (("<hr><p>\n")); next line; }
     if ($a[1] eq "br") { printf "<br>\n"; next line; }
 
     if ($a[1] eq "SA") {
@@ -66,12 +83,15 @@ line: while (<>) {
     # ignore unknown request
 }
 
+print "</body>\n";
+print "</html>\n";
+
 sub req {
     local ($_) = @_;
-    if (/^([\.\'])[ \t]*([^ ]+) *(.*)/) {
+    if (/^([\.\'])[ \t]*([^ ]*) *(.*)/) {
        my @a = ($1, $2);
        $_ = $3;
-       while (/(\"((\\.|[^\\\"])*)(\"|\Z))|(([^ ]|\\.)+) */g) {
+       while (/\G(\"((\\.|[^\\\"])*)(\"|\Z))|\G(([^ ]|\\.)+) */g) {
            push(@a, $2 || $5);
        }
        return @a;