1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-15 15:06:42 +00:00

Style: rename 'mkdirpath' so it's clearer exactly what it does.

(To be precise, it creates the parent dir of the provided path.)
This commit is contained in:
Tim Kientzle 2004-07-15 03:13:27 +00:00
parent e2ad640e13
commit 6a1d1828e7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=132168

View File

@ -72,7 +72,7 @@ struct fixup_entry {
struct extract {
mode_t umask;
mode_t default_dir_mode;
struct archive_string mkdirpath;
struct archive_string create_parent_dir;
struct fixup_entry *fixup_list;
struct fixup_entry *current_fixup;
@ -110,9 +110,11 @@ static int extract_hard_link(struct archive *, struct archive_entry *, int);
static int extract_symlink(struct archive *, struct archive_entry *, int);
static gid_t lookup_gid(struct archive *, const char *uname, gid_t);
static uid_t lookup_uid(struct archive *, const char *uname, uid_t);
static int mkdirpath(struct archive *, const char *, int flags);
static int mkdirpath_internal(struct archive *, char *, int flags);
static int mkdirpath_recursive(struct archive *, char *, int flags);
static int create_parent_dir(struct archive *, const char *, int flags);
static int create_parent_dir_internal(struct archive *, char *,
int flags);
static int create_parent_dir_recursive(struct archive *, char *,
int flags);
static int restore_metadata(struct archive *, struct archive_entry *,
int flags);
#ifdef HAVE_POSIX_ACL
@ -275,7 +277,7 @@ archive_extract_cleanup(struct archive *a)
p = next;
}
extract->fixup_list = NULL;
archive_string_free(&extract->mkdirpath);
archive_string_free(&extract->create_parent_dir);
free(a->extract);
a->extract = NULL;
}
@ -409,7 +411,7 @@ extract_file(struct archive *a, struct archive_entry *entry, int flags)
/* Might be a non-existent parent dir; try fixing that. */
if (fd < 0) {
mkdirpath(a, name, flags);
create_parent_dir(a, name, flags);
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, mode);
}
if (fd < 0) {
@ -434,8 +436,9 @@ extract_dir(struct archive *a, struct archive_entry *entry, int flags)
extract->pst = NULL; /* Invalidate cached stat data. */
/* Copy path to mutable storage. */
archive_strcpy(&(extract->mkdirpath), archive_entry_pathname(entry));
path = extract->mkdirpath.s;
archive_strcpy(&(extract->create_parent_dir),
archive_entry_pathname(entry));
path = extract->create_parent_dir.s;
/* Deal with any troublesome trailing path elements. */
for (;;) {
@ -477,7 +480,7 @@ extract_dir(struct archive *a, struct archive_entry *entry, int flags)
unlink(path);
} else {
/* Doesn't already exist; try building the parent path. */
if (mkdirpath_internal(a, path, flags) != ARCHIVE_OK)
if (create_parent_dir_internal(a, path, flags) != ARCHIVE_OK)
return (ARCHIVE_WARN);
}
@ -512,24 +515,26 @@ extract_dir(struct archive *a, struct archive_entry *entry, int flags)
* path into mutable storage first.
*/
static int
mkdirpath(struct archive *a, const char *path, int flags)
create_parent_dir(struct archive *a, const char *path, int flags)
{
struct extract *extract;
int r;
extract = a->extract;
/* Copy path to mutable storage. */
archive_strcpy(&(extract->mkdirpath), path);
archive_strcpy(&(extract->create_parent_dir), path);
return (mkdirpath_internal(a, extract->mkdirpath.s, flags));
r = create_parent_dir_internal(a, extract->create_parent_dir.s, flags);
return (r);
}
/*
* Handle remaining setup for mkdirpath_recursive(), assuming
* Handle remaining setup for create_parent_dir_recursive(), assuming
* path is already in mutable storage.
*/
static int
mkdirpath_internal(struct archive *a, char *path, int flags)
create_parent_dir_internal(struct archive *a, char *path, int flags)
{
char *slash;
mode_t old_umask;
@ -541,7 +546,7 @@ mkdirpath_internal(struct archive *a, char *path, int flags)
return (ARCHIVE_OK);
*slash = '\0';
old_umask = umask(~SECURE_DIR_MODE);
r = mkdirpath_recursive(a, path, flags);
r = create_parent_dir_recursive(a, path, flags);
umask(old_umask);
*slash = '/';
return (r);
@ -554,7 +559,7 @@ mkdirpath_internal(struct archive *a, char *path, int flags)
* Otherwise, returns ARCHIVE_WARN.
*/
static int
mkdirpath_recursive(struct archive *a, char *path, int flags)
create_parent_dir_recursive(struct archive *a, char *path, int flags)
{
struct stat st;
struct extract *extract;
@ -579,7 +584,7 @@ mkdirpath_recursive(struct archive *a, char *path, int flags)
/* Don't bother trying to create null path, '.', or '..'. */
if (slash != NULL) {
*slash = '\0';
r = mkdirpath_recursive(a, path, flags);
r = create_parent_dir_recursive(a, path, flags);
*slash = '/';
return (r);
}
@ -611,7 +616,7 @@ mkdirpath_recursive(struct archive *a, char *path, int flags)
return (ARCHIVE_WARN);
} else if (slash != NULL) {
*slash = '\0';
r = mkdirpath_recursive(a, path, flags);
r = create_parent_dir_recursive(a, path, flags);
*slash = '/';
if (r != ARCHIVE_OK)
return (r);
@ -658,7 +663,7 @@ extract_hard_link(struct archive *a, struct archive_entry *entry, int flags)
if (r != 0) {
/* Might be a non-existent parent dir; try fixing that. */
mkdirpath(a, pathname, flags);
create_parent_dir(a, pathname, flags);
r = link(linkname, pathname);
}
@ -695,7 +700,7 @@ extract_symlink(struct archive *a, struct archive_entry *entry, int flags)
if (r != 0) {
/* Might be a non-existent parent dir; try fixing that. */
mkdirpath(a, pathname, flags);
create_parent_dir(a, pathname, flags);
r = symlink(linkname, pathname);
}
@ -728,7 +733,7 @@ extract_device(struct archive *a, struct archive_entry *entry,
/* Might be a non-existent parent dir; try fixing that. */
if (r != 0 && errno == ENOENT) {
mkdirpath(a, archive_entry_pathname(entry), flags);
create_parent_dir(a, archive_entry_pathname(entry), flags);
r = mknod(archive_entry_pathname(entry), mode,
archive_entry_rdev(entry));
}
@ -777,7 +782,7 @@ extract_fifo(struct archive *a, struct archive_entry *entry, int flags)
/* Might be a non-existent parent dir; try fixing that. */
if (r != 0 && errno == ENOENT) {
mkdirpath(a, archive_entry_pathname(entry), flags);
create_parent_dir(a, archive_entry_pathname(entry), flags);
r = mkfifo(archive_entry_pathname(entry),
archive_entry_mode(entry));
}