From f055f31efca6f1beea3fb65a06e16265e481e63e Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Thu, 27 Jan 2005 10:25:35 +0000 Subject: [PATCH] Tidies for HTML and Texinfo versions of the new spec. --- doc/doc-scripts/g2h | 40 +++++++++++++++++++++++++++------------- doc/doc-scripts/g2t | 7 +++++-- doc/doc-src/spec.src | 44 ++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 74 insertions(+), 17 deletions(-) diff --git a/doc/doc-scripts/g2h b/doc/doc-scripts/g2h index e940e669b..cbc02dbb6 100755 --- a/doc/doc-scripts/g2h +++ b/doc/doc-scripts/g2h @@ -1,5 +1,5 @@ #! /usr/bin/perl -w -# $Cambridge: exim/doc/doc-scripts/g2h,v 1.1 2004/10/07 15:04:35 ph10 Exp $ +# $Cambridge: exim/doc/doc-scripts/g2h,v 1.2 2005/01/27 10:25:35 ph10 Exp $ # This is a script that turns the SGCAL source of Exim's documentation into # HTML. It can be used for both the filter document and the main Exim @@ -180,6 +180,7 @@ $key = "$text"; $key =~ s/<[^>]+>//g; $key =~ s/&#(\d+);/chr($1)/eg; $key =~ s/^`+//; +$key =~ s/^"//; # Turn all spaces in the text into   so that they don't ever split. # However, there may be spaces in the HTML that already exists in the @@ -755,7 +756,10 @@ elsif (/^\.display\b/) # Handle configuration option definitions -elsif (/^\.startconf\b/) {} +elsif (/^\.startconf\s+(.*)/) + { + $confuse = $1; + } elsif (/^\.conf\b/) { @@ -781,6 +785,7 @@ elsif (/^\.conf\b/) &setpar(0); &handle_index($option, 0); print OUT "

$option

