1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-08-05 00:07:51 +02:00

merge with 3.8.4g

This commit is contained in:
Jim Meyering
1993-10-17 22:43:10 +00:00
parent 1958250cc6
commit 214c19a8b3
5 changed files with 35 additions and 9 deletions
+16 -5
View File
@@ -176,18 +176,21 @@ main (argc, argv)
error (1, 0, "virtual memory exhausted");
for (; optind < argc; ++optind)
errors |= change_file_mode (argv[optind], changes);
errors |= change_file_mode (argv[optind], changes, 1);
exit (errors);
}
/* Change the mode of FILE according to the list of operations CHANGES.
Return 0 if successful, 1 if errors occurred. */
If DEREF_SYMLINK is non-zero and FILE is a symbolic link, change the
mode of the referenced file. If DEREF_SYMLINK is zero, ignore symbolic
links. Return 0 if successful, 1 if errors occurred. */
static int
change_file_mode (file, changes)
change_file_mode (file, changes, deref_symlink)
char *file;
struct mode_change *changes;
int deref_symlink;
{
struct stat file_stats;
unsigned short newmode;
@@ -201,7 +204,15 @@ change_file_mode (file, changes)
}
#ifdef S_ISLNK
if (S_ISLNK (file_stats.st_mode))
return 0;
if (! deref_symlink)
return 0;
else
if (stat (file, &file_stats))
{
if (force_silent == 0)
error (0, errno, "%s", file);
return 1;
}
#endif
newmode = mode_adjust (file_stats.st_mode, changes);
@@ -273,7 +284,7 @@ change_dir_mode (dir, changes, statp)
path = xrealloc (path, pathlength);
}
strcpy (path + dirlength, namep);
errors |= change_file_mode (path, changes);
errors |= change_file_mode (path, changes, 0);
}
free (path);
free (name_space);
+2 -2
View File
@@ -1477,8 +1477,8 @@ print_long_format (f)
}
if (S_ISCHR (f->stat.st_mode) || S_ISBLK (f->stat.st_mode))
printf ("%3u, %3u ", major (f->stat.st_rdev),
minor (f->stat.st_rdev));
printf ("%3u, %3u ", (unsigned) major (f->stat.st_rdev),
(unsigned) minor (f->stat.st_rdev));
else
printf ("%8lu ", f->stat.st_size);