338 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			338 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								## HTML output
							 | 
						||
| 
								 | 
							
								# Copyright (C) 1993-1995 Ian Jackson.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# This file 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, or (at your option)
							 | 
						||
| 
								 | 
							
								# any later version.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# It 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 GNU Emacs; see the file COPYING.  If not, write to
							 | 
						||
| 
								 | 
							
								# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
							 | 
						||
| 
								 | 
							
								# Boston, MA 02111-1307, USA.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# (Note: I do not consider works produced using these BFNN processing
							 | 
						||
| 
								 | 
							
								# tools to be derivative works of the tools, so they are NOT covered
							 | 
						||
| 
								 | 
							
								# by the GPL.  However, I would appreciate it if you credited me if
							 | 
						||
| 
								 | 
							
								# appropriate in any documents you format using BFNN.)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%saniarray= ('<','lt', '>','gt', '&','amp', '"','quot');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_init {
							 | 
						||
| 
								 | 
							
								    $html_prefix = './'.$prefix;
							 | 
						||
| 
								 | 
							
								    $html_prefix =~ s:^\.//:/:;
							 | 
						||
| 
								 | 
							
								    system('rm','-r',"$html_prefix.html");
							 | 
						||
| 
								 | 
							
								    system('mkdir',"$html_prefix.html");
							 | 
						||
| 
								 | 
							
								    open(HTML,">$html_prefix.html/index.html");
							 | 
						||
| 
								 | 
							
								    print HTML "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\n";
							 | 
						||
| 
								 | 
							
								    print HTML "<html>\n";
							 | 
						||
| 
								 | 
							
								    $html_needpara= -1;
							 | 
						||
| 
								 | 
							
								    $html_end='';
							 | 
						||
| 
								 | 
							
								    chop($html_date=`date '+%d %B %Y'`);
							 | 
						||
