apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Fogel <kfo...@newton.ch.collab.net>
Subject Re: Removing APR_STATUS_IS_SUCCESS macro
Date Fri, 10 May 2002 20:59:47 GMT
Justin Erenkrantz <jerenkrantz@apache.org> writes:
> Due to some recent confusion with SVN and APR_STATUS_IS_SUCCESS,
> I'd like to consider removing this macro and just forcing
> everyone to do either a non-zero check or checking against the
> APR_SUCCESS value (which isn't strictly needed because APR_SUCCESS
> will always be 0, but that's fine with me).
> Thoughts?  I know most of our code in APR and httpd-2.0 is
> pretty good about not using APR_STATUS_IS_SUCCESS.   -- justin

+1 if they always mean the same thing, but I'd like to first know the
answer to this question:

If APR_SUCCESS is absolutely and always defined to be zero, then why
does apr_errno.h define the APR_STATUS_IS_SUCCESS() macro like this
under WIN32

  #define APR_STATUS_IS_SUCCESS(s)           ((s) == APR_SUCCESS \
                  || (s) == APR_OS_START_SYSERR + ERROR_SUCCESS)

and like this under OS2:

  #define APR_STATUS_IS_SUCCESS(s)           ((s) == APR_SUCCESS \
                  || (s) == APR_OS_START_SYSERR + NO_ERROR)

That looks a bit more complex than just "== 0" to me... ?

Don't get me wrong: I too would like to test explicitly for it, but
the code above makes me think the macro is necessary (also, the
*existence* of the macro would make anyone think it's necessary to use
it -- if direct comparison is just as good, then it's confusing to
have the macro, and we should toss it).


View raw message