The default behavior is unchanged.
Include argmatch.h.
(usage): Update.
(check_file): Implement it.
(main): Handle new, optional arguments.
Patch by Padraig Brady.
(print_color_indicator, print_name_with_quoting, print_type_indicator,
length_of_file_name_and_frills):
Use mode_t, not unsigned int, to store modes.
(dired_dump_obstack): Do not assume size fits in 'int'.
(get_link_name): readlink returns ssize_t, not int.
(make_link_path): Store buffer size as size_t, not int.
(print_long_format): Use unsigned long, not unsigned, to print
nlink_t, uid_t, gid_t, major_t, minor_t.
Do not assume that major_t and minor_t are no wider than int.
Check for makedev failures. Convert device numbers via uintmax_t, not
unsigned long, just in case. Coalesce duplicate code in the block and
character device cases.
(usage): Update the description of -g.
(decode_switches): Honor the -g option (omit owner information),
now that POSIX specifies it.
(print_long_format): Don't print owner name if -g was specified.
Move declaration of `user_name' into the scope where it's used.
(print_group): Rename global from `inhibit_group'. Update all
uses accordingly.
(decode_switches): Make -n work just like -l, except
with numeric IDs, per POSIX. Before, to have any effect, -n had
to be used with -l. Reported by Dale Scheetz.
(usage): Update the description of -n.
Separate the descriptions of -n and --numeric-uid-gid.
Split string in --help output that had exceeded my limit of 2048 bytes.
Add overflow and write error checks. Use uint_fast32_t, not
unsigned long, to do checksum calculation, as C99 says
uint_fast32_t should be no slower and might be faster.
Include <stdio.h> and "system.h" even if CRCTAB is defined,
so that the code will compile if CRCTAB is defined.
Include "human.h" if CRCTAB is not defined.
(uint_fast32_t): Define if it appears that stdint.h didn't.
(BIT, remainder, main, crctab): Use uint_fast32_t, not unsigned long,
for checksums.
(fill_r, remainder, main): Use ANSI prototypes.
(fill_r, remainder, main): Omit duplicate code.
(main): Use uintmax_t, not unsigned long, for file lengths.
Use size_t, not long, for result of fread.
Check for overflow when computing file lengths.
Check for write error immediately after printing a line, so that
we don't write to stdout indefinitely after an error.
that exists is a directory, don't treat it as if it were the only
argument. Before, `mkdir d; ls no-dir d 2>/dev/null' would act like
`ls d' and produce no output. Now, it prints `d:'.
code, since RLIMIT_RSS is similar (and is not standardized).
(default_sort_size): Don't allocate more than the RSS limit,
if this host has such a limit.
(usage, main): Add support for long options, and check option
syntax as POSIX requires, though (as usual for GNU apps)
options can follow file names unless POSIXLY_CORRECT is set.
Many diagnostic revamped.
(long_options): New constant.
(badfieldspec): New arg MSGID. Mark as noreturn.
(parse_field_count): New arg MSGID; if null, just return null on error.
(new_key): Renamed from key_init. All callers changed. Now allocates
the new key.