Make ${base62d: adjust for BASE_62, as ${base62: does.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Wed, 28 Sep 2005 10:46:48 +0000 (10:46 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Wed, 28 Sep 2005 10:46:48 +0000 (10:46 +0000)
doc/doc-txt/ChangeLog
src/src/expand.c
src/src/globals.c

index a77a223a42520a22ea0326d47af697a0d3b4bd65..5c39af7119f96045552a9d29ed2589f700a3acf2 100644 (file)
@@ -1,8 +1,16 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.240 2005/09/26 09:52:18 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.241 2005/09/28 10:46:48 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
+Exim version 4.54
+-----------------
+
+PH/01 The ${base62: operator adjusted itself to base 36 when BASE_62 was
+      set to 36 (for Darwin and Cygwin), but the ${base62d: operator did not.
+      It now does.
+
+
 Exim version 4.53
 -----------------
 
index aa1398e8a7e348f388985a10b3eb884ee4fef6bd..739f5e8545a61d3a139ebadad2368b4b4854a61e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.42 2005/09/13 11:13:27 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.43 2005/09/28 10:46:48 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -4358,6 +4358,8 @@ while (*s != 0)
         continue;
         }
 
+      /* Note that for Darwin and Cygwin, BASE_62 actually has the value 36 */
+
       case EOP_BASE62D:
         {
         uschar buf[16];
@@ -4369,10 +4371,11 @@ while (*s != 0)
           if (t == NULL)
             {
             expand_string_message = string_sprintf("argument for base62d "
-              "operator is \"%s\", which is not a base 62 number", sub);
+              "operator is \"%s\", which is not a base %d number", sub,
+              BASE_62);
             goto EXPAND_FAILED;
             }
-          n = n * 62 + (t - base62_chars);
+          n = n * BASE_62 + (t - base62_chars);
           }
         (void)sprintf(CS buf, "%ld", n);
         yield = string_cat(yield, &size, &ptr, buf, Ustrlen(buf));
index eed5a97041ee0da0af0f7eccd6ce83fc796ad21f..3a5b2af1c058ed20852b2a93680f83b2cfccd5cd 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/globals.c,v 1.38 2005/09/13 11:13:27 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.39 2005/09/28 10:46:48 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -333,8 +333,14 @@ uschar *av_scanner             = US"sophie:/var/run/sophie";  /* AV scanner */
 #endif
 
 BOOL    background_daemon      = TRUE;
+
+#if BASE_62 == 62
 uschar *base62_chars=
     US"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+#else
+uschar *base62_chars= US"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+#endif
+
 uschar *bi_command             = NULL;
 uschar *big_buffer             = NULL;
 int     big_buffer_size        = BIG_BUFFER_SIZE;