At 18:56 10/8/2002 +0200, Sascha Schumann wrote:
> Thus the rule should be: If autoconf finds the definition, we
> use it, otherwise we rely on our own, namespace-protected
> version. Example:
>
> #ifdef HAVE_STRUCT_SYSMSG
> typedef struct sysmsg php_sysmsg;
> #else
>
> typedef struct {
> long mtype;
> char mtext[1];
> } php_sysmsg;
>
> #endif
It's not a typedef but the struct itself that's provided, so that doesn't work.
I've made a patch now, that I'm not too keen on, but works.
It boils down to:
AC_TRY_COMPILE(...look for msgbuf,
[AC_DEFINE(HAVE_STRUCT_SYSV_MSGBUF,1,[struct msgbuf is in
sys/msg.h])],
[AC_TRY_COMPILE(...look for mymsg,
[AC_DEFINE(HAVE_STRUCT_SYSV_MSGBUF,1,[struct msgbuf is in
sys/msg.h]),
AC_DEFINE(msgbuf,mymsg,[msgbuf is called mymsg])
])
])
Then in sysvmsg.c:
#ifdef HAVE_STRUCT_SYSV_MSGBUF
#define php_msgbuf msgbuf
#else
struct php_msgbuf {
long mtype;
char mtext[1];
};
#endif
Replace all occurences of msgbuf with php_msgbuf.
As I said - it works, but it's a double pre-processor replace for mymsg. I
think I could just ignore
mymsg all together, but that would create two identical structs defined.
Not sure if that's
desirable (read: no idea what that impact and in what way).
Test 001.phpt passes though.
Met vriendelijke groeten / With kind regards,
Webmaster IDG.nl
Melvyn Sopacua
<@Logan> I spent a minute looking at my own code by accident.
<@Logan> I was thinking "What the hell is this guy doing?"
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php