Update copyright year in (most) files (those that my script finds).
[exim.git] / src / src / expand.c
index 048b87a096104c5106a701a300fd09100139b902..4ff6e5043232829cb6e2f2f7ce32919a50306225 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.51 2005/12/12 15:58:53 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.53 2006/02/07 11:19:00 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2005 */
+/* Copyright (c) University of Cambridge 1995 - 2006 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -1230,12 +1230,15 @@ int first = 0;
 int last = var_table_size;
 
 /* Handle ACL variables, which are not in the table because their number may
-vary depending on a build-time setting. */
+vary depending on a build-time setting. If the variable's name is not of the
+form acl_mddd or acl_cddd, where the d's are digits, fall through to look for
+other names that start with acl_. */
 
 if (Ustrncmp(name, "acl_", 4) == 0)
   {
-  int offset, max, n;
   uschar *endptr;
+  int offset = -1;
+  int max = 0;
 
   if (name[4] == 'm')
     {
@@ -1247,11 +1250,13 @@ if (Ustrncmp(name, "acl_", 4) == 0)
     offset = 0;
     max = ACL_CVARS;
     }
-  else return NULL;
 
-  n = Ustrtoul(name + 5, &endptr, 10);
-  if (*endptr != 0 || n >= max) return NULL;
-  return (acl_var[offset + n] == NULL)? US"" : acl_var[offset + n];
+  if (offset >= 0)
+    {
+    int n = Ustrtoul(name + 5, &endptr, 10);
+    if (*endptr == 0 && n < max)
+      return (acl_var[offset + n] == NULL)? US"" : acl_var[offset + n];
+    }
   }
 
 /* For all other variables, search the table */