[exim-cvs] cvs commit: exim/exim-doc/doc-docbook spec.xfpt …

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: exim-cvs
Subject: [exim-cvs] cvs commit: exim/exim-doc/doc-docbook spec.xfpt exim/exim-doc/doc-txt ChangeLog exim/exim-src/src expand.c
pdp 2010/06/07 09:42:15 BST

  Modified files:
    exim-doc/doc-docbook spec.xfpt 
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         expand.c 
  Log:
  Both bool{} and bool_lax{} should ignore trailing whitespace.


  Revision  Changes    Path
  1.85      +2 -2      exim/exim-doc/doc-docbook/spec.xfpt
  1.630     +2 -1      exim/exim-doc/doc-txt/ChangeLog
  1.108     +12 -1     exim/exim-src/src/expand.c


  Index: spec.xfpt
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-docbook/spec.xfpt,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- spec.xfpt    7 Jun 2010 08:23:20 -0000    1.84
  +++ spec.xfpt    7 Jun 2010 08:42:15 -0000    1.85
  @@ -1,4 +1,4 @@
  -. $Cambridge: exim/exim-doc/doc-docbook/spec.xfpt,v 1.84 2010/06/07 08:23:20 pdp Exp $
  +. $Cambridge: exim/exim-doc/doc-docbook/spec.xfpt,v 1.85 2010/06/07 08:42:15 pdp Exp $
   .
   . /////////////////////////////////////////////////////////////////////////////
   . This is the primary source of the Exim Manual. It is an xfpt document that is
  @@ -9802,7 +9802,7 @@
   This condition turns a string holding a true or false representation into
   a boolean state.  It parses &"true"&, &"false"&, &"yes"& and &"no"&
   (case-insensitively); also positive integer numbers map to true if non-zero,
  -false if zero.  Leading whitespace is ignored.
  +false if zero.  Leading and trailing whitespace is ignored.
   All other string values will result in expansion failure.


When combined with ACL variables, this expansion condition will let you
@@ -9819,7 +9819,7 @@
where &%bool%& accepts a strict set of strings, &%bool_lax%& uses the same
loose definition that the Router &%condition%& option uses. The empty string
and the values &"false"&, &"no"& and &"0"& map to false, all others map to
-true.
+true. Leading and trailing whitespace is ignored.

Note that where &"bool{00}"& is false, &"bool_lax{00}"& is true.


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.629
  retrieving revision 1.630
  diff -u -r1.629 -r1.630
  --- ChangeLog    7 Jun 2010 08:23:20 -0000    1.629
  +++ ChangeLog    7 Jun 2010 08:42:15 -0000    1.630
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.629 2010/06/07 08:23:20 pdp Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.630 2010/06/07 08:42:15 pdp Exp $


Change log file for Exim from version 4.21
-------------------------------------------
@@ -47,7 +47,8 @@
PP/15 Bugzilla 816: support multiple condition rules on Routers.

   PP/16 Add bool_lax{} expansion operator and use that for combining multiple
  -      condition rules, instead of bool{}.
  +      condition rules, instead of bool{}.  Make both bool{} and bool_lax{}
  +      ignore trailing whitespace.



Exim version 4.72

  Index: expand.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/expand.c,v
  retrieving revision 1.107
  retrieving revision 1.108
  diff -u -r1.107 -r1.108
  --- expand.c    7 Jun 2010 08:23:20 -0000    1.107
  +++ expand.c    7 Jun 2010 08:42:15 -0000    1.108
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/expand.c,v 1.107 2010/06/07 08:23:20 pdp Exp $ */
  +/* $Cambridge: exim/exim-src/src/expand.c,v 1.108 2010/06/07 08:42:15 pdp Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -2502,7 +2502,7 @@
     case ECOND_BOOL_LAX:
       {
       uschar *sub_arg[1];
  -    uschar *t;
  +    uschar *t, *t2;
       uschar *ourname;
       size_t len;
       BOOL boolvalue = FALSE;
  @@ -2521,6 +2521,17 @@
       t = sub_arg[0];
       while (isspace(*t)) t++;
       len = Ustrlen(t);
  +    if (len)
  +      {
  +      /* trailing whitespace: seems like a good idea to ignore it too */
  +      t2 = t + len - 1;
  +      while (isspace(*t2)) t2--;
  +      if (t2 != (t + len))
  +        {
  +        *++t2 = '\0';
  +        len = t2 - t;
  +        }
  +      }
       DEBUG(D_expand)
         debug_printf("considering %s: %s\n", ourname, len ? t : US"<empty>");
       /* logic for the lax case from expand_check_condition(), which also does