Paul Eggert [Mon, 2 May 2005 18:40:47 +0000 (18:40 +0000)]
(usage): ls --indicator-style=directory renamed to ls
--indicator-style=slash, to avoid confusion with ls --directory.
(slash): Renamed from directory_only. All uses changed.
Paul Eggert [Sun, 1 May 2005 14:26:50 +0000 (14:26 +0000)]
(mode_free): Remove; all callers changed to invoke 'free'.
xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed.
(MODE_DONE): New constant.
(struct mode_change): Remove 'next' member.
(make_node_op_equals): New function; like the old one of the
same name, except it allocates an array.
(mode_compile, mode_create_from_ref): Use it.
(mode_compile): Allocate result as an array, not a linked list.
Parse octal string ourself, so that we catch mistakes like "+0".
(mode_adjust): Arg is an array, not a linked list.
Paul Eggert [Fri, 29 Apr 2005 21:01:04 +0000 (21:01 +0000)]
(enum indicator_style): New constant directory_only,
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 ">".
Paul Eggert [Thu, 28 Apr 2005 16:29:59 +0000 (16:29 +0000)]
(change, umask_value): New static vars.
(reference_file): Move this static var to inside "main".
(process_file, process_files): Remove CHANGES arg; now taken from
static var. All uses changed.
(usage): Fix incorrect description of MODE operand.
(main): For invalid mode usages, output a brief usage message.
Adjust to new modechange API.
Paul Eggert [Thu, 28 Apr 2005 16:29:22 +0000 (16:29 +0000)]
(MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
(struct mode_change): Move to modechange.c; callers don't
need to see this stuff.
(MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL):
(MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove.
(mode_change, mode_adjust): Reflect the new signatures noted above.
Paul Eggert [Thu, 28 Apr 2005 16:29:00 +0000 (16:29 +0000)]
Include stat-macros.h, xalloc.h.
(S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR):
(S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU):
(S_IRWXG, S_IRWXO, CHMOD_MODE_BITS):
Remove. This is now stat-macros.h's job.
(talloc): Remove. All callers replaced by xalloc, so that
our invokers don't have to worry about reporting memory failures.
(make_node_op_equals): Remove.
(MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
New constants.
(struct mode_change): Moved here from modechange.h.
(mode_append_entry): Remove.
(mode_compile): Remove MASKED_OPS arg, since it encouraged
apps to have incorrect behavior. Use simpler algorithm for head
and tail. Don't futz with umask; that's now the job of mode_adjust.
Detect more invalid usages rather than having somewhat-random behavior.
Don't insert an "a=" action, as that leads to incorrect behavior.
(mode_compile, mode_create_from_ref): Return NULL on error instead
of an enum, since now there's only one way to have an error. All
callers changed.
(mode_adjust): Accept new arg UMASK_VALUE, and interpret it
at the correct time. Simplify calculation of "+u" and its ilk.
Don't mishandle "+X".
(mode_free): Remove "register" and localize decls.
Paul Eggert [Thu, 28 Apr 2005 16:28:27 +0000 (16:28 +0000)]
(Mode Structure, Changing Special Permissions):
(Conditional Executability, Numeric Modes):
These days the sticky bit is more often uses as the restricted
deletion flag, so modernize the discussion about this.
(Mode Structure): Linux/GNU -> GNU/Linux.
(Symbolic Modes): Don't imply that "+ur" or "u" is valid.
(Setting Permissions): Don't imply that "+t" is invalid.
Use "rwx" rather than the less-common "rxw" in an example.
(Copying Permissions): Say that ugo is a replacement for
a string of the other letters. Add spaces around examples.
Use "set-user-ID" rather than "set user ID" to avoid ambiguity.
Use "+t" rather than "o+t", since POSIX doesn't specify the latter.
Mention which combinations are portable and which are GNU.
(Numeric Modes): Don't imply they aren't portable; they are
nowadays.
Paul Eggert [Tue, 26 Apr 2005 16:44:24 +0000 (16:44 +0000)]
(Standards conformance): Do not mention head -10,
since it now works the same regardless of POSIX version.
(od invocation): -w N -> -w[N].
(pr invocation): -S STRING -> -SSTRING.
(fold invocation): -WIDTH works even when conforming to POSIX
1003.1-2001.
(head invocation, tail invocation): Likewise for -NUM.
(split invocation): Likewise for -LINES.
(uniq invocation): Likewise for -N.
(expand invocation, unexpand invocation): Likewise for -TAB.
(nice invocation): Likewise for -ADJUSTMENT.
(sort invocation): Clarify explanation of +N option.
(uniq invocation): Likewise.
(join invocation): Remove special case for --help, --version.
(touch invocation): Clarify explanation of date options.
(Options for date): -I timespec -> -I[timespec].
Paul Eggert [Tue, 26 Apr 2005 16:41:45 +0000 (16:41 +0000)]
Remove posixver.h and its uses.
(obsolete_usage): Remove.
(join_field_1, join_field_2): Initialize to SIZE_MAX to indicate
they haven't been set yet.
(tab): Now int, not char. Initialize to -1 to indicate white space
separates columns, so that we can use NUL as a separator.
All uses changed.
(OBSOLETE_LONG_OPTIONS, get_option): Remove.
(string_to_join_field): Remove ERR_MSG_FMT arg; a single format
suffices. Use xstrtoul for sizes; it suffices.
(decode_field_spec): Report an error and exit on failure. Return void,
not bool.
(add_field_list): Likewise.
(set_join_field): New function.
(enum operand_status): New enum.
(add_file_name): New args OPERAND_STATUS, JOPTION_COUNT,
PREV_OPTC_STATUS, OPTC_STATUS to handle the bewildering array of
possibilities with obsolete option parsing.
(main): Use it. Do not depend on POSIX version.
Check for conflicting options. Parse obsolete options -j1 and -j2
so that it is a pure extension to POSIX 1003.1-2001.
Allow '-t\0' to specify a NUL tab, stealing the code from 'sort'.
Paul Eggert [Tue, 26 Apr 2005 16:41:17 +0000 (16:41 +0000)]
Remove posixver.h and its uses.
(shortopts): New constant. -DIGIT now always takes an optional arg.
(main): Don't preprocess arg list; that was buggy. Use method
similar to expand.
Paul Eggert [Tue, 26 Apr 2005 16:41:03 +0000 (16:41 +0000)]
Remove posixver.h and its uses.
(shortopts): New constant. -DIGIT now always takes an optional arg.
(main): Revamp parsing of -DIGIT to let parse_tab_stops handle it.
Don't complain about -DIGIT.
Paul Eggert [Tue, 26 Apr 2005 16:40:43 +0000 (16:40 +0000)]
Remove posixver.h and its uses.
(COMMON_SHORT_OPTIONS): Remove.
(short_options): New constant.
(short_options, usage): -I now always takes an optional arg.
Paul Eggert [Tue, 26 Apr 2005 16:40:16 +0000 (16:40 +0000)]
Restore support for usages like "head -1" and "tail -1",
even when conforming to POSIX 1003.1-2001.
Fix bug with "POSIXLY_CORRECT=1 fold file -3".
join now supports a NUL field separator, e.g., "join -t '\0'".
join now detects and reports incompatible options, e.g.,
Paul Eggert [Sun, 24 Apr 2005 04:46:33 +0000 (04:46 +0000)]
* coreutils.texi (install invocation): Use a= instead of 0 for
the point of departure for -m, and explain what it meeams.
(mkdir invocation, mkfifo invocation, mknod invocation):
The umask does not affect the point of departure.
Paul Eggert [Tue, 19 Apr 2005 07:26:18 +0000 (07:26 +0000)]
Use test -p to test for fifos, rather
than the (incorrect) test -f and the (inadequate) ls. ls is
inadequate because on some hosts a buggy mv will create a file of
the wrong type (problem reported by Eric Blake). Skip this test
if test -p doesn't work.
Paul Eggert [Mon, 18 Apr 2005 23:30:41 +0000 (23:30 +0000)]
(noinst_LIBRARIES): fetish -> coreutils.
(libcoreutils_a_SOURCES): Renamed from libfetish_a_SOURCES.
All uses changed.
(libcoreutils_a_LIBADD): Renamed from libfetish_a_LIBADD.
All uses changed.
(libcoreutils_a_DEPENDENCIES): Renamed from libfetish_a_DEPENDENCIES.
All uses changed.