Accept a bool argument specifying whether to evaluate the
expression. This is to allow short-circuit evaluation. All
callers changed.
(null): Report that a string is zero even if it has
a form like "-0" or "00".
(eval1, eval): Use short-circuit evaluation for | and &.
(eval): Return 0 if both arguments are null or zero, instead
of returning the first argument.
portable, since some systems (OSF V5.1, Solaris 2.5.1) provide static
inline `stat' and `lstat' functions, thus making the tests of
`xstat == lstat' in copy.c always fail.
(struct cp_options) [xstat]: Remove member.
(XSTAT): New macro.
portable, since some systems (OSF V5.1, Solaris 2.5.1) provide static
inline `stat' and `lstat' functions, thus making the tests of
`xstat == lstat' in copy.c always fail.
(copy_dir): Set `.dereference' member, not .xstat.
(copy_internal): Use `XSTAT (x, ...)' in place of `*(x->xstat) (...)'.
Use `x->dereference == DEREF_NEVER' in place of `x->xstat == lstat'.
(valid_options): Remove now-obsolete FIXME comments.
hosts with 64-bit time_t and 32-bit int).
Print "??" if the current clock can't
be converted by localtime. This won't happen until the year
2*31 + 1900, but we don't want to dump core even if the current
clock has the wrong value.
hosts with 64-bit time_t and 32-bit int).
Include "inttostr.h".
(batch_convert, main):
If time conversion fails, exit with nonzero status.
(show_date): Return int to report conversion failure.
Print the time as an int if localtime fails.
(human_time): Print the date/time as a number of seconds since the
epoch if it can't be converted by localtime. This is better than
just saying "invalid", and is consistent with what "ls" does.
Don't dump core if the year has more than 48 digits; this isn't
possible on any contemporary host, but we might as well do it right.
'int', to avoid problems with integer overflow. On almost all
machines 'double' works in every case where 'int' works, and
it works on other cases besides.
(main): Use initialize_exit_failure rather than
setting exit_failure directly; this optimizes away redundant assignments.
(TTY_FAILURE, TTY_WRITE_ERROR): New enum values;
substitute them for the corresponding integer constants.
(usage): Don't bother normalizing exit status
since the arg is already the correct exit status now.
(FATAL_ERROR, main): Exit with status EXIT_FAILURE, not 2, on errors.
Include exitfail.h here, since we refer to exit_failure.
All callers changed to not include exitfail.h.
(EXIT_FAIL, EXIT_CANNOT_INVOKE, EXIT_ENOENT): New enum values.
(main): Use initialize_exit_failure rather than
setting exit_failure directly; this optimizes away redundant
assignments.
Don't include <assert.h>.
(SORT_OUT_OF_ORDER, SORT_FAILURE): Now enums, not macros.
(usage): Don't use 'assert'.
(main): Remove redundant assignment to exit_failure.
(main): Likewise, to SETUIDGID_FAILURE.
(SETUIDGID_FAILURE): Renamed from FAIL_STATUS,
for consistency with other programs here. All uses changed.
(main): Use 'error' to exit rather than invoking 'exit' here.
(print_numbers): Now returns void, not (zero) int.
All callers changed.
(main): Remove unused local variable 'errs'. Always exit successfully
if we reach the end.
(main): Use initialize_exit_failure rather than setting
exit_failure directly; this optimizes away redundant assignments.
(PRINTENV_FAILURE): New constant.
(main): Exit with status PRINTENV_FAILURE, not EXIT_FAILURE, on
command-line syntax problems.
(usage): Don't bother normalizing exit status
since the arg is already the correct exit status now.
(FATAL_ERROR, main): Exit with status EXIT_FAILURE, not 2, on errors.