Prebuild the data structure for builtin macros
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 8 Jul 2017 16:54:44 +0000 (17:54 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 8 Jul 2017 16:54:44 +0000 (17:54 +0100)
src/src/macro_predef.c
src/src/macro_predef.h
src/src/readconf.c
src/src/route.c
src/src/transport.c

index e133b8e..5ba2379 100644 (file)
@@ -29,11 +29,11 @@ if (mp_index == 0)
 else
   printf("&p%d,", mp_index-1);
 
-printf(" FALSE, %d, \"%s\", \"y\" };\n", Ustrlen(name), name);
+printf(" FALSE, %d, \"%s\", \"y\" };\n", Ustrlen(name), CS name);
 mp_index++;
 }
 
-static void
+void
 spf(uschar * buf, int len, const uschar * fmt, ...)
 {
 va_list ap;
@@ -73,9 +73,9 @@ expansion. */
 for (i = 0; i < nopt; i++)  if (*(s = US opts[i].name) && *s != '*')
   {
   if (group)
-    spf(buf, sizeof(buf), "_OPT_%T_%T_%T", section, group, s);
+    spf(buf, sizeof(buf), CUS"_OPT_%T_%T_%T", section, group, s);
   else
-    spf(buf, sizeof(buf), "_OPT_%T_%T", section, s);
+    spf(buf, sizeof(buf), CUS"_OPT_%T_%T", section, s);
   builtin_macro_create(buf);
   }
 }
@@ -273,4 +273,5 @@ options();
 
 printf("macro_item * macros = &p%d;\n", mp_index-1);
 printf("macro_item * mlast = &p0;\n");
+exit(0);
 }
index e77f4be..1d3ba7f 100644 (file)
@@ -7,6 +7,7 @@
 
 /* Global functions */
 
+extern void spf(uschar *, int, const uschar *, ...);
 extern void builtin_macro_create(const uschar *);
 extern void options_from_list(optionlist *, unsigned, const uschar *, uschar *);
 
index 045b992..53f815d 100644 (file)
@@ -395,7 +395,7 @@ options_from_list(optionlist_auths, optionlist_auths_size, US"AUTHENTICATORS", N
 
 for (ai = auths_available; ai->driver_name[0]; ai++)
   {
-  snprintf(buf, sizeof(buf), "_DRIVER_AUTHENTICATOR_%T", ai->driver_name);
+  spf(buf, sizeof(buf), "_DRIVER_AUTHENTICATOR_%T", ai->driver_name);
   builtin_macro_create(buf);
   options_from_list(ai->options, (unsigned)*ai->options_count, US"AUTHENTICATOR", ai->driver_name);
   }
index e30ae0e..857fc65 100644 (file)
@@ -157,7 +157,7 @@ options_from_list(optionlist_routers, nelem(optionlist_routers), US"ROUTERS", NU
 
 for (ri = routers_available; ri->driver_name[0]; ri++)
   {
-  snprintf(buf, sizeof(buf), "_DRIVER_ROUTER_%T", ri->driver_name);
+  spf(buf, sizeof(buf), "_DRIVER_ROUTER_%T", ri->driver_name);
   builtin_macro_create(buf);
   options_from_list(ri->options, (unsigned)*ri->options_count, US"ROUTER", ri->driver_name);
   }
index 49ea29e..6590fa7 100644 (file)
@@ -101,7 +101,7 @@ options_from_list(optionlist_transports, nelem(optionlist_transports), US"TRANSP
 
 for (ti = transports_available; ti->driver_name[0]; ti++)
   {
-  snprintf(buf, sizeof(buf), "_DRIVER_TRANSPORT_%T", ti->driver_name);
+  spf(buf, sizeof(buf), "_DRIVER_TRANSPORT_%T", ti->driver_name);
   builtin_macro_create(buf);
   options_from_list(ti->options, (unsigned)*ti->options_count, US"TRANSPORT", ti->driver_name);
   }