/* 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 */
#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 */
#define SR_FINAL TRUE
#define SR_NOT_FINAL FALSE
+/* Return codes for smtp_write_mail_and_rcpt_cmds() */
+typedef enum {
+ sw_mrc_ok, /* good, rcpt results in addr->transport_return (PENDING_OK, DEFER, FAIL) */
+ sw_mrc_bad_mail, /* MAIL response error */
+ sw_mrc_bad_read, /* any non-MAIL read i/o error */
+ sw_mrc_nonmail_read_timeo, /* non-MAIL response timeout */
+ sw_mrc_bad_internal, /* internal error; channel still usable */
+ 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. */
+#define GET_OPTION(name) \
+ DEBUG(D_expand) debug_printf("try option " name "\n");
+
/* End of macros.h */