| 
								 | 
							
								    chop($html_year=`date '+%Y'`);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startup {
							 | 
						||
| 
								 | 
							
								    print HTML <<END;
							 | 
						||
| 
								 | 
							
								<head><title>
							 | 
						||
| 
								 | 
							
								$user_title
							 | 
						||
| 
								 | 
							
								</title>
							 | 
						||
| 
								 | 
							
								<link rev="made" href="mailto:$user_authormail">
							 | 
						||
| 
								 | 
							
								<link rel="Contents" href="index.html">
							 | 
						||
| 
								 | 
							
								<link rel="Start" href="index.html">
							 | 
						||
| 
								 | 
							
								<META name="description"
							 | 
						||
| 
								 | 
							
								      content="Frequently asked questions and answers (FAQ) for FFTW.">
							 | 
						||
| 
								 | 
							
								<link rel="Bookmark" title="FFTW FAQ" href="index.html">
							 | 
						||
| 
								 | 
							
								<LINK rel="Bookmark" title="FFTW Home Page"
							 | 
						||
| 
								 | 
							
								      href="http://www.fftw.org">
							 | 
						||
| 
								 | 
							
								<LINK rel="Bookmark" title="FFTW Manual"
							 | 
						||
| 
								 | 
							
								      href="http://www.fftw.org/doc/">
							 | 
						||
| 
								 | 
							
								</head><body text="#000000" bgcolor="#FFFFFF"><h1>
							 | 
						||
| 
								 | 
							
								$user_title
							 | 
						||
| 
								 | 
							
								</h1>
							 | 
						||
| 
								 | 
							
								END
							 | 
						||
| 
								 | 
							
								    &html_readrefs($_[0]);
							 | 
						||
| 
								 | 
							
								    if (length($user_copyrightref)) {
							 | 
						||
| 
								 | 
							
								        local ($refn) = $qrefn{$user_copyrightref};
							 | 
						||
| 
								 | 
							
								        if (!length($refn)) {
							 | 
						||
| 
								 | 
							
								            warn "unknown question (copyright) `$user_copyrightref'";
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $refn =~ m/(\d+)\.(\d+)/;
							 | 
						||
| 
								 | 
							
								        local ($s,$n) = ($1,$2);
							 | 
						||
| 
								 | 
							
								        $html_copyrighthref= ($s == $html_sectionn)?'':"section$s.html";
							 | 
						||
| 
								 | 
							
								        $html_copyrighthref.= "#$qn2ref{$s,$n}";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_close {
							 | 
						||
| 
								 | 
							
								    print HTML $html_end,"<address>\n$user_author\n";
							 | 
						||
| 
								 | 
							
								    print HTML "- $html_date\n</address><br>\n";
							 | 
						||
| 
								 | 
							
								    print HTML "Extracted from $user_title,\n";
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"$html_copyrighthref\">" if length($html_copyrighthref);
							 | 
						||
| 
								 | 
							
								    print HTML "Copyright © $html_year $user_copyholder.";
							 | 
						||
| 
								 | 
							
								    print HTML "</A>" if length($html_copyrighthref);
							 | 
						||
| 
								 | 
							
								    print HTML "\n</body></html>\n";
							 | 
						||
| 
								 | 
							
								    close(HTML);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startmajorheading {
							 | 
						||
| 
								 | 
							
								    local ($ref, $this,$next,$back) = @_;
							 | 
						||
| 
								 | 
							
								    local ($nextt,$backt);
							 | 
						||
| 
								 | 
							
								    $this =~ s/^Section /section/;  $html_sectionn= $ref;
							 | 
						||
| 
								 | 
							
								    $next =~ s/^Section /section/ && ($nextt= $sn2title{$'});
							 | 
						||
| 
								 | 
							
								    $back =~ s/^Section /section/ ? ($backt= $sn2title{$'}) : ($back='');
							 | 
						||
| 
								 | 
							
								    if ($html_sectionn) {
							 | 
						||
| 
								 | 
							
								        &html_close;
							 | 
						||
| 
								 | 
							
								        open(HTML,">$html_prefix.html/$this.html");
							 | 
						||
| 
								 | 
							
									print HTML "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\n";
							 | 
						||
| 
								 | 
							
								        print HTML "<html>\n";
							 | 
						||
| 
								 | 
							
								        $html_end= "<hr>\n";
							 | 
						||
| 
								 | 
							
								        $html_end.= "Next: <a href=\"$next.html\" rel=precedes>$nextt</a>.<br>\n"
							 | 
						||
| 
								 | 
							
								            if $next;
							 | 
						||
| 
								 | 
							
								        $html_end.= "Back: <a href=\"$back.html\" rev=precedes>$backt</a>.<br>\n"
							 | 
						||
| 
								 | 
							
								            if $back;
							 | 
						||
| 
								 | 
							
								        $html_end.= "<a href=\"index.html\" rev=subdocument>";
							 | 
						||
| 
								 | 
							
								        $html_end.= "Return to contents</a>.<p>\n";
							 | 
						||
| 
								 | 
							
								        print HTML <<END;
							 | 
						||
| 
								 | 
							
								<head><title>
							 | 
						||
| 
								 | 
							
								$user_brieftitle - Section $html_sectionn
							 | 
						||
| 
								 | 
							
								</title>
							 | 
						||
| 
								 | 
							
								<link rev="made" href="mailto:$user_authormail">
							 | 
						||
| 
								 | 
							
								<link rel="Contents" href="index.html">
							 | 
						||
| 
								 | 
							
								<link rel="Start" href="index.html">
							 | 
						||
| 
								 | 
							
								END
							 | 
						||
| 
								 | 
							
								        print HTML "<link rel=\"Next\" href=\"$next.html\">" if $next;
							 | 
						||
| 
								 | 
							
									print HTML "<link rel=\"Previous\" href=\"$back.html\">" if $back;
							 | 
						||
| 
								 | 
							
								        print HTML <<END;
							 | 
						||
| 
								 | 
							
								<link rel="Bookmark" title="FFTW FAQ" href="index.html">
							 | 
						||
| 
								 | 
							
								</head><body text="#000000" bgcolor="#FFFFFF"><h1>
							 | 
						||
| 
								 | 
							
								$user_brieftitle - Section $html_sectionn <br>
							 | 
						||
| 
								 | 
							
								END
							 | 
						||
| 
								 | 
							
								        $html_needpara= -1;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    else {
							 | 
						||
| 
								 | 
							
									print HTML "\n<h1>\n";
							 | 
						||
| 
								 | 
							
									$html_needpara=-1;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endmajorheading {
							 | 
						||
| 
								 | 
							
								    print HTML "\n</h1>\n\n";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startminorheading {
							 | 
						||
| 
								 | 
							
								    local ($ref, $this) = @_;
							 | 
						||
| 
								 | 
							
								    $html_needpara=0;
							 | 
						||
| 
								 | 
							
								    $this =~ m/^Question (\d+)\.(\d+)/;
							 | 
						||
| 
								 | 
							
								    local ($s,$n) = ($1,$2);
							 | 
						||
| 
								 | 
							
								    print HTML "\n<h2><A name=\"$qn2ref{$s,$n}\">\n";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endminorheading {
							 | 
						||
| 
								 | 
							
								    print HTML "\n</A></h2>\n\n";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_newsgroup { &arg('newsgroup'); }
							 | 
						||
| 
								 | 
							
								sub html_endnewsgroup { &endarg('newsgroup'); }
							 | 
						||
| 
								 | 
							
								sub html_do_newsgroup {
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"news:$_[0]\"><code>$_[0]</code></A>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_email { &arg('email'); }
							 | 
						||
| 
								 | 
							
								sub html_endemail { &endarg('email'); }
							 | 
						||
| 
								 | 
							
								sub html_do_email {
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"mailto:$_[0]\"><code>$_[0]</code></A>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_courier    { print HTML "<code>" ; }
							 | 
						||
| 
								 | 
							
								sub html_endcourier { print HTML "</code>"; }
							 | 
						||
| 
								 | 
							
								sub html_italic     { print HTML "<i>"   ; }
							 | 
						||
| 
								 | 
							
								sub html_enditalic  { print HTML "</i>"  ; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_docref { &arg('docref'); }
							 | 
						||
| 
								 | 
							
								sub html_enddocref { &endarg('docref'); }
							 | 
						||
| 
								 | 
							
								sub html_do_docref {
							 | 
						||
| 
								 | 
							
								    if (!defined($html_refval{$_[0]})) {
							 | 
						||
| 
								 | 
							
								        warn "undefined HTML reference $_[0]";
							 | 
						||
| 
								 | 
							
								        $html_refval{$n}='UNDEFINED';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"$html_refval{$_[0]}\">";
							 | 
						||
| 
								 | 
							
								    &recurse($_[0]);
							 | 
						||
| 
								 | 
							
								    print HTML "</A>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_readrefs {
							 | 
						||
| 
								 | 
							
								    local ($p);
							 | 
						||
| 
								 | 
							
								    open(HTMLREFS,"<$_[0]") || (warn("failed to open HTML refs $_[0]: $!"),return);
							 | 
						||
| 
								 | 
							
								    while(<HTMLREFS>) {
							 | 
						||
| 
								 | 
							
								        next if m/^\\\s/;
							 | 
						||
| 
								 | 
							
								        s/\s*\n$//;
							 | 
						||
| 
								 | 
							
								        if (s/^\\prefix\s*//) {
							 | 
						||
| 
								 | 
							
								            $p= $'; next;
							 | 
						||
| 
								 | 
							
								        } elsif (s/^\s*(\S.*\S)\s*\\\s*//) {
							 | 
						||
| 
								 | 
							
								            $_=$1; $v=$';
							 | 
						||
| 
								 | 
							
								            s/\\\\/\\/g;
							 | 
						||
| 
								 | 
							
								            $html_refval{$_}= $p.$v;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            warn("ununderstood line in HTML refs >$_<");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    close(HTMLREFS);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								sub html_ftpsilent { &arg('ftpsilent'); }
							 | 
						||
| 
								 | 
							
								sub html_endftpsilent { &endarg('ftpsilent'); }
							 | 
						||
| 
								 | 
							
								sub html_do_ftpsilent {
							 | 
						||
| 
								 | 
							
								    if ($_[0] =~ m/:/) {
							 | 
						||
| 
								 | 
							
								        $html_ftpsite= $`;
							 | 
						||
| 
								 | 
							
								        $html_ftpdir= $'.'/';
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								        $html_ftpsite= $_[0];
							 | 
						||
| 
								 | 
							
								        $html_ftpdir= '';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_ftpon { &arg('ftpon'); }
							 | 
						||
| 
								 | 
							
								sub html_endftpon { &endarg('ftpon'); }
							 | 
						||
| 
								 | 
							
								sub html_do_ftpon {
							 | 
						||
| 
								 | 
							
								#print STDERR "ftpon($_[0])\n";
							 | 
						||
| 
								 | 
							
								    $html_ftpsite= $_[0]; $html_ftpdir= '';
							 | 
						||
| 
								 | 
							
								    print HTML "<code>";
							 | 
						||
| 
								 | 
							
								    &recurse($_[0]);
							 | 
						||
| 
								 | 
							
								    print HTML "</code>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_ftpin { &arg('ftpin'); }
							 | 
						||
| 
								 | 
							
								sub html_endftpin { &endarg('ftpin'); }
							 | 
						||
| 
								 | 
							
								sub html_do_ftpin {
							 | 
						||
| 
								 | 
							
								#print STDERR "ftpin($_[0])\n";
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"ftp://$html_ftpsite$html_ftpdir$_[0]\"><code>";
							 | 
						||
| 
								 | 
							
								    &recurse($_[0]);
							 | 
						||
| 
								 | 
							
								    print HTML "</code></A>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_text {
							 | 
						||
| 
								 | 
							
								    print HTML "\n<p>\n" if $html_needpara > 0;
							 | 
						||
| 
								 | 
							
								    $html_needpara=0;
							 | 
						||
| 
								 | 
							
								    $html_stuff= &html_sanitise($_[0]);
							 | 
						||
| 
								 | 
							
								    while ($html_stuff =~ s/^(.{40,70}) //) {
							 | 
						||
| 
								 | 
							
								        print HTML "$1\n";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    print HTML $html_stuff;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_tab {
							 | 
						||
| 
								 | 
							
								    $htmltabignore++ || warn "html tab ignored";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_newline       { print HTML "<br>\n"    ;                       }
							 | 
						||
| 
								 | 
							
								sub html_startverbatim { print HTML "<pre>\n"   ;                       }
							 | 
						||
| 
								 | 
							
								sub html_verbatim      { print HTML &html_sanitise($_[0]),"\n";         }
							 | 
						||
| 
								 | 
							
								sub html_endverbatim   { print HTML "</pre>\n"  ;  $html_needpara= -1;  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endpara {
							 | 
						||
| 
								 | 
							
								    $html_needpara || $html_needpara++;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_finish {
							 | 
						||
| 
								 | 
							
								    &html_close;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startindex {
							 | 
						||
| 
								 | 
							
								    print HTML "<ul>\n";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endindex {
							 | 
						||
| 
								 | 
							
								    print HTML "</ul><hr>\n";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startindexitem {
							 | 
						||
| 
								 | 
							
								    local ($ref,$qval) = @_;
							 | 
						||
| 
								 | 
							
								    $qval =~ m/Q(\d+)\.(\d+)/;
							 | 
						||
| 
								 | 
							
								    local ($s,$n) = ($1,$2);
							 | 
						||
| 
								 | 
							
								    print HTML "<li><a href=\"";
							 | 
						||
| 
								 | 
							
								    print HTML ($s == $html_sectionn)?'':"section$s.html";
							 | 
						||
| 
								 | 
							
								    print HTML "#$qn2ref{$s,$n}\" rel=subdocument>Q$s.$n. ";
							 | 
						||
| 
								 | 
							
								    $html_indexunhead='';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startindexmainitem {
							 | 
						||
| 
								 | 
							
								    local ($ref,$s) = @_;
							 | 
						||
| 
								 | 
							
								    $s =~ m/\d+/; $s= $&;
							 | 
						||
| 
								 | 
							
								    print HTML "<br><br>" if ($s > 1);
							 | 
						||
| 
								 | 
							
								    print HTML "<li><b><font size=\"+2\"><a href=\"section$s.html\" rel=subdocument>Section $s.  ";
							 | 
						||
| 
								 | 
							
								    $html_indexunhead='</font></b>';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endindexitem {
							 | 
						||
| 
								 | 
							
								    print HTML "</a>$html_indexunhead\n";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startlist {
							 | 
						||
| 
								 | 
							
								    print HTML "\n";
							 | 
						||
| 
								 | 
							
								    $html_itemend="<ul>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endlist {
							 | 
						||
| 
								 | 
							
								    print HTML "$html_itemend\n</ul>\n";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_item {
							 | 
						||
| 
								 | 
							
								    print HTML "$html_itemend\n<li>";
							 | 
						||
| 
								 | 
							
								    $html_itemend="";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startpackedlist {
							 | 
						||
| 
								 | 
							
								    print HTML "\n";
							 | 
						||
| 
								 | 
							
								    $html_itemend="<dir>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endpackedlist {
							 | 
						||
| 
								 | 
							
								    print HTML "$html_itemend\n</dir>\n";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_packeditem {
							 | 
						||
| 
								 | 
							
								    print HTML "$html_itemend\n<li>";
							 | 
						||
| 
								 | 
							
								    $html_itemend="";
							 | 
						||
| 
								 | 
							
								    $html_needpara=-1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_startindent   { print HTML "<blockquote>\n"; }
							 | 
						||
| 
								 | 
							
								sub html_endindent     { print HTML "</blockquote>\n"; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_pageref {
							 | 
						||
| 
								 | 
							
								    local ($ref,$sq) = @_;
							 | 
						||
| 
								 | 
							
								    $sq =~ m/(\d+)\.(\d+)/;
							 | 
						||
| 
								 | 
							
								    local ($s,$n) = ($1,$2);
							 | 
						||
| 
								 | 
							
								    print HTML "<A href=\"";
							 | 
						||
| 
								 | 
							
								    print HTML ($s == $html_sectionn)?'':"section$s.html";
							 | 
						||
| 
								 | 
							
								    print HTML "#$qn2ref{$s,$n}\">Q$sq \`";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_endpageref {
							 | 
						||
| 
								 | 
							
								    print HTML "'</A>";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sub html_sanitise {
							 | 
						||
| 
								 | 
							
								    local ($in) = @_;
							 | 
						||
| 
								 | 
							
								    local ($out);
							 | 
						||
| 
								 | 
							
								    while ($in =~ m/[<>&"]/) {
							 | 
						||
| 
								 | 
							
								        $out.= $`. '&'. $saniarray{$&}. ';';
							 | 
						||
| 
								 | 
							
								        $in=$';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    $out.= $in;
							 | 
						||
| 
								 | 
							
								    $out;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1;
							 |