Testsuite: avoid total fail on DISABLE_EVENT build
[exim.git] / src / src / macros.h
index 5279f70d0153a173d3903e815697912a00c51424..1a619b951eff4c8e72b648fcca52d8a1224f97cd 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) The Exim Maintainers 2020 - 2023 */
+/* Copyright (c) The Exim Maintainers 2020 - 2024 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 /* SPDX-License-Identifier: GPL-2.0-or-later */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 /* SPDX-License-Identifier: GPL-2.0-or-later */
@@ -107,8 +107,9 @@ don't make the file descriptors two-way. */
 /* Debugging control */
 
 #define LOG_NAME_SIZE 256
 /* Debugging control */
 
 #define LOG_NAME_SIZE 256
-#define DEBUG(x)      if (debug_selector & (x))
-#define HDEBUG(x)     if (host_checking || debug_selector & (x))
+#define IS_DEBUG(x)    (debug_selector & (x))
+#define DEBUG(x)       if (IS_DEBUG(x))
+#define HDEBUG(x)      if (host_checking || IS_DEBUG(x))
 
 /* The default From: text for DSNs */
 
 
 /* The default From: text for DSNs */
 
@@ -827,6 +828,9 @@ enum { SCH_NONE, SCH_AUTH, SCH_DATA, SCH_BDAT,
        SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO,
        SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS,
        SCH_VRFY,
        SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO,
        SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS,
        SCH_VRFY,
+#ifndef DISABLE_WELLKNOWN
+       SCH_WELLKNOWN,
+#endif
 #ifdef EXPERIMENTAL_XCLIENT
        SCH_XCLIENT,
 #endif
 #ifdef EXPERIMENTAL_XCLIENT
        SCH_XCLIENT,
 #endif
@@ -971,6 +975,9 @@ enum { ACL_WHERE_RCPT,       /* Some controls are for RCPT only */
        ACL_WHERE_NOTQUIT,
        ACL_WHERE_QUIT,
        ACL_WHERE_STARTTLS,
        ACL_WHERE_NOTQUIT,
        ACL_WHERE_QUIT,
        ACL_WHERE_STARTTLS,
+#ifndef DISABLE_WELLKNOWN
+       ACL_WHERE_WELLKNOWN,
+#endif
        ACL_WHERE_VRFY,
 
        ACL_WHERE_DELIVERY,
        ACL_WHERE_VRFY,
 
        ACL_WHERE_DELIVERY,
@@ -1000,6 +1007,9 @@ enum { ACL_WHERE_RCPT,       /* Some controls are for RCPT only */
 #define ACL_BIT_QUIT           BIT(ACL_WHERE_QUIT)
 #define ACL_BIT_STARTTLS       BIT(ACL_WHERE_STARTTLS)
 #define ACL_BIT_VRFY           BIT(ACL_WHERE_VRFY)
 #define ACL_BIT_QUIT           BIT(ACL_WHERE_QUIT)
 #define ACL_BIT_STARTTLS       BIT(ACL_WHERE_STARTTLS)
 #define ACL_BIT_VRFY           BIT(ACL_WHERE_VRFY)
+#ifndef DISABLE_WELLKNOWN
+# define ACL_BIT_WELLKNOWN     BIT(ACL_WHERE_WELLKNOWN)
+#endif
 #define ACL_BIT_DELIVERY       BIT(ACL_WHERE_DELIVERY)
 #define ACL_BIT_UNKNOWN                BIT(ACL_WHERE_UNKNOWN)
 
 #define ACL_BIT_DELIVERY       BIT(ACL_WHERE_DELIVERY)
 #define ACL_BIT_UNKNOWN                BIT(ACL_WHERE_UNKNOWN)
 
@@ -1057,6 +1067,10 @@ enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE };
 #define UTF8_VERT_RIGHT                "\xE2\x94\x9C"
 #define UTF8_UP_RIGHT          "\xE2\x95\xB0"
 #define UTF8_VERT_2DASH                "\xE2\x95\x8E"
 #define UTF8_VERT_RIGHT                "\xE2\x94\x9C"
 #define UTF8_UP_RIGHT          "\xE2\x95\xB0"
 #define UTF8_VERT_2DASH                "\xE2\x95\x8E"
+#define UTF8_LEFT_TRIANGLE     "\xE2\x97\x80"
+#define UTF8_RIGHT_TRIANGLE    "\xE2\x96\xB6"
+#define UTF8_LIGHT_SHADE       "\xE2\x96\x91"
+#define UTF8_L_ARROW_HOOK      "\xE2\x86\xA9"
 
 
 /* Options on tls_close */
 
 
 /* Options on tls_close */
@@ -1185,4 +1199,16 @@ typedef enum {
   sw_mrc_tx_fail,              /* transmit failed */
 } sw_mrc_t;
 
   sw_mrc_tx_fail,              /* transmit failed */
 } sw_mrc_t;
 
+/* Recent versions of PCRE2 are allocating 20kB per match, rather than the previous 112 B.
+When doing en extended loop of matching, release store periodically. */
+
+#define        REGEX_LOOPCOUNT_STORE_RESET     1000
+
+/* Debug an option access. Use for non-list ones about to be expanded
+(lists have their own debugging, under D_list). */
+#define GET_OPTION(name) \
+  DEBUG(D_expand) debug_printf("try option " name "\n");
+
 /* End of macros.h */
 /* End of macros.h */
+/* vi: aw ai sw=2
+*/