1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-06-06 01:36:28 +02:00
Commit Graph

4524 Commits

Author SHA1 Message Date
Paul Eggert 9dfcfc47dc (do_link): find_backup_file_name no longer returns NULL, so don't
bother to check for this.
2004-07-27 23:14:30 +00:00
Paul Eggert 53b24fa527 (do_copy): find_backup_file_name no longer returns NULL, so don't
bother to check for this.
2004-07-27 23:14:05 +00:00
Paul Eggert c3d37adf6d (copy_internal): find_backup_file_name no longer
returns NULL, so don't bother to check for this.
2004-07-27 23:13:38 +00:00
Paul Eggert 362264b40d Regenerate. 2004-07-26 06:14:11 +00:00
Paul Eggert 218f93ec2c (GET_NICE_VALUE): Renamed from GET_PRIORITY.
All uses changed.
(NZERO): New macro, if system doesn't define it already.
(usage): Distinguish priorities from nice values.
Don't assume NZERO is 20.
(main): Use bool instead of int where appropriate.
If user specifies an adjustment out of range, always truncate it
to an inrange value instead of sometimes giving an error message
and sometimes not.
Do not assume that -1 is an error return from "nice" or
"getpriority", as it might be the current nice value minus NZERO.
If nice/setpriority fails with errno == EPERM, go ahead and run
the command anyway; POSIX requires this.
2004-07-26 06:08:50 +00:00
Paul Eggert be7b1ba252 Regenerate. 2004-07-25 07:48:17 +00:00
Paul Eggert 20b73f214c (R_OK, W_OK, X_OK, FOK): Remove; system.h defines them.
(eaccess): Remove.  All users changed to use euidaccess instead.
2004-07-25 07:39:02 +00:00
Paul Eggert b93109eedc pathchk.c: Include euidaccess.h.
(dir_ok): Use euidaccess, not access.
2004-07-25 07:38:39 +00:00
Paul Eggert a6411b5d54 (print_uptime) [defined BOOT_MSG]:
Don't assume ut_line is null-terminated.
2004-07-24 08:03:02 +00:00
Paul Eggert d3d39f9a3e (print_line): New arguments USERLEN and LINELEN, since USER and LINE
might not be null terminated.  All callers changed.
2004-07-24 08:01:49 +00:00
Paul Eggert 60a96eb684 Regenerate. 2004-07-23 22:41:52 +00:00
Paul Eggert 441462ac72 Include fcntl-safer.h.
(COPY_TO_EOF): Set to UINTMAX_MAX, not OFF_T_MAX (which was wrong).
(COPY_A_BUFFER): New macro.
(struct File_spec): New members mtime, mode, blocking.
Remove member n_consecutive_size_changes.
(DEFAULT_MAX_N_CONSECUTIVE_SIZE_CHANGES,
max_n_consecutive_size_changes_between_opens,
MAX_CONSECUTIVE_SIZE_CHANGES_OPTION): Remove.
(long_options, tail_forever, parse_options):
Remove (non-)support for --max-consecutive-size-changes.
(record_open_fd): New function.
(recheck, tail_file): Use it.  Don't assume that stdin is open.
(dump_remainder): Add support for new COPY_A_BUFFER special value.
Treat errno==EAGAIN like EOF, since it might be a nonblocking read.
(recheck): New arg BLOCKING, specifying whether to use blocking reads.
All uses changed.
(n_live_files): Remove, replacing with...
(any_live_files): New function.  All uses changed.
(tail_forever): Use nonblocking I/O unless we know that blocking I/O
is safe; this avoids some hangs when reading from a fifo.
Avoid invoking fstat or sleep when using blocking I/O.
Do not check for changes to size if the file is not a regular file,
as the size is undefined in that case.
Check for changes to mtime or mode, too; this works for non-regular
files.
(tail_forever, main): Redo fflush strategy to work even when input
is nonblocking.  Don't use unbuffered output; just flush when needed.
2004-07-23 22:33:51 +00:00
Paul Eggert 255eb9cf44 (main): Ignore -f if no file operand is specified
and standard input is a pipe.
2004-07-22 20:54:04 +00:00
Paul Eggert 6301ff874e Include c-strtod.h.
(print_uptime): Use c_strtod instead of setlocale and sscanf.
Use long int rather than int to count days (for 64-bit hosts),
and check for arithmetic overflow when converting double to time_t.
2004-07-12 17:55:06 +00:00
Paul Eggert 70c9129e14 Regenerate. 2004-07-12 06:43:20 +00:00
Paul Eggert 830de27082 (vstrtold): Renamed from vstrtod.
Now returns long double.  All uses changed.
(print_direc): Use "L" length modifier when printing floating point
numbers, since we're now printing long double.
2004-07-12 06:36:55 +00:00
Jim Meyering c5211912ed . 2004-07-08 14:04:35 +00:00
Jim Meyering 62e1d5259d printf cleanup, to avoid undefined behavior, to add support for
formats that Bash supports, and to support wide integers like
Bash does.

