From: Phil Pennock Date: Sat, 19 May 2012 21:59:09 +0000 (-0400) Subject: PCRE_PRERELEASE fix, again X-Git-Tag: exim-4_80_RC3~16 X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=commitdiff_plain;h=6475bd82de30cfbb2b0897a05d1200674aa88f4f PCRE_PRERELEASE fix, again --- 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++)