Builtin macros for ACL conditions & modifiers
[exim.git] / src / src / macro_predef.c
index 9c3d34a96338117fcaefb74b4ecd685ed149e0e3..757b375630b9a8125dc8006ad18d915d8849b9a0 100644 (file)
@@ -72,7 +72,7 @@ options_from_list(optionlist * opts, unsigned nopt,
   const uschar * section, uschar * group)
 {
 const uschar * s;
-uschar buf[64];
+uschar buf[EXIM_DRIVERNAME_MAX];
 
 /* The 'previously-defined-substring' rule for macros in config file
 lines is done thus for these builtin macros: we know that the table
@@ -279,11 +279,38 @@ due to conflicts with other common macros. */
 # endif
 #endif
 
+features_acl();
+features_crypto();
+
 #ifdef WITH_CONTENT_SCAN
 features_malware();
 #endif
+}
 
-features_crypto();
+static void
+exp_features(void)
+{
+#ifdef EXPERIMENTAL_ARC
+  builtin_macro_create(US"_EXP_ARC");
+#endif
+#ifdef EXPERIMENTAL_BRIGHTMAIL
+  builtin_macro_create(US"_EXP_BMI");
+#endif
+#ifdef EXPERIMENTAL_DCC
+  builtin_macro_create(US"_EXP_DCC");
+#endif
+#ifdef EXPERIMENTAL_DSN_INFO
+  builtin_macro_create(US"_EXP_DSNI");
+#endif
+#ifdef EXPERIMENTAL_ESMTP_LIMITS
+  builtin_macro_create(US"_EXP_LIMITS");
+#endif
+#ifdef EXPERIMENTAL_QUEUEFILE
+  builtin_macro_create(US"_EXP_QUEUEFILE");
+#endif
+#if defined(EXPERIMENTAL_SRS_ALT)
+  builtin_macro_create(US"_EXP_SRS");
+#endif
 }
 
 
@@ -314,6 +341,7 @@ main(void)
 {
 printf("#include \"exim.h\"\n");
 features();
+exp_features();
 options();
 params();