(UNSPECIFIED): Remove.  All uses now replaced by
booleans, so that we don't reserve any values for precision or
width (like Bash).
(STRTOX): Use prototype, not K&R-style definition.
(vstrtoimax): Renamed from xstrtol (to avoid confusion with xstrtol
in ../lib), with type change to intmax_t.
All uses changed.
(vstrtoumax): Renamed from xstrtoul, with type change to uintmax_t.
All uses changed.
(vstrtod): Renamed from xstrtod.  All uses changed.
(print_direc): Use boolean arg instead of special value to indicate
a missing precision or width.  LENGTH no longer includes
length modifiers or conversion character.  New arg CONVERSION
now specifies conversion character.
Use intmax_t-width formatting for integers (like Bash).
Add support for C99 %a, %A, %F (like Bash).
Add support for field width with %c (POSIX requires this).
Add a FIXME for lack of support for field width and precision
for %b.
Add support for '\'', '0' flags.
Check for invalid combinations of flags, field width, precision,
and conversion, to prevent use of undefined behavior.
Allow multiple length modifiers, for formats like "%lld" (like Bash).
Add support for C99 'j', 't', 'z' length modifiers (like Bash).
In error message, output entire invalid conversion specification,
instead of merely outputting % followed by the conversion char.
2004-07-08 14:01:49 +00:00
Jim Meyering e0b8973bd4 Change "readlink -f" to be more compatible with prior implementations.
Add more canonicalize options, -e and -m.
Add comprehensive tests for all readlink modes.

(longopts): Add new options.
(usage): Document them.
(canonicalize_fname): New proxy function.
(main): Handle new options.
2004-07-06 16:11:03 +00:00
Jim Meyering 5e1589ace8 (copy_internal): Add a FIXME comment. 2004-07-04 18:12:55 +00:00
Jim Meyering 10da95cf3f (main): Don't pass NULL first argument to path_concat.
This cleans up the semantics a bit, as we no longer try to open the
same file twice.
2004-07-04 18:01:04 +00:00
Jim Meyering cc4105f095 (movefile): Assume path_concat returns non-NULL. 2004-07-04 17:47:29 +00:00
Jim Meyering ae206c4b1c (do_copy): Assume path_concat returns non-NULL.
(make_path_private): 2nd arg is now size_t, not int,
to avoid problem when path_concat dir name is longer than 2 GiB (!).
2004-07-04 17:47:09 +00:00
Jim Meyering aead5906dc (copy_dir): Assume path_concat returns non-NULL. 2004-07-04 17:46:17 +00:00
Jim Meyering 9f3628bd45 Add short names -t and -T for --target-directory
and --no-target-directory options, respectively.

(NO_TARGET_DIRECTORY_OPTION, TARGET_DIRECTORY_OPTION):
Remove.  All uses changed to 'T' and 't', respectively.

(long_options, main, usage): Add -t and -T as
aliases for --target-directory and --no-target-directory,
respectively.
2004-07-02 17:00:53 +00:00
Jim Meyering 1b32f828b0 Add short names -t and -T for --target-directory
and --no-target-directory options, respectively.

(NO_TARGET_DIRECTORY_OPTION, TARGET_DIRECTORY_OPTION):
Remove.  All uses changed to 'T' and 't', respectively.

