From 6475bd82de30cfbb2b0897a05d1200674aa88f4f Mon Sep 17 00:00:00 2001 From: Phil Pennock Date: Sat, 19 May 2012 17:59:09 -0400 Subject: [PATCH] PCRE_PRERELEASE fix, again --- doc/doc-txt/ChangeLog | 2 ++ src/src/exim.c | 21 +++++++++++---------- 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++) -- 2.30.2