Fix local-scan ABI. Bug 2458
authorAndreas Metzler <ametzler@bebt.de>
Sat, 26 Oct 2019 17:06:09 +0000 (18:06 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 26 Oct 2019 17:06:58 +0000 (18:06 +0100)
src/exim_monitor/em_log.c
src/src/functions.h
src/src/local_scan.h

index 1e1dc7c04c424e76a5d437548ba1a22b920f7fa6..348f0642f4854d97a25266fc02fae9af58484eba 100644 (file)
@@ -365,9 +365,8 @@ if (log_datestamping)
   {
   uschar log_file_wanted[256];
   /* Do *not* use "%s" here, we need the %D datestamp in the log_file string to
   {
   uschar log_file_wanted[256];
   /* Do *not* use "%s" here, we need the %D datestamp in the log_file string to
-  be expanded.  The trailing NULL arg is to quieten preprocessors that need at
-  least one arg for a variadic set in a macro. */
-  string_format(log_file_wanted, sizeof(log_file_wanted), CS log_file, NULL);
+  be expanded. */
+  string_format(log_file_wanted, sizeof(log_file_wanted), CS log_file);
   if (Ustrcmp(log_file_wanted, log_file_open) != 0)
     {
     if (LOG != NULL)
   if (Ustrcmp(log_file_wanted, log_file_open) != 0)
     {
     if (LOG != NULL)
index 3b3a12b18c2fbf1cfbcde79622f04b874209ab12..37bca23e321efc0d99d19658d7d7cb126f65227f 100644 (file)
@@ -520,7 +520,8 @@ extern uschar *string_localpart_utf8_to_alabel(const uschar *, uschar **);
 #endif
 
 #define string_format(buf, siz, fmt, ...) \
 #endif
 
 #define string_format(buf, siz, fmt, ...) \
-       string_format_trc(buf, siz, US __FUNCTION__, __LINE__, fmt, __VA_ARGS__)
+       string_format_trc(buf, siz, US __FUNCTION__, __LINE__, \
+                               fmt __VA_OPT__(,) __VA_ARGS__)
 extern BOOL    string_format_trc(uschar *, int, const uschar *, unsigned,
                        const char *, ...) ALMOST_PRINTF(5,6);
 
 extern BOOL    string_format_trc(uschar *, int, const uschar *, unsigned,
                        const char *, ...) ALMOST_PRINTF(5,6);
 
@@ -531,7 +532,8 @@ extern gstring *string_vformat_trc(gstring *, const uschar *, unsigned,
                        unsigned, unsigned, const char *, va_list);
 
 #define string_open_failed(eno, fmt, ...) \
                        unsigned, unsigned, const char *, va_list);
 
 #define string_open_failed(eno, fmt, ...) \
-       string_open_failed_trc(eno, US __FUNCTION__, __LINE__, fmt, __VA_ARGS__)
+       string_open_failed_trc(eno, US __FUNCTION__, __LINE__, \
+                               fmt __VA_OPT__(,) __VA_ARGS__)
 extern uschar *string_open_failed_trc(int, const uschar *, unsigned,
                        const char *, ...) PRINTF_FUNCTION(4,5);
 
 extern uschar *string_open_failed_trc(int, const uschar *, unsigned,
                        const char *, ...) PRINTF_FUNCTION(4,5);
 
@@ -831,11 +833,11 @@ if (g) store_release_above_3(g->s + (g->size = g->ptr + 1), file, line);
 
 #define string_fmt_append(g, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
 
 #define string_fmt_append(g, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
-       SVFMT_EXTEND|SVFMT_REBUFFER, fmt, __VA_ARGS__)
+       SVFMT_EXTEND|SVFMT_REBUFFER, fmt __VA_OPT__(,) __VA_ARGS__)
 
 #define string_fmt_append_f(g, flgs, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
 
 #define string_fmt_append_f(g, flgs, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
-       flgs,         fmt, __VA_ARGS__)
+                               flgs, fmt __VA_OPT__(,) __VA_ARGS__)
 
 static inline gstring *
 string_fmt_append_f_trc(gstring * g, const uschar * func, unsigned line,
 
 static inline gstring *
 string_fmt_append_f_trc(gstring * g, const uschar * func, unsigned line,
index fb878591e499abaf625532d503dc0fe84c85e85f..be263227eb69a8b360c390ec17be32015344bbf7 100644 (file)
@@ -99,7 +99,7 @@ each time a new feature is added (in a way that doesn't break backward
 compatibility). */
 
 #define LOCAL_SCAN_ABI_VERSION_MAJOR 2
 compatibility). */
 
 #define LOCAL_SCAN_ABI_VERSION_MAJOR 2
-#define LOCAL_SCAN_ABI_VERSION_MINOR 0
+#define LOCAL_SCAN_ABI_VERSION_MINOR 1
 #define LOCAL_SCAN_ABI_VERSION \
   LOCAL_SCAN_ABI_VERSION_MAJOR.LOCAL_SCAN_ABI_VERSION_MINOR
 
 #define LOCAL_SCAN_ABI_VERSION \
   LOCAL_SCAN_ABI_VERSION_MAJOR.LOCAL_SCAN_ABI_VERSION_MINOR
 
@@ -190,7 +190,7 @@ extern void    smtp_printf(const char *, BOOL, ...) PRINTF_FUNCTION(1,3);
 extern void    smtp_vprintf(const char *, BOOL, va_list);
 
 #define string_sprintf(fmt, ...) \
 extern void    smtp_vprintf(const char *, BOOL, va_list);
 
 #define string_sprintf(fmt, ...) \
-       string_sprintf_trc(fmt, US __FUNCTION__, __LINE__, __VA_ARGS__)
+       string_sprintf_trc(fmt, US __FUNCTION__, __LINE__ __VA_OPT__(,) __VA_ARGS__)
 extern uschar *string_sprintf_trc(const char *, const uschar *, unsigned, ...) ALMOST_PRINTF(1,4);
 
 #ifdef LOCAL_SCAN
 extern uschar *string_sprintf_trc(const char *, const uschar *, unsigned, ...) ALMOST_PRINTF(1,4);
 
 #ifdef LOCAL_SCAN
@@ -203,8 +203,8 @@ with the original name. */
 # define string_copy_taint(s, t) string_copy_taint_function((s), (t))
 
 extern uschar * string_copy_function(const uschar *);
 # define string_copy_taint(s, t) string_copy_taint_function((s), (t))
 
 extern uschar * string_copy_function(const uschar *);
-extern uschar * string_copyn_function(const uschar *);
-extern uschar * string_copy_taint_function(const uschar *);
+extern uschar * string_copyn_function(const uschar *, int n);
+extern uschar * string_copy_taint_function(const uschar *, BOOL tainted);
 #endif
 
 /* End of local_scan.h */
 #endif
 
 /* End of local_scan.h */