I've come up with a different scheme for doing the DEBUG() and DEBUGADD()
authorChristopher R. Hertel <crh@samba.org>
Tue, 11 Aug 1998 18:56:03 +0000 (18:56 +0000)
committerChristopher R. Hertel <crh@samba.org>
Tue, 11 Aug 1998 18:56:03 +0000 (18:56 +0000)
commit53b433e6ab9fd69a02016ee4f2a3f756640ea565
treee388fa46b1d73620138c8646ef2367c23d19045f
parent8fedcfc48da2741722b867bbb056a078901e7431
I've come up with a different scheme for doing the DEBUG() and DEBUGADD()
macros that meets the RVALUE requirement and doesn't use the (a?b:c) format
that Andrew called "ugly".  I've added the new macros but kept the old
macros within a #if 0..#else..#endif block in case I've missed somthing.

Basically, I've used

  (void)( (a) && (b) )

or

  (void)( (a) && (b) && (c) )

instead of

  ( (a) ? (void)(b) : (void)(c) )

or similar.  I have this compiled and running now.

Here's the diff:

$ cvs diff smb.h
Enter passphrase for RSA key 'crh@Ruby':
Index: smb.h
===================================================================
RCS file: /data/cvs/samba/source/include/smb.h,v
retrieving revision 1.172
diff -r1.172 smb.h
143a144,145
> #if 0
>
150a153,164
>
> #else
>
> #define DEBUG( level, body ) \
>   (void)( (DEBUGLEVEL >= (level)) \
>        && (dbghdr( level, FILE_MACRO, FUNCTION_MACRO, (__LINE__) )) \
>        && (dbgtext body) )
>
> #define DEBUGADD( level, body ) \
>   (void)( (DEBUGLEVEL >= (level)) && (dbgtext body) )
>
> #endif

Chris -)-----
source/include/smb.h