git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add % operator to ${eval expansion.
[exim.git]
/
src
/
src
/
expand.c
diff --git
a/src/src/expand.c
b/src/src/expand.c
index 25e286390107ab67333ea5bc18352866ed0f9f0a..273f2a507fdbc5111e5ba51bcdc56fe2772288c2 100644
(file)
--- a/
src/src/expand.c
+++ b/
src/src/expand.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/expand.c,v 1.4
0 2005/08/08 09:57:29
ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.4
1 2005/08/23 08:46:33
ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-2749,12
+2749,14
@@
uschar *s = *sptr;
int x = eval_term(&s, decimal, error);
if (*error == NULL)
{
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;
{
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;
}
}
*sptr = s;