ph10 2005/04/28 14:29:27 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src/src expand.c
exim-test-orig/AutoTest/scripts 082
exim-test-orig/AutoTest/stdout 082
Log:
Make $value usable in the "else" part of ${run.
Revision Changes Path
1.129 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.38 +3 -0 exim/exim-doc/doc-txt/NewStuff
1.20 +4 -6 exim/exim-src/src/expand.c
1.11 +2 -0 exim/exim-test-orig/AutoTest/scripts/082
1.11 +4 -0 exim/exim-test-orig/AutoTest/stdout/082
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -r1.128 -r1.129
--- ChangeLog 28 Apr 2005 13:06:32 -0000 1.128
+++ ChangeLog 28 Apr 2005 13:29:27 -0000 1.129
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.128 2005/04/28 13:06:32 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.129 2005/04/28 13:29:27 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -262,6 +262,8 @@
In these cases only, Exim does include the error details in bounce and
warning messages. There are also a few cases where bland messages such
as "unrouteable address" or "local delivery error" are given.
+
+PH/43 $value is now also set for the "else" part of a ${run expansion.
A note about Exim versions 4.44 and 4.50
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- NewStuff 27 Apr 2005 13:29:32 -0000 1.37
+++ NewStuff 28 Apr 2005 13:29:27 -0000 1.38
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.37 2005/04/27 13:29:32 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.38 2005/04/28 13:29:27 ph10 Exp $
New Features in Exim
--------------------
@@ -166,6 +166,9 @@
In the MAIL and RCPT ACLs, the value is zero because at that stage the
message has not yet been received.
+
+PH/11 In a ${run expansion, the variable $value (which contains the standard
+ output) is now also usable in the "else" string.
Version 4.50
Index: expand.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/expand.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- expand.c 27 Apr 2005 13:29:32 -0000 1.19
+++ expand.c 28 Apr 2005 13:29:27 -0000 1.20
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/expand.c,v 1.19 2005/04/27 13:29:32 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/expand.c,v 1.20 2005/04/28 13:29:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2333,8 +2333,8 @@
/* If this is called from a lookup or an extract, we want to restore $value to
what it was at the start of the item, so that it has this value during the
-second string expansion. For the call from "if" to this function, save_lookup
-is set to lookup_value, so that this statement does nothing. */
+second string expansion. For the call from "if" or "run" to this function,
+save_lookup is set to lookup_value, so that this statement does nothing. */
lookup_value = save_lookup;
@@ -3330,7 +3330,6 @@
case EITEM_RUN:
{
FILE *f;
- uschar *old_lookup_value = NULL;
uschar *arg;
uschar **argv;
pid_t pid;
@@ -3410,18 +3409,17 @@
in lookup_value). */
f = fdopen(fd_out, "rb");
- old_lookup_value = lookup_value;
lookup_value = NULL;
lookup_value = cat_file(f, lookup_value, &lsize, &lptr, NULL);
fclose(f);
}
- /* Process the yes/no strings */
+ /* Process the yes/no strings; $value may be useful in both cases */
switch(process_yesno(
skipping, /* were previously skipping */
runrc == 0, /* success/failure indicator */
- old_lookup_value, /* value to reset for string2 */
+ lookup_value, /* value to reset for string2 */
&s, /* input pointer */
&yield, /* output pointer */
&size, /* output size */
Index: 082
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/082,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- 082 21 Dec 2004 12:21:46 -0000 1.10
+++ 082 28 Apr 2005 13:29:27 -0000 1.11
@@ -550,6 +550,8 @@
RC=$runrc
${run{DIR/aux/082.runfile 1}{$value}{2}}
RC=$runrc
+${run{DIR/aux/082.runfile 1}{$value}{$value}}
+RC=$runrc
${run{DIR/test.private}{Y}{N}}
RC=$runrc
>>${run{/bin/true}}<<
Index: 082
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/082,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- 082 21 Dec 2004 12:21:46 -0000 1.10
+++ 082 28 Apr 2005 13:29:27 -0000 1.11
@@ -557,6 +557,10 @@
> RC=0
> 2
> RC=1
+> abcd
+1234
+
+> RC=1
> N
> RC=127
> >><<