-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.421 2006/10/31 12:16:26 ph10 Exp $
+$Cambridge: 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
-------------------------------------------
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
-----------------
-/* $Cambridge: exim/src/src/expand.c,v 1.67 2006/10/31 11:14:18 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.68 2006/10/31 14:26:34 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
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 ||
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;
}
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. */
> 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