Tidies for HTML and Texinfo versions of the new spec.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 27 Jan 2005 10:25:35 +0000 (10:25 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 27 Jan 2005 10:25:35 +0000 (10:25 +0000)
doc/doc-scripts/g2h
doc/doc-scripts/g2t
doc/doc-src/spec.src

index e940e66..cbc02db 100755 (executable)
@@ -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 &nbsp; 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 "<h3>$option</h3>\n" .
+            "<i>Use:</i>&nbsp; $confuse<br>" . 
             "<i>Type:</i>&nbsp; $type<br><i>Default:</i>&nbsp; $default<br>\n";
   }
 
@@ -831,7 +836,7 @@ elsif (/^\.startoptions\b/) {}
 elsif (/^\.option\s+(.*)/)
   {
   my($arg) = $1;
-  $arg =~ s/^"(.*)"$/$1/;
+  $arg =~ s/"([^"]*)"/$1/g;
 
   print OUT "<hr>";
   &setpar(0);
@@ -881,7 +886,10 @@ open (IN, $source_file) || die "Can't open $source_file (first pass)\n";
 $_ = <IN>;
 
 # 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.
+
+$_ = <IN> 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 "<p>\n";
@@ -1314,19 +1322,24 @@ my($letter) = "";
 print INDEX "<p>\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 "&#147;"
+      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 "<br>\n" if $letter ne "";
-      print INDEX "<a name=\"$initial\"></a>\n";
-      print INDEX "<font size=\"+1\">\U$initial\E</font><br>\n";
-      }
+    print INDEX "<br>\n";
+    print INDEX "<a name=\"$initial\"></a>\n";
+    print INDEX "<font size=\"+1\">\U$initial\E</font><br>\n";
     $letter = $initial;
     }
   print INDEX "$$hash{$key}<br>\n";
@@ -1367,6 +1380,7 @@ $html = "html";
 
 $chapsplit = 0;
 $cindex_tocn = 0;
+$confuse = "";
 $file_base = "";
 $index_count = 0;
 $inem = 0;
index 30c713c..6ff2bb3 100755 (executable)
@@ -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;
index 0819e71..5ecbd9e 100644 (file)
@@ -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 = <<text>>"
+.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 = <<time>>"
+.index \delay\, ACL modifier
 .index \-bh-\ option
 This modifier causes Exim to wait for the time interval before proceeding. The
 time is given in the usual Exim notation. This modifier may appear in any ACL.
@@ -22530,12 +22539,14 @@ accept  ...
 .endd
 
 .item endpass
+.index \endpass\, ACL modifier
 This modifier, which has no argument, is recognized only in \accept\
 statements. It marks the boundary between the conditions whose failure causes
 control to pass to the next statement, and the conditions whose failure causes
 the ACL to return `deny'. See the description of \accept\ above.
 
 .item "log@_message = <<text>>"
+.index \log@_message\, ACL modifier
 This modifier sets up a message that is used as part of the log message if the
 ACL denies access or a \warn\ statement's conditions are true. For example:
 .display asis
@@ -22571,6 +22582,7 @@ both \log@_message\ and \message\, a default built-in message is used for
 logging rejections.
 
 .item "logwrite = <<text>>"
+.index \logwrite\, ACL modifier
 .index log||in ACL, immediate
 This modifier writes a message to a log file as soon as it is encountered when
 processing an ACL. (Compare \log@_message\, which, except in the case of
@@ -22591,6 +22603,7 @@ logwrite = :panic: text for panic log only
 .endd
 
 .item "message = <<text>>"
+.index \message\, ACL modifier
 This modifier sets up a text string that is expanded and used as an error
 message if the current statement causes the ACL to deny access. The expansion
 happens at the time Exim decides that access is to be denied, not at the time
@@ -22618,6 +22631,7 @@ routers to be passed back as part of the SMTP response, you should either not
 use a \message\ modifier, or make use of \$acl@_verify@_message$\.
 
 .item "set <<acl@_name>> = <<value>>"
+.index \set\, ACL modifier
 This modifier puts a value into one of the ACL variables (see section
 ~~SECTaclvariables).
 
@@ -22627,7 +22641,7 @@ This modifier puts a value into one of the ACL variables (see section
 .em
 .section Use of the control modifier
 .rset SECTcontrols "~~chapter.~~section"
-.index \control\ modifier
+.index \control\, ACL modifier
 The \control\ modifier supports the following settings:
 
 .startitems
@@ -22783,6 +22797,8 @@ the same SMTP connection.
 .rset SECTaddheadwarn "~~chapter.~~section"
 .index header lines||adding in an ACL
 .index header lines||position of added lines
+.index \warn\, ACL verb
+.index \message\, ACL modifier
 The \message\ modifier can be used on a \warn\ statement to add an extra header
 line to an incoming message, as in this example:
 .display asis
@@ -22859,6 +22875,7 @@ The conditions are as follows:
 .item "acl = <<name of acl or ACL string or file name >>"
 .index ~~ACL||nested
 .index ~~ACL||indirect
+.index \acl\, ACL condition
 The possible values of the argument are the same as for the
 \acl@_smtp@_$it{xxx}\ options. The named or inline ACL is run. If it returns
 `accept' the condition is true; if it returns `deny' the condition is false. If
