static mode_t newdir_umask; /* umask when creating new directories */
static mode_t current_umask; /* current umask (which is set to 0 if -p) */
-#define ALL_MODE_BITS ((mode_t) ~ (mode_t) 0)
+static mode_t const all_mode_bits = ~ (mode_t) 0;
#if ! HAVE_FCHMOD && ! defined fchmod
# define fchmod(fd, mode) (errno = ENOSYS, -1)
data->atime = current_stat_info.atime;
data->mtime = current_stat_info.mtime;
data->current_mode = st.st_mode;
- data->current_mode_mask = ALL_MODE_BITS;
+ data->current_mode_mask = all_mode_bits;
data->interdir = false;
return;
}
&& tar_timespec_cmp (tar_stat->mtime, get_stat_mtime (stp)) <= 0);
}
-#define RECOVER_NO 0
-#define RECOVER_OK 1
-#define RECOVER_SKIP 2
+enum recover { RECOVER_NO, RECOVER_OK, RECOVER_SKIP };
/* Attempt repairing what went wrong with the extraction. Delete an
already existing file or create missing intermediate directories.
Set *INTERDIR_MADE if an intermediate directory is made as part of
the recovery process. */
-static int
+static enum recover
maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
{
int e = errno;
else
{
current_mode = st.st_mode;
- current_mode_mask = ALL_MODE_BITS;
+ current_mode_mask = all_mode_bits;
if (! (st.st_dev == data->dev && st.st_ino == data->ino))
{
paxerror (0,
|| deref_stat (file_name, &st) == 0)
{
current_mode = st.st_mode;
- current_mode_mask = ALL_MODE_BITS;
+ current_mode_mask = all_mode_bits;
if (S_ISDIR (current_mode))
{
return -1;
}
*current_mode = st.st_mode;
- *current_mode_mask = ALL_MODE_BITS;
+ *current_mode_mask = all_mode_bits;
}
}
¤t_mode_mask))
< 0))
{
- int recover = maybe_recoverable (file_name, true, &interdir_made);
+ enum recover recover
+ = maybe_recoverable (file_name, true, &interdir_made);
if (recover != RECOVER_OK)
{
skip_member ();
{
bool interdir_made = false;
char const *link_name;
- int rc;
+ enum recover rc;
link_name = current_stat_info.link_name;