From 415c8f3b2abccd8f04b0095551919adf142e6eee Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Tue, 24 May 2005 10:57:10 +0000 Subject: [PATCH] Remove broken code in exim.h that tried to preserve EX_OK when it was redefined in unistd.h (IRIX6). It didn't matter because EX_OK is not used. --- doc/doc-txt/ChangeLog | 8 +++++++- src/src/exim.h | 18 +++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index ea066a4a6..d7d60c09c 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.142 2005/05/24 08:28:58 tom Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.143 2005/05/24 10:57:10 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -41,6 +41,12 @@ TK/02 Rewrote SPF support to work with libspf2 versions >1.2.0. TK/03 Merged latest SRS patch from Miles Wilton. +PH/05 There's a shambles in IRIX6 - it defines EX_OK in unistd.h which conflicts + with the definition in sysexits.h (which is #included earlier). + Fortunately, Exim does not actually use EX_OK. The code used to try to + preserve the sysexits.h value, by assumimg that macro definitions were + scanned for macro replacements. I have been disabused of this notion, + so now the code just undefines EX_OK before #including unistd.h. Exim version 4.51 diff --git a/src/src/exim.h b/src/src/exim.h index 44e4ab31d..6721cb609 100644 --- a/src/src/exim.h +++ b/src/src/exim.h @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/exim.h,v 1.14 2005/05/23 16:58:56 fanf2 Exp $ */ +/* $Cambridge: exim/src/src/exim.h,v 1.15 2005/05/24 10:57:10 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -221,23 +221,19 @@ or a macro with entries f_frsize and f_bsize. */ #include /* There's a shambles in IRIX6 - it defines EX_OK in unistd.h which conflicts -with the definition in sysexits.h. Arrange to preserve it, even though at -present Exim doesn't actually use it. */ +with the definition in sysexits.h. Exim does not actually use this macro, so we +just undefine it. It would be nice to be able to re-instate the definition from +sysexits.h if there is no definition in unistd.h, but I do not think there is a +way to do this in C because macro definitions are not scanned for other macros +at definition time. [The code here used to assume they were, until I was +disabused of the notion. Luckily, since EX_OK is not used, it didn't matter.] */ #ifdef EX_OK -#define SAVE_EX_OK EX_OK #undef EX_OK #endif #include -#ifdef SAVE_EX_OK -#ifdef EX_OK -#undef EX_OK -#endif -#define EX_OK SAVE_EX_OK -#endif - #include #ifndef NO_NET_IF_H #include -- 2.25.1