(long_opts, usage, do_copy, main): Add -t and -T as
aliases for --target-directory and --no-target-directory,
respectively.
2004-07-02 17:00:10 +00:00
Jim Meyering 6433f83ccb . 2004-07-02 16:34:40 +00:00
Jim Meyering 15e38ec27d Use "file system" rather than "filesystem" in comments. 2004-06-30 22:33:40 +00:00
Jim Meyering 7c3c6876ab . 2004-06-30 22:33:16 +00:00
Jim Meyering 851acad0ce (usage, main): Output "file system" rather than "filesystem".
(long_options, usage): Rename "--filesystem" to
"--file-system".  But keep the old name around, for compatibility reasons.
2004-06-30 22:31:43 +00:00
Jim Meyering 3365c5f5e3 (usage, main): Output "file system" rather than "filesystem". 2004-06-30 22:31:43 +00:00
Jim Meyering 697c4afab5 . 2004-06-30 18:42:27 +00:00
Jim Meyering ba039472a8 Add support for --no-target-directory option.
(NO_TARGET_DIRECTORY_OPTION): New constant.
(long_options, usage, main): Add support for
2004-06-30 18:40:40 +00:00
Jim Meyering 0d27d8a0f8 Add support for --no-target-directory option.
(NO_TARGET_DIRECTORY_OPTION): New constant.
(long_options, usage, main): Add support for
(enum): Sort values.
2004-06-30 18:39:42 +00:00
Jim Meyering ab7ebdc363 Add support for --no-target-directory option.
(NO_TARGET_DIRECTORY_OPTION): New constant.
(long_options, usage, main): Add support for
2004-06-30 18:39:18 +00:00
Jim Meyering 7ed69a972c Add support for --no-target-directory option.
(NO_TARGET_DIRECTORY_OPTION): New constant.
(long_opts, usage, do_copy, main): Add support for
2004-06-30 18:38:24 +00:00
Jim Meyering 0ec60860b6 Add support for 'install --target-directory', an option
that has been documented for years but not implemented (!).

(TARGET_DIRECTORY_OPTION): New var.
(long_options, main, usage): Add --target-directory.
(target_directory_operand): New function, stolen from mv.c.
(main): Use it.  Check for -d and --target-directory.
Alter wording of diagnostics to match other programs.
2004-06-29 14:40:47 +00:00
Jim Meyering 6860c032da Use more-consistent rules among cp, ln, and mv when dealing with
last operands that are (or look like) directories.

	* src/cp.c (target_directory_operand): New, nearly-common function,
	It reports an error if the destination appears to be a directory
	(e.g., because it has a trailing slash) but is not.
	* src/ln.c, src/mv.c: Likewise.
	* src/cp.c (do_copy): Use it.
	* src/ln.c (main): Likewise.
	* src/mv.c (main): Likewise.

	* src/cp.c (do_copy): Don't output a usage message because of file
	problems (e.g., an operand is not a directory).  Use it only for
	syntax.  Standardize on "target %s is not a directory" for the
	diagnostic.
	* src/ln.c (main): Likewise.
	* src/mv.c (main): Likewise.

	* src/cp.c (do_copy): Remove test for trailing slash, since
	target_directory_operand now does this.
	* src/ln.c (main): Likewise.
	* src/mv.c (movefile): Likewise.

	* src/ln.c (isdir): Remove decl; no longer needed.
	* src/mv.c (isdir, lstat): Likewise.

	* src/ln.c (main): Use int to count to argc, not unsigned int.
	This handles negative operand counts.
	* src/mv.c (main): Likewise.

	* src/mv.c (do_move): Don't call hash_init; expect the caller to
	do it, for consistency with cp.c and ln.c.  All callers changed.
	(movefile): dest_is_dir parameter is now bool, not int.
	(main): Standardize on "missing destination file operand after %s"
	for the diagnostic, for consistency with cp.c.
