On Sun, 13 Oct 2002, William A. Rowe, Jr. wrote: > At 06:39 PM 10/13/2002, [EMAIL PROTECTED] wrote: > >On Sun, 13 Oct 2002, Aaron Bannert wrote: > > > >> On Sun, Oct 13, 2002 at 11:53:27AM -0400, Ryan Bloom wrote: > >> > > Is there a more APR-ish way to describe returning "true" or "false" > >> > > than > >> > > >> > As with all other APR functions. APR_SUCCESS indicates "true", Some > >> > other > >> > APR_STATUS code indicates false. > >> > >> No it doesn't. True and false can be orthogonal to success/failure. > >> How does one express a successfully false condition? > > > >that is why it is apr_status_t, not apr_error_t. There are specifically a > >set of status codes that do not indicate errors, only status > >conditions. That series of values starts with APR_OS_START_STATUS, and > >examples of them are APR_INCHILD, APR_INPARENT, APR_DETACH. They are > >commonly identified by the fact that they aren't APR_E*, rather they are > >just APR_*. > > Shouldn't these consistently return true for APR_STATUS_IS_SUCCESS()? > Seems like a good argument for retaining that macro we debated before.
No, they shouldn't. If those macros tested true for success, then it would lead to a great deal of developer confusion. For the most part, the functions that return status codes either can't return APR_SUCCESS or they return APR_SUCCESS to mean true. If you make these macros test true, then you will end up with potentially meaningless code like: rv = apr_proc_wait(proc, &exit, &why, APR_WAIT) if (APR_STATUS_IS_SUCCESS(rv)) { /* No clue if the process is dead or not, because the test is * meaningless. */ } Ryan _______________________________________________________________________________ Ryan Bloom [EMAIL PROTECTED] 550 Jean St Oakland CA 94610 -------------------------------------------------------------------------------