Paul Eggert [Wed, 13 Apr 2005 18:42:00 +0000 (18:42 +0000)]
(zone): Allow relunit_snumber after tZONE, so
that "UTC +1 second" continues to work. Problem reported
by Dmitry V. Levin.
(relunit_snumber): New rule.
(relunit): Use it.
Paul Eggert [Tue, 12 Apr 2005 07:21:18 +0000 (07:21 +0000)]
(universal_time_zone_table): New constant.
(time_zone_table): Remove GMT, UT, UTC entries; they're now in
universal_time_zone_table.
(lookup_zone): Prefer universal_time_zone_table to
local_time_zone_table, so that "GMT" time stamps are allowed in
London during the summer. Problem reported by Ian Abbott.
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.