diff options
Diffstat (limited to 'file_io/os2/dir.c')
-rw-r--r-- | file_io/os2/dir.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/file_io/os2/dir.c b/file_io/os2/dir.c index f1554b6f3..d1a0072cc 100644 --- a/file_io/os2/dir.c +++ b/file_io/os2/dir.c @@ -79,24 +79,28 @@ APR_DECLARE(apr_status_t) apr_dir_close(apr_dir_t *thedir) return APR_FROM_OS_ERROR(rv); } - - APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, apr_dir_t *thedir) { + return apr_dir_pread(finfo, wanted, thedir, thedir->pool); +} + +APR_DECLARE(apr_status_t) apr_dir_pread(apr_finfo_t *finfo, apr_int32_t wanted, + apr_dir_t *thedir, apr_pool_t *pool) +{ int rv; ULONG entries = 1; if (thedir->handle == 0) { thedir->handle = HDIR_CREATE; - rv = DosFindFirst(apr_pstrcat(thedir->pool, thedir->dirname, "/*", NULL), &thedir->handle, + rv = DosFindFirst(apr_pstrcat(pool, thedir->dirname, "/*", NULL), &thedir->handle, FILE_ARCHIVED|FILE_DIRECTORY|FILE_SYSTEM|FILE_HIDDEN|FILE_READONLY, &thedir->entry, sizeof(thedir->entry), &entries, FIL_STANDARD); } else { rv = DosFindNext(thedir->handle, &thedir->entry, sizeof(thedir->entry), &entries); } - finfo->pool = thedir->pool; + finfo->pool = pool; finfo->fname = NULL; finfo->valid = 0; |