(set_stat): Remove duplicate code.

This commit is contained in:
Paul Eggert
1999-11-07 21:06:38 +00:00
parent 26505948d9
commit 7be178a4d4

View File

@@ -155,8 +155,6 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag)
if (0 < same_owner_option)
{
#if HAVE_LCHOWN
/* When lchown exists, it should be used to change the attributes of
the symbolic link itself. In this case, a mere chown would change
the attributes of the file the symbolic link is pointing to, and
@@ -164,11 +162,13 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag)
if (symlink_flag)
{
#if HAVE_LCHOWN
if (lchown (file_name, stat_info->st_uid, stat_info->st_gid) < 0)
ERROR ((0, errno, _("%s: Cannot lchown to uid %lu gid %lu"),
file_name,
(unsigned long) stat_info->st_uid,
(unsigned long) stat_info->st_gid));
#endif
}
else
{
@@ -177,28 +177,13 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag)
file_name,
(unsigned long) stat_info->st_uid,
(unsigned long) stat_info->st_gid));
/* On a few systems, and in particular, those allowing to give files
away, changing the owner or group destroys the suid or sgid bits.
So let's attempt setting these bits once more. */
if (stat_info->st_mode & (S_ISUID | S_ISGID | S_ISVTX))
set_mode (file_name, stat_info);
}
#else /* not HAVE_LCHOWN */
if (!symlink_flag)
if (chown (file_name, stat_info->st_uid, stat_info->st_gid) < 0)
ERROR ((0, errno, _("%s: Cannot chown to uid %lu gid %lu"),
file_name,
(unsigned long) stat_info->st_uid,
(unsigned long) stat_info->st_gid));
#endif/* not HAVE_LCHOWN */
if (!symlink_flag)
/* On a few systems, and in particular, those allowing to give files
away, changing the owner or group destroys the suid or sgid bits.
So let's attempt setting these bits once more. */
if (stat_info->st_mode & (S_ISUID | S_ISGID | S_ISVTX))
set_mode (file_name, stat_info);
}
}