X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/168e428fc4dfcf7f4d377d137743d8332784fa35..068aaea8b5ac80809a1b860f63c625b3ea389ded:/doc/doc-docbook/Pre-xml diff --git a/doc/doc-docbook/Pre-xml b/doc/doc-docbook/Pre-xml index 113e6f9d0..4e28ada09 100755 --- a/doc/doc-docbook/Pre-xml +++ b/doc/doc-docbook/Pre-xml @@ -1,6 +1,6 @@ #! /usr/bin/perl -# $Cambridge: exim/doc/doc-docbook/Pre-xml,v 1.1 2005/06/16 10:32:31 ph10 Exp $ +# $Cambridge: exim/doc/doc-docbook/Pre-xml,v 1.2 2005/11/10 12:30:13 ph10 Exp $ # Script to pre-process XML input before processing it for various purposes. # Options specify which transformations are to be done. Monospaced literal @@ -21,12 +21,18 @@ # Replace © by (c) # Put quotes round text # Put quotes round text - +# # -bookinfo: Remove the element from the file - +# # -fi: Replace "fi" by fi except when it is in an XML element, or # inside a . - +# +# -html: Certain things are done only for HTML output: +# +# If is followed by optional # space and then a +# newline, the space and newline are removed, because otherwise you +# get a blank line in the HTML output. +# # -noindex Remove the XML to generate a Concept and an Options index. # -oneindex Ditto, but add XML to generate a single index. @@ -50,7 +56,7 @@ if ($ascii) $s =~ s/†/*/g; $s =~ s/‡/**/g; $s =~ s/ / /g; - $s =~ s/©/(c)/g; + $s =~ s/©/(c)/g; $s =~ s//"/g; $s =~ s/<\/quote>/"/g; } @@ -64,7 +70,9 @@ $s; $abstract = 0; $ascii = 0; $bookinfo = 0; +$html = 0; $inliteral = 0; +$inliterallayout = 0; $ligatures = 0; $madeindex = 0; $noindex = 0; @@ -76,6 +84,7 @@ foreach $arg (@ARGV) elsif ($arg eq "-abstract") { $abstract = 1; } elsif ($arg eq "-ascii") { $ascii = 1; } elsif ($arg eq "-bookinfo") { $bookinfo = 1; } + elsif ($arg eq "-html") { $html = 1; } elsif ($arg eq "-noindex") { $noindex = 1; } elsif ($arg eq "-oneindex") { $oneindex = 1; } else { die "** Pre-xml: Unknown option \"$arg\"\n"; } @@ -99,6 +108,7 @@ while () if (/^/) { + $_ = substr($_, 0, -1) if $html; print; while () { @@ -128,16 +138,21 @@ while () # A line that is not in a monospaced literal block; keep track of which # parts are in and which not. The latter get processed by the - # function above. + # function above. Items in get quoted unless they are also in + # a block, or are already being quoted. for (;;) { + $_ = substr($_, 0, -1) if $html && /^]*>\s*\n$/; + $inliterallayout = 1 if /^(.*)$/) + if (/^(.*?)<\/literal>(?!<\/quote>)(.*)$/) { print $1; - print "\"" if $ascii; + print "\"" if $ascii && !$inliterallayout; print ""; $inliteral = 0; $_ = "$2\n"; @@ -153,11 +168,11 @@ while () else { - if (/^(.*?)(.*)$/) + if (/^(.*?)(?)(.*)$/) { print &process($1); print ""; - print "\"" if $ascii; + print "\"" if $ascii && !$inliterallayout; $inliteral = 1; $_ = "$2\n"; }