\n" . + "Use:  $confuse
" . "Type:  $type
Default:  $default
\n"; } @@ -831,7 +836,7 @@ elsif (/^\.startoptions\b/) {} elsif (/^\.option\s+(.*)/) { my($arg) = $1; - $arg =~ s/^"(.*)"$/$1/; + $arg =~ s/"([^"]*)"/$1/g; print OUT "
"; &setpar(0); @@ -881,7 +886,10 @@ open (IN, $source_file) || die "Can't open $source_file (first pass)\n"; $_ = ; # At the start of the specification text, there are some textual replacement -# definitions. They set values, but not cross-references. +# definitions. They set values, but not cross-references. They may be preceded +# by comments. + +$_ = while (/^\.(\s|$)/); while (/^\.r?set\s+(\S+)\s+"?([^"]+)\"?\s*$/) { @@ -1300,7 +1308,7 @@ foreach $key (keys %$hash) { my($initial) = substr($key,0,1); $initial = "\U$initial"; - $indexindex{$initial} = 1 if $initial ge "A"; + $indexindex{$initial} = 1 if $initial ge "A" && $initial le "Z"; } print INDEX "

\n"; @@ -1314,19 +1322,24 @@ my($letter) = ""; print INDEX "

\n"; foreach $key (sort - { ("\L$a" eq "\L$b")? ("$a" cmp "$b") : ("\L$a" cmp "\L$b") } + { + my($aa) = $a; + my($bb) = $b; + + $aa =~ s/^\x93//; # Seems like the actual char values are + $bb =~ s/^\x93//; # set by this time, not "“" + + return ("\L$aa" eq "\L$bb")? ("$aa" cmp "$bb") : ("\L$aa" cmp "\L$bb"); + } keys %$hash) { my($initial) = substr($key,0,1); $initial = "\U$initial"; - if ($initial ne $letter) + if ($initial ne $letter && $initial ge "A" && $initial le "Z") { - if ($initial ge "A") - { - print INDEX "
\n" if $letter ne ""; - print INDEX "\n"; - print INDEX "\U$initial\E
\n"; - } + print INDEX "
\n"; + print INDEX "\n"; + print INDEX "\U$initial\E
\n"; $letter = $initial; } print INDEX "$$hash{$key}
\n"; @@ -1367,6 +1380,7 @@ $html = "html"; $chapsplit = 0; $cindex_tocn = 0; +$confuse = ""; $file_base = ""; $index_count = 0; $inem = 0; diff --git a/doc/doc-scripts/g2t b/doc/doc-scripts/g2t index 30c713c08..6ff2bb3f3 100755 --- a/doc/doc-scripts/g2t +++ b/doc/doc-scripts/g2t @@ -1,5 +1,5 @@ #! /usr/bin/perl -w -# $Cambridge: exim/doc/doc-scripts/g2t,v 1.1 2004/10/07 15:04:35 ph10 Exp $ +# $Cambridge: exim/doc/doc-scripts/g2t,v 1.2 2005/01/27 10:25:35 ph10 Exp $ # A Perl script to turn the SGCAL source of the Exim documentation into # Texinfo input, more or less... @@ -892,8 +892,10 @@ while (<>) # we sort out the menu and copy their data. This is all done in a # subroutine that is shared with options. - elsif (/^\.startconf/) + elsif (/^\.startconf\s+(.*)/) { + $confuse = $1; + $confuse = &dequote($confuse); handle_subsection("conf"); next; } @@ -1069,6 +1071,7 @@ $doing_filter = 0; $skip_else = 0; $in_itemize = 0; $lastwasitem = 0; +$confuse = ""; $chapter_number = 0; $section_number = 0; diff --git a/doc/doc-src/spec.src b/doc/doc-src/spec.src index 0819e718b..5ecbd9e9e 100644 --- a/doc/doc-src/spec.src +++ b/doc/doc-src/spec.src @@ -1,4 +1,4 @@ -. $Cambridge: exim/doc/doc-src/spec.src,v 1.4 2005/01/26 14:52:08 ph10 Exp $ +. $Cambridge: exim/doc/doc-src/spec.src,v 1.5 2005/01/27 10:25:35 ph10 Exp $ . .set version "4.50" .set previousversion "4.40" @@ -22236,6 +22236,7 @@ sender address in the ACL that is run for a \\VRFY\\ command. .section ACL verbs The ACL verbs are as follows: .numberpars $. +.index \accept\, ACL verb \accept\: If all the conditions are met, the ACL returns `accept'. If any of the conditions are not met, what happens depends on whether \endpass\ appears among the conditions (for syntax see below). If the failing condition is before @@ -22252,6 +22253,7 @@ to the next statement. If it does match, the recipient is verified, and the command is accepted if verification succeeds. However, if verification fails, the ACL yields `deny', because the failing condition is after \endpass\. .nextp +.index \defer\, ACL verb \defer\: If all the conditions are met, the ACL returns `defer' which, in an SMTP session, causes a 4\*xx*\ response to be given. For a non-SMTP ACL, \defer\ is the same as \deny\, because there is no way of sending a temporary @@ -22259,6 +22261,7 @@ error. For a \\RCPT\\ command, \defer\ is much the same as using a \%redirect%\ router and \":defer:"\ while verifying, but the \defer\ verb can be used in any ACL, and even for a recipient it might be a simpler approach. .nextp +.index \deny\, ACL verb \deny\: If all the conditions are met, the ACL returns `deny'. If any of the conditions are not met, control is passed to the next ACL statement. For example, @@ -22267,6 +22270,7 @@ deny dnslists = blackholes.mail-abuse.org .endd rejects commands from hosts that are on a DNS black list. .nextp +.index \discard\, ACL verb \discard\: This verb behaves like \accept\, except that it returns `discard' from the ACL instead of `accept'. It is permitted only on ACLs that are concerned with receiving messages, and it causes recipients to be discarded. @@ -22279,6 +22283,7 @@ message's recipients are discarded. Recipients that are discarded before \\DATA\\ do not appear in the log line when the \log@_recipients\ log selector is set. .nextp +.index \drop\, ACL verb \drop\: This verb behaves like \deny\, except that an SMTP connection is forcibly closed after the 5\*xx*\ error message has been sent. For example: .display asis @@ -22291,6 +22296,7 @@ drop message = I don't take more than 20 RCPTs There is no difference between \deny\ and \drop\ for the connect-time ACL. The connection is always dropped after sending a 550 response. .nextp +.index \require\, ACL verb \require\: If all the conditions are met, control is passed to the next ACL statement. If any of the conditions are not met, the ACL returns `deny'. For example, when checking a \\RCPT\\ command, @@ -22300,6 +22306,7 @@ require verify = sender passes control to subsequent statements only if the message's sender can be verified. Otherwise, it rejects the command. .nextp +.index \warn\, ACL verb \warn\: If all the conditions are met, a header line is added to an incoming message and/or a line is written to Exim's main log. In all cases, control passes to the next ACL statement. The text of the added header line and the log @@ -22447,6 +22454,7 @@ The ACL modifiers are as follows: .startitems .item "control = <>" +.index \control\, ACL modifier .em This modifier affects the subsequent processing of the SMTP connection or of an incoming message that is accepted. The effect of the first type of control @@ -22501,6 +22509,7 @@ require control = no_multiline_response .endp .item "delay = <

>" +.index \recipients\, ACL condition .index recipient||ACL checking .index ~~ACL||testing a recipient This condition is relevant only after a \\RCPT\\ command. It checks the entire @@ -23012,6 +23040,7 @@ recipient address against a list of recipients. .em .item "regex = <>" +.index \regex\, ACL condition .index ~~ACL||testing by regex matching This condition is available only when Exim is compiled with the content-scanning extension. It causes the incoming message to be scanned @@ -23021,6 +23050,7 @@ for a match with any of the regular expressions. For details, see chapter .item "sender@_domains = <>" +.index \sender@_domains\, ACL condition .index sender||ACL checking .index ~~ACL||testing a sender domain This condition tests the domain of the sender of the message against the given @@ -23033,6 +23063,7 @@ ACL for a \\RCPT\\ command, the recipient's domain (which is in \$domain$\) can be used to influence the sender checking. .item "senders = <
>" +.index \senders\, ACL condition .index sender||ACL checking .index ~~ACL||testing a sender This condition tests the sender of the message against the given list. To test @@ -23044,6 +23075,7 @@ senders = : .em .item "spam = <>" +.index \spam\, ACL condition .index ~~ACL||scanning for spam This condition is available only when Exim is compiled with the content-scanning extension. It causes the incoming message to be scanned by @@ -23052,6 +23084,7 @@ SpamAssassin. For details, see chapter ~~CHAPexiscan. .item "verify = certificate" +.index \verify\, ACL condition .index TLS||client certificate verification .index certificate||verification of client .index ~~ACL||certificate verification @@ -23062,6 +23095,7 @@ server requests a certificate only if the client matches \tls@_verify@_hosts\ or \tls@_try@_verify@_hosts\ (see chapter ~~CHAPTLS). .item "verify = header@_sender/<>" +.index \verify\, ACL condition .index ~~ACL||verifying sender in the header .index header lines||verifying the sender in .index sender||verifying in header @@ -23089,6 +23123,7 @@ deny senders = : .endd .item "verify = header@_syntax" +.index \verify\, ACL condition .index ~~ACL||verifying header syntax .index header lines||verifying syntax .index verifying||header syntax @@ -23110,6 +23145,7 @@ To: @ and this condition can be used to reject such messages. .item "verify = helo" +.index \verify\, ACL condition .index ~~ACL||verifying HELO/EHLO .index \\HELO\\||verifying .index \\EHLO\\||verifying @@ -23122,6 +23158,7 @@ commands does not happen by default. See the description of the to request it. .item "verify = recipient/<>" +.index \verify\, ACL condition .index ~~ACL||verifying recipient .index recipient||verifying .index verifying||recipient @@ -23136,6 +23173,7 @@ the value for the child address. .item "verify = reverse@_host@_lookup" +.index \verify\, ACL condition .index ~~ACL||verifying host reverse lookup .index host||verifying reverse lookup This condition ensures that a verified host name has been looked up from the IP @@ -23150,6 +23188,7 @@ is no client host involved), it always succeeds. .item "verify = sender/<>" +.index \verify\, ACL condition .index ~~ACL||verifying sender .index sender||verifying .index verifying||sender @@ -23169,6 +23208,7 @@ Details of verification are given later, starting at section avoid doing it more than once per message. .item "verify = sender=address/<>" +.index \verify\, ACL condition This is a variation of the previous option, in which a modified address is verified as a sender. -- 2.30.2