[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: exim-cvs
Subject: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src expand.c exim/exim-test/scripts/0000-Basic 0002 exim/exim-test/stdout 0002
ph10 2006/10/31 14:26:34 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         expand.c 
    exim-test/scripts/0000-Basic 0002 
    exim-test/stdout     0002 
  Log:
  Add warning about missing colon to invalid expansion when it involved
  ${if def:h_xxx (overlooked previously).


  Revision  Changes    Path
  1.422     +4 -0      exim/exim-doc/doc-txt/ChangeLog
  1.68      +5 -2      exim/exim-src/src/expand.c
  1.7       +2 -0      exim/exim-test/scripts/0000-Basic/0002
  1.7       +2 -0      exim/exim-test/stdout/0002


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.421
  retrieving revision 1.422
  diff -u -r1.421 -r1.422
  --- ChangeLog    31 Oct 2006 12:16:26 -0000    1.421
  +++ ChangeLog    31 Oct 2006 14:26:34 -0000    1.422
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.421 2006/10/31 12:16:26 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.422 2006/10/31 14:26:34 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -221,6 +221,10 @@
         in ${readsocket because some servers need this prod.


   PH/32 Added some extra debug output when updating a wait-xxx database.
  +
  +PH/33 The hint "could be header name not terminated by colon", which has been
  +      given for certain expansion errors for a long time, was not being given
  +      for the ${if def:h_colon_omitted{...  case.



Exim version 4.63

  Index: expand.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/expand.c,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- expand.c    31 Oct 2006 11:14:18 -0000    1.67
  +++ expand.c    31 Oct 2006 14:26:34 -0000    1.68
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/expand.c,v 1.67 2006/10/31 11:14:18 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/expand.c,v 1.68 2006/10/31 14:26:34 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1689,7 +1689,9 @@


     s = read_name(name, 256, s+1, US"_");


- /* Test for a header's existence */
+ /* Test for a header's existence. If the name contains a closing brace
+ character, this may be a user error where the terminating colon has been
+ omitted. Set a flag to adjust a subsequent error message in this case. */

     if (Ustrncmp(name, "h_", 2) == 0 ||
         Ustrncmp(name, "rh_", 3) == 0 ||
  @@ -1699,6 +1701,7 @@
         Ustrncmp(name, "bheader_", 8) == 0)
       {
       s = read_header_name(name, 256, s);
  +    if (Ustrchr(name, '}') != NULL) malformed_header = TRUE;
       if (yield != NULL) *yield =
         (find_header(name, TRUE, NULL, FALSE, NULL) != NULL) == testfor;
       }
  @@ -2973,7 +2976,7 @@
         value = find_header(name, FALSE, &newsize, want_raw, charset);


         /* If we didn't find the header, and the header contains a closing brace
  -      characters, this may be a user error where the terminating colon
  +      character, this may be a user error where the terminating colon
         has been omitted. Set a flag to adjust the error message in this case.
         But there is no error here - nothing gets inserted. */



  Index: 0002
  ===================================================================
  RCS file: /home/cvs/exim/exim-test/scripts/0000-Basic/0002,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- 0002    18 Sep 2006 14:49:24 -0000    1.6
  +++ 0002    31 Oct 2006 14:26:34 -0000    1.7
  @@ -578,6 +578,8 @@
   ${if and {{xya}}{a}{b}}
   ${if and {{${lookup{x}lsearch{/a/b}}}}{a}{b}}
   ${if eq {$h_xyz}{1}{y}{n}}
  +${if eq {$h_xyz:}{1}{y}{n}
  +${if def:h_xyz}{y}{n}}
   ${if or {eq {}{}{yes}{no}}
   ${if or {{eq {}{}{yes}{no}}
   ${if or {{eq {}{}}{yes}{no}}


  Index: 0002
  ===================================================================
  RCS file: /home/cvs/exim/exim-test/stdout/0002,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- 0002    18 Sep 2006 14:49:24 -0000    1.6
  +++ 0002    31 Oct 2006 14:26:34 -0000    1.7
  @@ -555,6 +555,8 @@
   > Failed: unknown condition "xya" inside "and{...}" condition
   > Failed: condition name expected, but found "${lookup{x}lsear" inside "and{...}" condition
   > Failed: missing } at end of string - could be header name not terminated by colon
  +> Failed: missing or misplaced { or }
  +> Failed: missing or misplaced { or } - could be header name not terminated by colon
   > Failed: each subcondition inside an "or{...}" condition must be in its own {}
   > Failed: missing } at end of condition inside "or" group
   > Failed: unknown condition "yes" inside "or{...}" condition