Add % operator to ${eval expansion.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 23 Aug 2005 08:46:33 +0000 (08:46 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 23 Aug 2005 08:46:33 +0000 (08:46 +0000)
doc/doc-txt/ChangeLog
src/ACKNOWLEDGMENTS
src/src/expand.c

index 8eddabf..2b51e62 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.208 2005/08/22 15:28:20 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.209 2005/08/23 08:46:33 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -112,6 +112,8 @@ PH/26 Exim was recognizing IPv6 addresses of the form [IPv6:....] in EHLO
       client host address. Thus, it would show the EHLO address in Received:
       header lines when this was not necessary.
 
+PH/27 Added the % operator to ${eval:}.
+
 
 Exim version 4.52
 -----------------
index cd9c597..9acc51b 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.31 2005/08/22 10:49:04 ph10 Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.32 2005/08/23 08:46:33 ph10 Exp $
 
 EXIM ACKNOWLEDGEMENTS
 
@@ -20,7 +20,7 @@ relatively small patches.
 Philip Hazel
 
 Lists created: 20 November 2002
-Last updated:  29 July 2005
+Last updated:  23 August 2005
 
 
 THE OLD LIST
@@ -151,6 +151,7 @@ Steve Haslam              Lots of stuff, including
                             HMAC computations
                             Better error messages for BDB
 Sheldon Hearn             Suggested patch for smtp_accept_max_nonmail_hosts
+Jakob Hirsch              Patch for % operator
 Kjetil Torgrim Homme      Patch for require_files problem on NFS file systems
 Tom Hughes                Suggested patch for $n bug in pipe command from filter
 Pierre Humblet            Continued Cygwin support
index 25e2863..273f2a5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.40 2005/08/08 09:57:29 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.41 2005/08/23 08:46:33 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2749,12 +2749,14 @@ uschar *s = *sptr;
 int x = eval_term(&s, decimal, error);
 if (*error == NULL)
   {
-  while (*s == '*' || *s == '/')
+  while (*s == '*' || *s == '/' || *s == '%')
     {
     int op = *s++;
     int y = eval_term(&s, decimal, error);
     if (*error != NULL) break;
-    if (op == '*') x *= y; else x /= y;
+    if (op == '*') x *= y;
+      else if (op == '/') x /= y;
+      else x %= y;
     }
   }
 *sptr = s;