[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: proposal to add apr_check_dir_empty() to APR

From: William A. Rowe, Jr. <wrowe_at_rowe-clan.net>
Date: 2002-07-02 22:13:42 CEST

At 02:48 PM 7/2/2002, Karl Fogel wrote:
>Currently, apr_check_dir_empty() is living in the Subversion source
>tree. The implementation looks portable, though; is there any reason
>not to move this into APR?

One, the name sucks... perhaps apr_dir_is_empty()? Keep it named with the
other apr_dir_ family members and our general schema. We have to work hard
on consistency so we avoid symbol renames of newly created functions.

Other than that, I would _NOT_ assume all first two entries are "."/"..", but
if you make that an explicit string test, I'd be +1.

Also, APR_EGENERAL seems a bit vague, how about APR_EEXISTS?

> apr_status_t
> apr_check_dir_empty (const char *path,
> apr_pool_t *pool)
> {
> apr_status_t apr_err, retval;
> apr_dir_t *dir;
> apr_finfo_t finfo;
>
> apr_err = apr_dir_open (&dir, path, pool);
> if (apr_err)
> return apr_err;
>
> /* All systems return "." and ".." as the first two files, so read
> past them unconditionally. */
> apr_err = apr_dir_read (&finfo, APR_FINFO_NAME, dir);
> if (apr_err) return apr_err;
> apr_err = apr_dir_read (&finfo, APR_FINFO_NAME, dir);
> if (apr_err) return apr_err;
>
> /* Now, there should be nothing left. If there is something left,
> return EGENERAL. */
> apr_err = apr_dir_read (&finfo, APR_FINFO_NAME, dir);
> if (APR_STATUS_IS_ENOENT (apr_err))
> retval = APR_SUCCESS;
> else if (! apr_err)
> retval = APR_EGENERAL;
> else
> retval = apr_err;
>
> apr_err = apr_dir_close (dir);
> if (apr_err)
> return apr_err;
>
> return retval;
> }
>
>Thoughts?,
>-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jul 2 22:51:53 2002

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.