fix showing ACL's for ls -Z (#487374), fix automatic column width for
names/groups for it as well
This commit is contained in:
parent
49c94e6cef
commit
a359684b15
@ -323,7 +323,26 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
};
|
};
|
||||||
ARGMATCH_VERIFY (format_args, format_types);
|
ARGMATCH_VERIFY (format_args, format_types);
|
||||||
|
|
||||||
@@ -1261,7 +1270,7 @@ main (int argc, char **argv)
|
@@ -1194,7 +1203,8 @@ main (int argc, char **argv)
|
||||||
|
/* Avoid following symbolic links when possible. */
|
||||||
|
if (is_colored (C_ORPHAN)
|
||||||
|
|| (is_colored (C_EXEC) && color_symlink_as_referent)
|
||||||
|
- || (is_colored (C_MISSING) && format == long_format))
|
||||||
|
+ || (is_colored (C_MISSING) && (format == long_format
|
||||||
|
+ || format == security_format)))
|
||||||
|
check_symlink_color = true;
|
||||||
|
|
||||||
|
/* If the standard output is a controlling terminal, watch out
|
||||||
|
@@ -1241,7 +1251,7 @@ main (int argc, char **argv)
|
||||||
|
if (dereference == DEREF_UNDEFINED)
|
||||||
|
dereference = ((immediate_dirs
|
||||||
|
|| indicator_style == classify
|
||||||
|
- || format == long_format)
|
||||||
|
+ || format == long_format || format == security_format)
|
||||||
|
? DEREF_NEVER
|
||||||
|
: DEREF_COMMAND_LINE_SYMLINK_TO_DIR);
|
||||||
|
|
||||||
|
@@ -1261,7 +1271,7 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
format_needs_stat = sort_type == sort_time || sort_type == sort_size
|
format_needs_stat = sort_type == sort_time || sort_type == sort_size
|
||||||
|| format == long_format
|
|| format == long_format
|
||||||
@ -332,7 +351,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
|| print_block_size;
|
|| print_block_size;
|
||||||
format_needs_type = (! format_needs_stat
|
format_needs_type = (! format_needs_stat
|
||||||
&& (recursive
|
&& (recursive
|
||||||
@@ -1292,7 +1301,7 @@ main (int argc, char **argv)
|
@@ -1292,7 +1302,7 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
do
|
do
|
||||||
@ -341,7 +360,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
while (i < argc);
|
while (i < argc);
|
||||||
|
|
||||||
if (cwd_n_used)
|
if (cwd_n_used)
|
||||||
@@ -1455,7 +1464,7 @@ decode_switches (int argc, char **argv)
|
@@ -1455,7 +1465,7 @@ decode_switches (int argc, char **argv)
|
||||||
ignore_mode = IGNORE_DEFAULT;
|
ignore_mode = IGNORE_DEFAULT;
|
||||||
ignore_patterns = NULL;
|
ignore_patterns = NULL;
|
||||||
hide_patterns = NULL;
|
hide_patterns = NULL;
|
||||||
@ -350,7 +369,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
|
|
||||||
/* FIXME: put this in a function. */
|
/* FIXME: put this in a function. */
|
||||||
{
|
{
|
||||||
@@ -1837,13 +1846,27 @@ decode_switches (int argc, char **argv)
|
@@ -1837,13 +1847,27 @@ decode_switches (int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'Z':
|
case 'Z':
|
||||||
@ -379,7 +398,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
default:
|
default:
|
||||||
usage (LS_FAILURE);
|
usage (LS_FAILURE);
|
||||||
}
|
}
|
||||||
@@ -2557,8 +2580,10 @@ clear_files (void)
|
@@ -2557,8 +2581,10 @@ clear_files (void)
|
||||||
struct fileinfo *f = sorted_file[i];
|
struct fileinfo *f = sorted_file[i];
|
||||||
free (f->name);
|
free (f->name);
|
||||||
free (f->linkname);
|
free (f->linkname);
|
||||||
@ -392,7 +411,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
cwd_n_used = 0;
|
cwd_n_used = 0;
|
||||||
@@ -2600,6 +2625,7 @@ gobble_file (char const *name, enum file
|
@@ -2600,6 +2626,7 @@ gobble_file (char const *name, enum file
|
||||||
memset (f, '\0', sizeof *f);
|
memset (f, '\0', sizeof *f);
|
||||||
f->stat.st_ino = inode;
|
f->stat.st_ino = inode;
|
||||||
f->filetype = type;
|
f->filetype = type;
|
||||||
@ -400,7 +419,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
|
|
||||||
if (command_line_arg
|
if (command_line_arg
|
||||||
|| format_needs_stat
|
|| format_needs_stat
|
||||||
@@ -2699,7 +2725,7 @@ gobble_file (char const *name, enum file
|
@@ -2699,7 +2726,7 @@ gobble_file (char const *name, enum file
|
||||||
|
|
||||||
f->stat_ok = true;
|
f->stat_ok = true;
|
||||||
|
|
||||||
@ -409,7 +428,43 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
{
|
{
|
||||||
bool have_selinux = false;
|
bool have_selinux = false;
|
||||||
bool have_acl = false;
|
bool have_acl = false;
|
||||||
@@ -3312,6 +3338,13 @@ print_current_files (void)
|
@@ -2732,7 +2760,7 @@ gobble_file (char const *name, enum file
|
||||||
|
err = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (err == 0 && format == long_format)
|
||||||
|
+ if (err == 0 && (format == long_format || format == security_format))
|
||||||
|
{
|
||||||
|
int n = file_has_acl (absolute_name, &f->stat);
|
||||||
|
err = (n < 0);
|
||||||
|
@@ -2751,7 +2779,8 @@ gobble_file (char const *name, enum file
|
||||||
|
}
|
||||||
|
|
||||||
|
if (S_ISLNK (f->stat.st_mode)
|
||||||
|
- && (format == long_format || check_symlink_color))
|
||||||
|
+ && (format == long_format || format == security_format
|
||||||
|
+ || check_symlink_color))
|
||||||
|
{
|
||||||
|
char *linkname;
|
||||||
|
struct stat linkstats;
|
||||||
|
@@ -2771,6 +2800,7 @@ gobble_file (char const *name, enum file
|
||||||
|
command line are automatically traced if not being
|
||||||
|
listed as files. */
|
||||||
|
if (!command_line_arg || format == long_format
|
||||||
|
+ || format == security_format
|
||||||
|
|| !S_ISDIR (linkstats.st_mode))
|
||||||
|
{
|
||||||
|
/* Get the linked-to file's mode for the filetype indicator
|
||||||
|
@@ -2810,7 +2840,7 @@ gobble_file (char const *name, enum file
|
||||||
|
block_size_width = len;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (format == long_format)
|
||||||
|
+ if (format == long_format || format == security_format)
|
||||||
|
{
|
||||||
|
if (print_owner)
|
||||||
|
{
|
||||||
|
@@ -3312,6 +3341,13 @@ print_current_files (void)
|
||||||
print_long_format (sorted_file[i]);
|
print_long_format (sorted_file[i]);
|
||||||
DIRED_PUTCHAR ('\n');
|
DIRED_PUTCHAR ('\n');
|
||||||
}
|
}
|
||||||
@ -423,7 +478,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3434,6 +3467,69 @@ format_group_width (gid_t g)
|
@@ -3434,6 +3470,69 @@ format_group_width (gid_t g)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -493,16 +548,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
/* Print information about F in long format. */
|
/* Print information about F in long format. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -3499,7 +3595,7 @@ print_long_format (const struct fileinfo
|
@@ -3528,9 +3627,15 @@ print_long_format (const struct fileinfo
|
||||||
The latter is wrong when inode_number_width is zero. */
|
|
||||||
p += strlen (p);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
if (print_block_size)
|
|
||||||
{
|
|
||||||
char hbuf[LONGEST_HUMAN_READABLE + 1];
|
|
||||||
@@ -3528,9 +3624,15 @@ print_long_format (const struct fileinfo
|
|
||||||
The latter is wrong when nlink_width is zero. */
|
The latter is wrong when nlink_width is zero. */
|
||||||
p += strlen (p);
|
p += strlen (p);
|
||||||
|
|
||||||
@ -519,7 +565,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
{
|
{
|
||||||
DIRED_FPUTS (buf, stdout, p - buf);
|
DIRED_FPUTS (buf, stdout, p - buf);
|
||||||
|
|
||||||
@@ -3543,9 +3645,6 @@ print_long_format (const struct fileinfo
|
@@ -3543,9 +3648,6 @@ print_long_format (const struct fileinfo
|
||||||
if (print_author)
|
if (print_author)
|
||||||
format_user (f->stat.st_author, author_width, f->stat_ok);
|
format_user (f->stat.st_author, author_width, f->stat_ok);
|
||||||
|
|
||||||
@ -529,7 +575,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
p = buf;
|
p = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3888,9 +3987,6 @@ print_file_name_and_frills (const struct
|
@@ -3888,9 +3990,6 @@ print_file_name_and_frills (const struct
|
||||||
human_readable (ST_NBLOCKS (f->stat), buf, human_output_opts,
|
human_readable (ST_NBLOCKS (f->stat), buf, human_output_opts,
|
||||||
ST_NBLOCKSIZE, output_block_size));
|
ST_NBLOCKSIZE, output_block_size));
|
||||||
|
|
||||||
@ -539,7 +585,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
size_t width = print_name_with_quoting (f->name, FILE_OR_LINK_MODE (f),
|
size_t width = print_name_with_quoting (f->name, FILE_OR_LINK_MODE (f),
|
||||||
f->linkok, f->stat_ok, f->filetype,
|
f->linkok, f->stat_ok, f->filetype,
|
||||||
NULL, f->stat.st_nlink, start_col);
|
NULL, f->stat.st_nlink, start_col);
|
||||||
@@ -4105,9 +4201,6 @@ length_of_file_name_and_frills (const st
|
@@ -4105,9 +4204,6 @@ length_of_file_name_and_frills (const st
|
||||||
output_block_size))
|
output_block_size))
|
||||||
: block_size_width);
|
: block_size_width);
|
||||||
|
|
||||||
@ -549,7 +595,7 @@ diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
|
|||||||
quote_name (NULL, f->name, filename_quoting_options, &name_width);
|
quote_name (NULL, f->name, filename_quoting_options, &name_width);
|
||||||
len += name_width;
|
len += name_width;
|
||||||
|
|
||||||
@@ -4538,9 +4631,16 @@ Mandatory arguments to long options are
|
@@ -4538,9 +4634,16 @@ Mandatory arguments to long options are
|
||||||
-w, --width=COLS assume screen width instead of current value\n\
|
-w, --width=COLS assume screen width instead of current value\n\
|
||||||
-x list entries by lines instead of by columns\n\
|
-x list entries by lines instead of by columns\n\
|
||||||
-X sort alphabetically by entry extension\n\
|
-X sort alphabetically by entry extension\n\
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 7.1
|
Version: 7.1
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.gnu.org/software/coreutils/
|
Url: http://www.gnu.org/software/coreutils/
|
||||||
@ -311,6 +311,10 @@ fi
|
|||||||
/sbin/runuser
|
/sbin/runuser
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 26 2009 Ondrej Vasik <ovasik@redhat.com> 7.1-4
|
||||||
|
- fix showing ACL's for ls -Z (#487374), fix automatic
|
||||||
|
column width for it as well
|
||||||
|
|
||||||
* Wed Feb 25 2009 Ondrej Vasik <ovasik@redhat.com> 7.1-3
|
* Wed Feb 25 2009 Ondrej Vasik <ovasik@redhat.com> 7.1-3
|
||||||
- fix couple of bugs (including #485715) in sort with
|
- fix couple of bugs (including #485715) in sort with
|
||||||
determining end of fields(upstream)
|
determining end of fields(upstream)
|
||||||
|
Loading…
Reference in New Issue
Block a user