@@ -22880,6 +22897,7 @@ circumstances. For example, different ACLs can be used to handle \\RCPT\\
 commands for different local users or different local domains.
 
 .item "authenticated = <<string list>>"
+.index \authenticated\, ACL condition
 .index authentication||ACL checking
 .index ~~ACL||testing for authentication
 If the SMTP connection is not authenticated, the condition is false. Otherwise,
@@ -22890,6 +22908,7 @@ authenticated = *
 .endd
 
 .item "condition = <<string>>"
+.index \condition\, ACL condition
 .index customizing||ACL condition
 .index ~~ACL||customized test
 .index ~~ACL||testing, customized
@@ -22902,6 +22921,7 @@ values, some error is assumed to have occured, and the ACL returns `defer'.
 
 .em
 .item "decode = <<location>>"
+.index \decode\, ACL condition
 This condition is available only when Exim is compiled with the
 content-scanning extension, and it is allowed only the the ACL defined by
 \acl@_smtp@_mime\. It causes the current MIME part to be decoded into a file.
@@ -22910,6 +22930,7 @@ For details, see chapter ~~CHAPexiscan.
 
 
 .item "dnslists = <<list of domain names and other data>>"
+.index \dnslists\, ACL condition
 .index DNS list||in ACL
 .index black list (DNS)
 .index ~~ACL||testing a DNS list
@@ -22920,6 +22941,7 @@ There are too many different variants of this condition to describe briefly
 here. See sections ~~SECTmorednslists--~~SECTmorednslistslast for details.
 
 .item "domains = <<domain list>>"
+.index \domains\, ACL condition
 .index domain||ACL checking
 .index ~~ACL||testing a recipient domain
 This condition is relevant only after a \\RCPT\\ command. It checks that the
@@ -22929,6 +22951,7 @@ succeeds with a lookup, the result of the lookup is placed in \$domain@_data$\
 until the next \domains\ test.
 
 .item "encrypted = <<string list>>"
+.index \encrypted\, ACL condition
 .index encryption||checking in an ACL
 .index ~~ACL||testing for encryption
 If the SMTP connection is not encrypted, the condition is false. Otherwise, the
@@ -22939,6 +22962,7 @@ encrypted = *
 .endd
 
 .item "hosts = << host list>>"
+.index \hosts\, ACL condition
 .index host||ACL checking
 .index ~~ACL||testing the client host
 This condition tests that the calling host matches the host list. If you have
@@ -22974,6 +22998,7 @@ deny  hosts = net-lsearch;/some/file
 which gives a custom error message for each denied host.
 
 .item "local@_parts = <<local part list>>"
+.index \local@_parts\, ACL condition
 .index local part||ACL checking
 .index ~~ACL||testing a local part
 This condition is relevant only after a \\RCPT\\ command. It checks that the
@@ -22985,6 +23010,7 @@ the result of the lookup is placed in \$local@_part@_data$\ until the next
 
 .em
 .item "malware = <<option>>"
+.index \malware\, ACL condition
 .index ~~ACL||virus scanning
 .index ~~ACL||scanning for viruses
 This condition is available only when Exim is compiled with the
@@ -22995,6 +23021,7 @@ viruses. For details, see chapter ~~CHAPexiscan.
 
 .em
 .item "mime@_regex = <<list of regular expressions>>"
+.index \mime@_regex\, ACL condition
 .index ~~ACL||testing by regex matching
 This condition is available only when Exim is compiled with the
 content-scanning extension, and it is allowed only the the ACL defined by
@@ -23004,6 +23031,7 @@ with any of the regular expressions. For details, see chapter ~~CHAPexiscan.
 
 
 .item "recipients = <<address list>>"
+.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 = <<list of regular expressions>>"
+.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 = <<domain list>>"
+.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 = <<address list>>"
+.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 = <<username>>"
+.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/<<options>>"
+.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/<<options>>"
+.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/<<options>>"
+.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/<<options>>"
+.index \verify\, ACL condition
 This is a variation of the previous option, in which a modified address is
 verified as a sender.