Paul Eggert [Tue, 14 Dec 2004 00:42:19 +0000 (00:42 +0000)]
(gobble_file): Change arg name to be command_line_arg
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.
Paul Eggert [Thu, 9 Dec 2004 17:48:57 +0000 (17:48 +0000)]
(LS_MINOR_PROBLEM, LS_FAILURE): New constants.
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.
Paul Eggert [Wed, 8 Dec 2004 22:26:07 +0000 (22:26 +0000)]
(textint): New member "negative".
(time_zone_hhmm): New function.
Expect 14 shift-reduce conflicts, not 13.
(o_colon_minutes): New rule.
(time, zone): Use it to add support for +HH:MM, UTC+HH:MM.
(yylex): Set the "negative" member of signed numbers.
Jim Meyering [Sun, 5 Dec 2004 19:28:15 +0000 (19:28 +0000)]
Test the __fpending function.
This ensures that if there is an error in the definition of the
PENDING_OUTPUT_N_BYTES expression, we'll find about it right away;
that value is used only in the rare event that close_stdout's
fclose fails with EBADF.
Jim Meyering [Sun, 5 Dec 2004 18:52:33 +0000 (18:52 +0000)]
Include <stdlib.h>.
(__fpending): Abort if PENDING_OUTPUT_N_BYTES is negative.
This ensures that if there is an error in the definition of the
PENDING_OUTPUT_N_BYTES expression, we'll find about it right away;
this value is used only in the rare event that close_stdout's
fclose fails with EBADF.
Jim Meyering [Sat, 4 Dec 2004 13:32:48 +0000 (13:32 +0000)]
(complement, COMPLEMENT_OPTION): New.
(longopts): Add --complement.
(usage): Say not that -b, -c, and -f `print' fields,
but rather that they `select' fields for printing.
Describe the new --complement option.
(mark_range_start): Extracted from set_fields.
(print_kth): Support --complement.
(compare_ranges): New function.
(set_fields): Rewrite the part that populates range_start_ht,
merging it with the part that populates printable_field.
(main): Handle --complement.
Paul Eggert [Fri, 3 Dec 2004 07:01:35 +0000 (07:01 +0000)]
Add copyright notice.
(gl_FUNC_OPENAT): Require gl_USE_SYSTEM_EXTENSIONS, since Solaris
requires __EXTENSIONS__ to be defined when compiling pedantically.
Paul Eggert [Fri, 3 Dec 2004 06:43:59 +0000 (06:43 +0000)]
Include "openat.h" before other include files.
Include "exitfail.h".
(openat): Remove #undef; no longer needed now that we include openat.h first.
(rpl_openat): Add comment about mode_t promotion. Simplify
code a bit by moving initializations around. Use exit_failure
rather than EXIT_FAILURE.
Paul Eggert [Fri, 3 Dec 2004 06:25:03 +0000 (06:25 +0000)]
save-cwd.c: Include "save-cwd.h" before other include files.
(O_DIRECTORY): Remove; not needed here, since "." must be
a directory. All uses removed.
(save_cwd): Use __sgi || __sun, not sun || __sun. __sun is
universal on Suns, and we also need to test for IRIX.
Revamp code to use 'if' rather than '#if'.
Avoid unnecessary comparison of cwd->desc to 0.
Jim Meyering [Thu, 2 Dec 2004 07:47:14 +0000 (07:47 +0000)]
With using --color and with LS_COLORS saying not to color
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.
Paul Eggert [Thu, 2 Dec 2004 06:55:31 +0000 (06:55 +0000)]
(C_DECIMAL_POINT): Remove. Use changed to '.'.
Assume setlocale exists.
(thousands_sep): Renamed from th_sep.
(IS_THOUSANDS_SEP): Remove. All uses replaced by comparisons.
(NONZERO): Parenthesize use of arg.
(numcompare): Avoid duplicate loads. Use ISDIGIT as boolean, for
consistency. Avoid unnecessary negation by reversing
fraccompare args.
(main): Rewrite localeconv call to match seq.c.