summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog2
-rw-r--r--src/src/exim.c21
2 files changed, 13 insertions, 10 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 08fd2efe5..620d87114 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -127,6 +127,8 @@ PP/29 Fix three issues highlighted by clang analyser static analysis.
iplookup router and a misconfiguration.
Report from Marcin Mirosław.
+PP/30 Another attempt to deal with PCRE_PRERELEASE, this one less buggy.
+
Exim version 4.77
-----------------
diff --git a/src/src/exim.c b/src/src/exim.c
index 720d2283c..af01d40d4 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -976,20 +976,21 @@ DEBUG(D_any) do {
}
}
+ /* PRE_PRERELEASE is either defined and empty or a bare sequence of
+ characters; unless it's an ancient version of PCRE in which case it
+ is not defined. */
+#ifndef PCRE_PRERELEASE
+#define PCRE_PRERELEASE
+#endif
+#define QUOTE(X) #X
+#define EXPAND_AND_QUOTE(X) QUOTE(X)
fprintf(f, "Library version: PCRE: Compile: %d.%d%s\n"
" Runtime: %s\n",
PCRE_MAJOR, PCRE_MINOR,
- /* PRE_PRERELEASE is either defined and empty or a string.
- * unless its an ancient version of PCRE in which case it
- * is not defined */
-#ifdef PCRE_PRERELEASE
-# define STRINGIFY(x) #x
- STRINGIFY(PCRE_PRERELEASE) "",
-# undef STRINGIFY
-#else
- "",
-#endif
+ EXPAND_AND_QUOTE(PCRE_PRERELEASE) "",
pcre_version());
+#undef QUOTE
+#undef EXPAND_AND_QUOTE
init_lookup_list();
for (i = 0; i < lookup_list_count; i++)