Compiling with DomainKeys caused the test suite to show up some bugs:
[exim.git] / src / src / expand.c
index 6811c2940d0a2cd2aa73cc42da8d6499e69ba09c..5432b98121a10d43299840b15b8dcc4462f6682e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.30 2005/06/20 10:04:55 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.33 2005/06/20 13:58:22 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1261,10 +1261,6 @@ while (last > first)
 
   switch (var_table[middle].type)
     {
-    case vtype_filter_int:
-    if (!filter_running) return NULL;
-    /* Fall through */
-
 #ifdef EXPERIMENTAL_DOMAINKEYS
 
     case vtype_dk_verify:
@@ -1281,35 +1277,39 @@ while (last > first)
 
     if (Ustrcmp(var_table[middle].name, "dk_sender_source") == 0)
       switch(dk_verify_block->address_source) {
-        case DK_EXIM_ADDRESS_NONE: s = "0"; break;
-        case DK_EXIM_ADDRESS_FROM_FROM: s = "from"; break;
-        case DK_EXIM_ADDRESS_FROM_SENDER: s = "sender"; break;
+        case DK_EXIM_ADDRESS_NONE: s = US"0"; break;
+        case DK_EXIM_ADDRESS_FROM_FROM: s = US"from"; break;
+        case DK_EXIM_ADDRESS_FROM_SENDER: s = US"sender"; break;
       }
 
     if (Ustrcmp(var_table[middle].name, "dk_status") == 0)
       switch(dk_verify_block->result) {
-        case DK_EXIM_RESULT_ERR: s = "error"; break;
-        case DK_EXIM_RESULT_BAD_FORMAT: s = "bad format"; break;
-        case DK_EXIM_RESULT_NO_KEY: s = "no key"; break;
-        case DK_EXIM_RESULT_NO_SIGNATURE: s = "no signature"; break;
-        case DK_EXIM_RESULT_REVOKED: s = "revoked"; break;
-        case DK_EXIM_RESULT_NON_PARTICIPANT: s = "non-participant"; break;
-        case DK_EXIM_RESULT_GOOD: s = "good"; break;
-        case DK_EXIM_RESULT_BAD: s = "bad"; break;
+        case DK_EXIM_RESULT_ERR: s = US"error"; break;
+        case DK_EXIM_RESULT_BAD_FORMAT: s = US"bad format"; break;
+        case DK_EXIM_RESULT_NO_KEY: s = US"no key"; break;
+        case DK_EXIM_RESULT_NO_SIGNATURE: s = US"no signature"; break;
+        case DK_EXIM_RESULT_REVOKED: s = US"revoked"; break;
+        case DK_EXIM_RESULT_NON_PARTICIPANT: s = US"non-participant"; break;
+        case DK_EXIM_RESULT_GOOD: s = US"good"; break;
+        case DK_EXIM_RESULT_BAD: s = US"bad"; break;
       }
 
     if (Ustrcmp(var_table[middle].name, "dk_signsall") == 0)
-      s = (dk_verify_block->signsall)? "1" : "0";
+      s = (dk_verify_block->signsall)? US"1" : US"0";
 
     if (Ustrcmp(var_table[middle].name, "dk_testing") == 0)
-      s = (dk_verify_block->testing)? "1" : "0";
+      s = (dk_verify_block->testing)? US"1" : US"0";
 
     if (Ustrcmp(var_table[middle].name, "dk_is_signed") == 0)
-      s = (dk_verify_block->is_signed)? "1" : "0";
+      s = (dk_verify_block->is_signed)? US"1" : US"0";
 
     return (s == NULL)? US"" : s;
 #endif
 
+    case vtype_filter_int:
+    if (!filter_running) return NULL;
+    /* Fall through */
+    /* VVVVVVVVVVVV */
     case vtype_int:
     sprintf(CS var_buffer, "%d", *(int *)(var_table[middle].value)); /* Integer */
     return var_buffer;
@@ -1966,7 +1966,7 @@ switch(cond_type)
     rc = match_isinlist(sub[0], &(sub[1]), 0, &localpartlist_anchor, NULL,
       MCL_LOCALPART + MCL_NOEXPAND, TRUE, NULL);
     /* Fall through */
-
+    /* VVVVVVVVVVVV */
     MATCHED_SOMETHING:
     switch(rc)
       {
@@ -2493,7 +2493,7 @@ prvs_daystamp(int day_offset)
 uschar *days = store_get(16);
 (void)string_format(days, 16, TIME_T_FMT,
   (time(NULL) + day_offset*86400)/86400);
-return (Ustrlen(days) >= 3) ? &days[Ustrlen(days)-3] : NULL;
+return (Ustrlen(days) >= 3) ? &days[Ustrlen(days)-3] : US"100";
 }