summaryrefslogtreecommitdiff
path: root/src/ls.c
AgeCommit message (Collapse)Author
2005-09-16Include stat-time.h, and use its functions instead of the obsoletePaul Eggert
TIMESPEC_NS macro.
2005-09-05Colorize set-user-ID and set-group-ID files and sticky,Jim Meyering
other-writable, and sticky-and-other-writable directories. (indicator_no[]): Add new symbols. (indicator_name[]): Add corresponding mode strings. (color_indicator[]): Add an entry for each new mode string. (print_color_indicator): Honor new types. From Mike Frysinger, based on a patch from Fedora.
2005-08-14(long_time_expected_width): Revert last change, just toJim Meyering
be paranoid, and add a comment explaining why. Paul Eggert mentioned the possibility.
2005-08-12(long_time_expected_width): Don't test for failed localtime.Jim Meyering
That cannot happen when the result date's year is in range. Add an assertion instead.
2005-08-12(sort_files): Use cleaner `sizeof *VAR_NAME' rather than `sizeof (TYPE_NAME)'.Jim Meyering
2005-07-09Use only HAVE_SYS_IOCTL_H to decide whether to include sys/ioctl.h.Paul Eggert
stropt.h -> stropts.h
2005-07-08Include stropt.h if available.Paul Eggert
2005-07-03Include "lstat.h" rather than rolling our own.Paul Eggert
2005-06-30Add uses of ARGMATCH_VERIFY to ensure thatJim Meyering
corresponding option string and value arrays are consistent.
2005-06-29(gobble_file): Use stat.st_author, not stat.st_uidJim Meyering
when computing the --author column width. This bug might have resulted in misaligned columns when using the --author option on the Hurd. Spotted by Arnold Robbins. The bug was introduced on 2003-12-03.
2005-06-10(any_has_acl): New var.Paul Eggert
(clear_files): Clear it. (gobble_file): Set it if a file has an ACL. (print_long_format): Omit needless space unless some file has an ACL.
2005-06-02Don't use "path" or "filename".Paul Eggert
(make_link_name): Renamed from make_link_path. All uses changed.
2005-05-14Update FSF postal mail address.Jim Meyering
2005-05-14Update FSF postal mail address.Jim Meyering
2005-05-12Assume `free (NULL)' works.Jim Meyering
2005-05-02(usage): ls --indicator-style=directory renamed to lsPaul Eggert
--indicator-style=slash, to avoid confusion with ls --directory. (slash): Renamed from directory_only. All uses changed.
2005-04-29(enum indicator_style): New constant directory_only,Paul Eggert
for -p. (indicator_style_args, indicator_style_types): Set it appropriately. (decode_switches, gobble_file, print_type_indicator): (length_of_file_name_and_frills): Implement the change described in NEWS. (decode_switches): Quote ">", too. (usage): Update to match the new behavior. Describe ">".
2005-04-12(usage): uid -> user IDPaul Eggert
2005-04-09(SA_NOCLDSTOP): Define to 0 if not defined.Paul Eggert
All uses changed. (siginterrupt) [! HAVE_SIGINTERRUPT]: New macro. (main) [! SA_NOCLDSTOP]: Use it.
2005-03-28(time_style_args, indicator_style_args, long_options)Jim Meyering
(format_args, sort_args, time_args, decode_switches) (gobble_file): Use NULL, not `0'.
2005-03-26(usage): Document usage of LS_COLORS.Jim Meyering
2005-03-22(get_funky_string): Use '\a', rather than 7, for portability to EBCDIC hosts.Jim Meyering
2005-03-11(TIME_STAMP_LEN_MAXIMUM): New constant.Paul Eggert
(long_time_expected_width, print_long_format): Use it, to avoid some possible denial-of-service attacks.
2005-03-10(long_time_expected_width): Use x2nrealloc, not alloca,Jim Meyering
so format string abuse cannot provoke stack overflow. (print_long_format): Likewise.
2005-03-06Remove `register' keyword.Jim Meyering
2005-02-21(time): Remove obsolete decl.Paul Eggert
(get_current_time): gettimeofday always returns 0, so don't check its result.
2004-12-17(print_dir): Use "%s: not listing already-listedPaul Eggert
directory", not "not listing already-listed directory: %s", to format already-listed directories, to be consistent with other diagnostics involving file names and colons.
2004-12-14(gobble_file): Change arg name to be command_line_argPaul Eggert
rather than explicit_arg, for consistency with copy.c. (extract_dirs_from_files): Remove ignore_dot_and_dot_dot arg, since it is deducible from dirname arg. All callers changed. (extract_dirs_from_files, print_dir, queue_directory): Add command_line_arg arg. All callers changed. (struct pending): Add command_line_arg member. (main): Use NULL rather than 0 when appropriate. (set_exit_status, file_failure): New functions. (queue_directory): Store command_line_arg into new structure. (print_dir, gobble_file, get_link_name): Use file_failure to report problems in accessing files, so that the exit status is set consistently. (print_dir): Simplify readdir failure code yet again. If closedir fails, report "closing directory" rather than "reading directory" failure. (xstrcoll): Use set_exit_status to set status on failure.
2004-12-09(LS_MINOR_PROBLEM, LS_FAILURE): New constants.Paul Eggert
All uses of EXIT_FAILURE replaced with LS_FAILURE, unless specified below. (main): Initialize exit failure to LS_FAILURE. (print_dir, gobble_file, get_link_name, xstrcoll): Set exit status to LS_MINOR_PROBLEM if the failure is minor. (print_dir): Do not give up on entire directory merely because readdir returns EOVERFLOW. (usage): Explain exit status.
2004-12-02With using --color and with LS_COLORS saying not to colorJim Meyering
executables, don't stat every file. (is_colored): New function. (gobble_file): Use it. (main): Use it here, in place of too-strict tests against NULL: if either ORPHAN or MISSING was set to 0 from LS_COLORS, the old test would fail.
2004-12-02(sort_files): Minor cleanup. Remove an unnecessaryPaul Eggert
'volatile' on a local variable. Rewrite to avoid unnecessary double-assignment to 'func' in the usual case where strcoll does not fail.
2004-11-19(usage): Clarified description of --no-group (-G),Jim Meyering
--human-readable (-h), --inode (-i), --size (-s), --time, and --time-style.
2004-11-19(usage): Clarify description of --author.Jim Meyering
Tweak indentation so that help2man creates better nroff.
2004-10-05(ignore_mode): Renamed from ignore, to avoid shadowingPaul Eggert
problems. All uses changed.
2004-10-05remove trailing blanks.Jim Meyering
2004-09-26Add "ls --hide".Paul Eggert
(file_ignored): Renamed from file_interesting, with inverted return value. Accept the file name, not a struct dirent *. All uses changed. Avoid the expense of calling fnmatch if the file is ignorable due to leading '.'. (all_files, really_all_files): Removed; replaced by: (ignore): New variable. All uses changed. (IGNORE_DEFAULT, IGNORE_DOT_AND_DOTDOT, IGNORE_MINIMAL, HIDE_OPTION): New constants. (hide_patterns): New variable. (long_options, decode_switches, file_ignored, usage): Add support for --hide. (patterns_match): New function. (usage): Replace "hide" with "ignore" in explanation, to avoid confusion.
2004-09-26Remove unused variable.Paul Eggert
2004-09-26(gobble_file, print_long_format): Don't assume thatPaul Eggert
human-readable output has a byte count equal to its column width; this isn't always true in locales where the radix character is not '.' or ','. (format_user_or_group): Revamp code to match the above fix; this avoids the (very faint) possibility of integer overflow.
2004-09-22(decode_switches): Don't compare a short valuePaul Eggert
to SIZE_MAX: GCC sometimes complains.
2004-09-21Remove unused "case 0".Paul Eggert
2004-08-03(struct fileinfo, file_interesting,Paul Eggert
extract_dirs_from_files, color_symlink_as_referent, FILE_OR_LINK_MODE, sort_reverse, print_owner, print_group, numeric_ids, print_block_size, dired, print_with_color, check_symlink_color, print_inode, recursive, immediate_dirs, all_files, really_all_files, qmark_funny_chars, print_dir_name, format_needs_stat, format_needs_type, visit_dir, main, decode_switches, parse_ls_color, print_dir, file_interesting, gobble_file, make_link_path, basename_is_dot_or_dotdot, extract_dirs_from_files, print_long_format): Use bool for booleans. (dir_defaulted): Remove; no longer needed. (main): Use int to count files, since it suffices for argv. Rewrite to avoid need for dir_defaulted. (main, print_dir, gobble_file, get_link_name, xstrcoll): Set exit status to EXIT_SUCCES/EXIT_FAILURE rather than 0/1. (decode_switches): Put back check for ws.ws_col <= SIZE_MAX. Remove unnecessary cast to int. Use int instead of unsigned int to count from 0 to 1. (get_funky_string, print_type_indicator): Use char for bytes, not int. (make_link_path): Use NULL for null pointers. (quote_name): Use to_uchar instead of cast.
2004-06-22Fix bug: GNU 'ls' didn't count columns correctly if user or groupJim Meyering
names contained multibyte characters where the column count differed from the byte count. This patch also corrects some comments. (format_user_or_group): New function, which counts columns correctly. (format_user, format_group): Use it. (format_user_or_group_width): New function, which counts columns correctly. (format_user_width, format_group_width): Use it.
2004-06-15(decode_switches): Pay attention to TABSIZE even if POSIXLY_CORRECTJim Meyering
is set. POSIX reserves upper-case environment variables to the implementation, so it's OK for ls to depend on TABSIZE.
2004-06-01(get_link_name): Update use of xreadlink.Jim Meyering
2004-04-24More signal-handling cleanup for ls.c. Do not allow signals toJim Meyering
happen between arbitrary output bytes, as the restore-default-color sequence can bollix up multibyte chars or color-change sequences in the ordinary output. Instead, process signals only between printing a file name and changing the color back to non_filename_text color. That way, if the signal handler changes the color (to the default), 'ls' will change it back when 'ls' continues (after being suspended). Also, do not bother with signal-handling unless stdout is a controlling terminal; this lets stdio buffer better when "ls --color" is piped or sent to a file. (sigprocmask, sigset_t) [!defined SA_NOCLDSTOP]: New macros. Do not include "full-write.h"; no longer needed. (tcgetpgrp) [! HAVE_TCGETPGRP]: New macro. (put_indicator_direct): Remove. All callers changed to use put_indicator. (caught_signals, interrupt_signal, stop_signal_count): New vars. (restore_default_color): Don't bother checking for put_indicator failure. (sighandler): Don't handle SIGTSTP; that's another handler now. Simply set interrupt_signal to the signal, then exit. (stophandler, process_signals): New functions. (main): Don't output any color changes until _after_ the signal handlers are set up. This fixes a race condition where 'ls' could be interrupted while initializing colors, and leaving the terminal in an undesirable state. Don't mess with signal-handling if standard output is not a controlling terminal. When exiting, restore the default color, then restore the default signal handling, then act on any signals that weren't acted on yet. Do not print //DIRED// etc. in colors; this avoids the need to catch signals when printing them. (print_name_with_quoting): Process signals just before switching color back to non_filename_text.
2004-04-23Avoid segfault on systems for which SIZE_MAX != (size_t) -1.Jim Meyering
(quote_name): Use SIZE_MAX, not -1, in calls of quotearg_buffer. Patch by Mikulas Patocka.
2004-04-21 - ls could incorrectly restore color if multiple signalsJim Meyering
arrived nearly simultaneously. (main): Rewrite signal-catching code to make it similar to other coreutils programs. When processing signals, block all signals that we catch, but do not block signals that we don't catch. Avoid problems with unsigned int warnings. (sighandler) [defined SA_NOCLDSTOP]: Use simpler "signal (sig, SIG_DFL)" rather than sigaction equivalent. (sighandler) [!defined SA_NOCLDSTOP]: Reset signal handler to self, not to SIG_IGN, since SIGTSTP can be received more than once. (main): Use SA_RESTART, as that is simpler than checking for EINTR failures all over the place.
2004-02-02(TIMESPEC_NS): Remove definition.Jim Meyering
2004-01-21(usage): Use EXIT_SUCCESS, not 0, for clarity.Jim Meyering
(main): Don't assume EXIT_FAILURE == 1, as POSIX doesn't require it.
2003-12-24(length_of_file_names_and_frills):Jim Meyering
Remove forward decl; not needed. (print_file_name_and_frills, length_of_file_name_and_frills): With -m, don't output spaces before inum or size. (print_with_commas): Don't output space just before newline.