* 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
/******************************************************************************/
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)
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, ...)
{
#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
builtin_macro_create(US"_HAVE_SRS");
#endif
+#ifdef EXPERIMENTAL_ARC
+ builtin_macro_create(US"_HAVE_ARC");
+#endif
#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
builtin_macro_create(US"_HAVE_TRANSPORT_APPEND_MBX");
# endif
#endif
+
+#ifdef WITH_CONTENT_SCAN
+features_malware();
+#endif
+
+features_crypto();
}
options_auths();
}
+static void
+params(void)
+{
+#ifndef DISABLE_DKIM
+params_dkim();
+#endif
+}
+
int
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");