DANE: move to mainline
[exim.git] / src / src / macro_predef.c
index 6b3157fbef7223fc9857787c6027b34bd7b1e34c..601ceef6603ee928830af44729209b53c5a4d3b4 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) Jeremy Harris 2017 */
+/* Copyright (c) Jeremy Harris 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* Create a static data structure with the predefined macros, to be
@@ -21,7 +21,7 @@ uschar * syslog_facility_str;
 /******************************************************************************/
 
 void
-builtin_macro_create(const uschar * name)
+builtin_macro_create_var(const uschar * name, const uschar * val)
 {
 printf ("static macro_item p%d = { ", mp_index);
 if (mp_index == 0)
@@ -29,12 +29,21 @@ if (mp_index == 0)
 else
   printf(".next=&p%d,", mp_index-1);
 
-printf(" .command_line=FALSE, .namelen=%d, .replen=1,"
-       " .name=US\"%s\", .replacement=US\"y\" };\n",
-       Ustrlen(name), CS name);
+printf(" .command_line=FALSE, .namelen=%d, .replen=%d,"
+       " .name=US\"%s\", .replacement=US\"%s\" };\n",
+       Ustrlen(name), Ustrlen(val), CS name, CS val);
 mp_index++;
 }
 
+
+void
+builtin_macro_create(const uschar * name)
+{
+builtin_macro_create_var(name, US"y");
+}
+
+
+/* restricted snprintf */
 void
 spf(uschar * buf, int len, const uschar * fmt, ...)
 {
@@ -165,7 +174,7 @@ due to conflicts with other common macros. */
 #ifdef EXPERIMENTAL_LMDB
   builtin_macro_create(US"_HAVE_LMDB");
 #endif
-#ifdef EXPERIMENTAL_SPF
+#ifdef SUPPORT_SPF
   builtin_macro_create(US"_HAVE_SPF");
 #endif
 #ifdef EXPERIMENTAL_SRS
@@ -174,7 +183,7 @@ due to conflicts with other common macros. */
 #ifdef EXPERIMENTAL_BRIGHTMAIL
   builtin_macro_create(US"_HAVE_BRIGHTMAIL");
 #endif
-#ifdef EXPERIMENTAL_DANE
+#ifdef SUPPORT_DANE
   builtin_macro_create(US"_HAVE_DANE");
 #endif
 #ifdef EXPERIMENTAL_DCC
@@ -253,6 +262,12 @@ due to conflicts with other common macros. */
   builtin_macro_create(US"_HAVE_TRANSPORT_APPEND_MBX");
 # endif
 #endif
+
+#ifdef WITH_CONTENT_SCAN
+features_malware();
+#endif
+
+features_crypto();
 }
 
 
@@ -265,6 +280,14 @@ options_transports();
 options_auths();
 }
 
+static void
+params(void)
+{
+#ifndef DISABLE_DKIM
+params_dkim();
+#endif
+}
+
 
 int
 main(void)
@@ -272,6 +295,7 @@ main(void)
 printf("#include \"exim.h\"\n");
 features();
 options();
+params();
 
 printf("macro_item * macros = &p%d;\n", mp_index-1);
 printf("macro_item * mlast = &p0;\n");