Index: subversion/libsvn_wc/adm_files.c =================================================================== --- subversion/libsvn_wc/adm_files.c +++ subversion/libsvn_wc/adm_files.c Sun Sep 8 17:23:05 2002 @@ -501,11 +501,12 @@ * an explicit call to sync_adm_file(). */ static svn_error_t * -open_adm_file (apr_file_t **handle, +open_adm_file_ex (apr_file_t **handle, const char *path, const char *extension, apr_int32_t flags, apr_pool_t *pool, + apr_fileperms_t perms, ...) { svn_error_t *err = NULL; @@ -518,11 +519,11 @@ { const char *opath, *tmp_path; - va_start (ap, pool); + va_start (ap, perms); opath = v_extend_with_adm_name (path, extension, 0, pool, ap); va_end (ap); - va_start (ap, pool); + va_start (ap, perms); tmp_path = v_extend_with_adm_name (path, extension, 1, pool, ap); va_end (ap); @@ -533,19 +534,21 @@ } /* Extend with tmp name. */ - va_start (ap, pool); + va_start (ap, perms); path = v_extend_with_adm_name (path, extension, 1, pool, ap); va_end (ap); } else { /* Extend with regular adm name. */ - va_start (ap, pool); + va_start (ap, perms); path = v_extend_with_adm_name (path, extension, 0, pool, ap); va_end (ap); } - err = svn_io_file_open (handle, path, flags, APR_OS_DEFAULT, pool); + if (perms == 0) perms = APR_OS_DEFAULT; + + err = svn_io_file_open (handle, path, flags, perms, pool); if (err) { /* Oddly enough, APR will set *HANDLE even if the open failed. @@ -558,6 +561,8 @@ return err; } +#define open_adm_file(fp, path, ext, flags, pool, n...) \ + open_adm_file_ex((fp), (path), (ext), (flags), (pool), APR_OS_DEFAULT, n) /* Close the file indicated by FP (PATH is passed to make error * reporting better). If SYNC is non-zero, then the file will be @@ -715,7 +720,7 @@ apr_int32_t flags, apr_pool_t *pool) { - return open_adm_file (handle, path, NULL, flags, pool, + return open_adm_file_ex (handle, path, NULL, flags, pool, APR_UREAD|APR_UWRITE, SVN_WC__ADM_AUTH_DIR, auth_filename, NULL); }