Paul Eggert [Mon, 11 Apr 2005 20:12:51 +0000 (20:12 +0000)]
(have_read_stdin): Remove; no longer needed. All uses
removed.
(tsort): Do not assume fopen can't return stdin.
Close stdin before returning. All uses changed.
Paul Eggert [Mon, 11 Apr 2005 20:10:23 +0000 (20:10 +0000)]
Include unistd-safer.h.
(wipename): Use fd_safer on directory file descriptor.
(wipefile): Remove special case for /dev/fd/* on older hosts.
It didn't work in general, and wasn't documented.
Use fd_safer.
Paul Eggert [Mon, 11 Apr 2005 20:07:00 +0000 (20:07 +0000)]
Include stdio-safer.h.
(input_desc): Remove unnecessary static initialization.
(set_input_file): Use STDIN_FILENO, not 0.
(create_output_file): Use fopen_safer.
Paul Eggert [Mon, 11 Apr 2005 20:06:13 +0000 (20:06 +0000)]
Include stdio-safer.h.
(compare_files): Exit right away on I/O error rather than continuing
and producing confusing output and error messages.
Return void, not int; all callers changed.
Use fopen_safer to avoid confusion with file descriptors.
Jim Meyering [Sat, 9 Apr 2005 14:15:22 +0000 (14:15 +0000)]
(quit): Define with ATTRIBUTE_NORETURN.
Now that close_stdout closes standard output unconditionally,
these workarounds for dd and cat are no longer necessary.
(close_stdout_wrapper): Remove function.
(main): Call atexit with close_stdout, instead.
Paul Eggert [Sat, 9 Apr 2005 04:57:15 +0000 (04:57 +0000)]
Remove all uses of signals; modern hosts have
/dev/random and don't need this gorp.
Do not include signal.h.
(env, sigill_handler, isaac_seed_machdep): Remove. All uses removed.
Paul Eggert [Sat, 9 Apr 2005 04:55:40 +0000 (04:55 +0000)]
Do not include safe-read.h or full-write; no longer needed.
(process_signals): Add forward decl.
(SA_NOCLDSTOP, sigprocmask, sigset_t) [!defined SA_NOCLDSTOP]:
New macros.
(siginterrupt) [! HAVE_SIGINTERRUPT]: New macro.
(SA_NODEFER) [!defined SA_NODEFER]: New macro.
(SA_RESETHAND) [!defined SA_RESETHAND]: New macro.
(caught_signals, interrupt_signal, info_signal_count, catch_siginfo):
New vars.
(usage): Mention -USR1 versus -INFO.
(cleanup): Don't invoke print_stats; the caller must do it now.
All callers changed.
(quit): Process signals just before exiting.
(interrupt_handler): Simply record the signal and return.
(siginfo_handler): Simply increment the signal counter and return.
(install_handler): Remove, replacing with:
(install_signal_handlers, process_signals, iread, iwrite):
New functions. All callers to safe_read and full_write replaced
by iread and iwrite. All callers to install_handler replaced by
install_handlers.
Do not include inttostr.h, no longer needed.
(print_stats, main): Rewrite and simplify formats to use PRIuMAX
instead of umaxtostr.
(print_stats): Work even in languages that have special
forms for two of things, for r_truncate and w_bytes. We can't
fix delta_s in this way, since ngettext doesn't support floating-point.
(main): Rewrite to avoid casts.
Paul Eggert [Sat, 9 Apr 2005 04:55:05 +0000 (04:55 +0000)]
(SA_NOCLDSTOP): Define to 0 if not defined.
All uses changed.
(siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
(delete_all_files): New arg IN_SIGNAL_HANDLER, to avoid undefined
behavior when called from a signal handler. All uses changed.
(main) [!defined SA_NOCLDSTOP]:
Use siginterrupt to specify that system calls should be interrupted.
Paul Eggert [Sat, 9 Apr 2005 04:52:25 +0000 (04:52 +0000)]
(rpl_nanosleep): Include "timespec.h" before macros
that might redefine system include files.
(siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
(my_usleep): Use NULL rather than (void *) 0.
(rpl_nanosleep) [!defined SA_NOCLDSTOP]:
Use siginterrupt to specify that system calls should be interrupted.
(rpl_nanosleep): Move initialization of suspended closer to call of
my_usleep.
Paul Eggert [Sat, 9 Apr 2005 04:51:11 +0000 (04:51 +0000)]
Document that dd no longer treats QUIT or PIPE specially,
and when conforming to POSIX no longer treats USR1 specially.
Document that dd no longer dumps core when handling signals.
Paul Eggert [Tue, 5 Apr 2005 22:20:05 +0000 (22:20 +0000)]
(cat invocation, chown invocation)
(chgrp invocation, basename invocation, dirname invocation):
Add examples, which are copies of the examples newly added
to the usage messages.
(ln invocation): Use same format as other examples above,
for consistency.