2004-06-28 18:39:28 +00:00
Jim Meyering 59c3b53926 Use more-consistent rules among cp, ln, and mv when dealing with
last operands that are (or look like) directories.

	* src/cp.c (target_directory_operand): New, nearly-common function,
	It reports an error if the destination appears to be a directory
	(e.g., because it has a trailing slash) but is not.
	* src/ln.c, src/mv.c: Likewise.
	* src/cp.c (do_copy): Use it.
	* src/ln.c (main): Likewise.
	* src/mv.c (main): Likewise.

	* src/cp.c (do_copy): Don't output a usage message because of file
	problems (e.g., an operand is not a directory).  Use it only for
	syntax.  Standardize on "target %s is not a directory" for the
	diagnostic.
	* src/ln.c (main): Likewise.
	* src/mv.c (main): Likewise.

	* src/cp.c (do_copy): Remove test for trailing slash, since
	target_directory_operand now does this.
	* src/ln.c (main): Likewise.
	* src/mv.c (movefile): Likewise.

	* src/cp.c (main): Reject multiple target directories.
	Check whether a specified target is a directory when parsing the
	options, using stat.  This gives more-accurate diagnostics.
	* src/ln.c (main): Likewise.

	* src/ln.c (isdir): Remove decl; no longer needed.
	* src/mv.c (isdir, lstat): Likewise.

	* src/ln.c (do_link): New arg dest_is_dir.  All uses changed.
	Don't check the destination ourself; rely on dest_is_dir.
	This way we can avoid lstatting the destination in the
	usual case, and in the worst case we lstat 1, not 3 times.
	Don't bother to unlink unless link failed; this saves a syscall.
	Remove unnecessary backup_succeeded flag;
	it was identical to "dest_backup != NULL".

	* src/ln.c (main): Use int to count to argc, not unsigned int.
	This handles negative operand counts.
	* src/mv.c (main): Likewise.
2004-06-28 18:38:05 +00:00
Jim Meyering 8340545c8b Use more-consistent rules among cp, ln, and mv when dealing with
last operands that are (or look like) directories.

	* src/cp.c (target_directory_operand): New, nearly-common function,
	It reports an error if the destination appears to be a directory
	(e.g., because it has a trailing slash) but is not.
	* src/cp.c (do_copy): Use it.

	* src/cp.c (do_copy): Don't assume argc is positive.
	Don't bother to lstat dest, since copy() will do that for us.
	Use "const" to avoid the need for cast.

	* src/cp.c (do_copy): Don't output a usage message because of file
	problems (e.g., an operand is not a directory).  Use it only for
	syntax.  Standardize on "target %s is not a directory" for the
	diagnostic.

	* src/cp.c (do_copy): Remove test for trailing slash, since
	target_directory_operand now does this.

	* src/cp.c (main): Reject multiple target directories.
	Check whether a specified target is a directory when parsing the
	options, using stat.  This gives more-accurate diagnostics.
2004-06-28 18:35:54 +00:00
Jim Meyering 86e30699e4 (usage): Fix copy+paste error in description of
--target-directory: s/move/copy/.  From Paul Jarc.
2004-06-28 18:31:46 +00:00
Jim Meyering 6fb6c5e33c . 2004-06-28 08:17:34 +00:00
Jim Meyering 54cdcb1a1a Fix a bug: formerly, if d/x was a directory and x a file, "ln x
d/" incorrectly created a link d/x/x.  It also saves some system
calls.

(main): Don't append basename to dest if this
results in an existing directory name.
2004-06-27 09:41:23 +00:00
Jim Meyering 4e6aaa2732 put \n in format string, not in actual diagnostic 2004-06-26 13:12:42 +00:00
Jim Meyering b5110a1746 (main): When given no arguments, print the standard
"missing operand\nTry printf --help..." message -- to be consistent.
2004-06-26 13:09:17 +00:00
Jim Meyering cf0071c5b0 (main): Add \n at the end of message output via fprintf. 2004-06-26 12:43:44 +00:00
Jim Meyering cb9c7daeea (do_link): Remove unnecessary call to lstat.
(main): Avoid subscript error when the destination is "".
2004-06-25 06:51:51 +00:00
Jim Meyering 678207c7d0 . 2004-06-23 15:09:27 +00:00
Jim Meyering 22191da8fb (idle_string, print_user): New arg boottime,
specifying the most recent boot time.  All uses changed.
(idle_string) Consider a line to be "old" if it hasn't been used
since the last boot time.  Watch out for overflow when computing
times, and for times in the future.
(idle_string): Record latest boot time.
2004-06-23 14:48:16 +00:00
Jim Meyering 6eb57b59ad The 2004-06-19 fix for who and pinky was incomplete, as ctime
has undefined behavior if the year precedes -999 or follows 9999.
Since we have to stop using ctime anyway, we might as well use
strftime and fix the FIXME, and support internationalized dates.

* src/who.c: Include "hard-locale.h".
(time_format, time_format_width): New vars.
(time_string, print_line): Use them.
(main): Set them.
(time_string): Use localtime + strftime instead of
ctime, to avoid problems with years before -999 or after 9999.
* src/pinky.c: Likewise.
2004-06-22 15:00:53 +00:00