(version_etc_copyright): Remove.
Do not include unlocked-io.h; no longer needed.
Include gettext.h rather than libinto.h.
(_): Define unconditionally.
(version_etc): Adjust wording to match current GNU coding standards.
Translate "(C)" if possible.
<strings.h>: Include only if HAVE_STRINGS_H.
<stddef.h>: Include if we include stdlib.h.
Do not comment out all code if ! HAVE_FNMATCH_GNU.
(getenv): Do not declare if HAVE_DECL_GETENV.
(__strchrnul, __wcschrnul): Remove; not used.
(MEMPCPY): Use mempcpy if not _LIBC; use memcpy if neither _LIBC
nor HAVE_MEMPCPY.
(FOLD) [HANDLE_MULTIBYTE]: Do not pass wide char to ISUPPER.
(STRLEN, STRCAT, MEMPCPY) [HANDLE_MULTIBYTE && !defined _LIBC]:
Use wcslen rather than __wcslen, and likewise for wcscat, wmempcpy.
(MEMPCPY) [HANDLE_MULTIBYTE]: Use wmempcpy if not _LIBC; use wmemcpy
if neither _LIBC nor HAVE_WMEMPCPY.
(EOVERFLOW): Define if not defined.(stack_t): Define to struct sigaltstack if not defined or declared.
Include <sys/resource.h>, <ucontext.h> if available.
Include <stdio.h> if DEBUG.
Do not include <inttypes.h> or <stdint.h>.
(c_stack_die): Remove info and context args. All uses changed.
(segv_action): Likewise.
(alternate_signal_stack): Change uintmax_t to long, to ease porting.
(get_stack_location, min_address_from_argv, max_address_from_argv,
null_action): New functions.
(stack_base, stack_size): New vars.
(segv_handler): context arg may not be used.
Use global stack_base, stack_size if
! HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
Add debug code.
Invoke die (rather than segv_action) to exit.
(c_stack_action): Accept new argv arg, and simpler handler arg.
All uses changed. Move code into new functions above.
Allow null action.
[! (defined SA_ONSTACK && defined _SC_PAGESIZE)]: Assume all segvs
are stack overflows.
(main) [DEBUG]: Describe what output should be like.
Include limits.h.
(SIZE_MAX, SSIZE_MAX): Define if standard headers don't.
(MIN): New macro.
(block_read): Do not attempt to read more than SSIZE_MAX bytes, as the
resulting behavior is implementation-defined. Work around bug in
Tru64 5.1, which can't read more than INT_MAX bytes at a time.
(ENOTSUP): Define if errno.h doesn't.
(SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ, _SC_PAGESIZE,
ALTERNATE_STACK_SIZE, stack_t, sigaltstack): Remove; we now assume them
all when HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need substitutes.
(<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
(alternate_signal_stack): Now of size SIGSTKSZ, not ALTERNATE_STACK_SIZE.
(segv_handler): Simplify, under the assumption that
HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero.
(c_stack_action): Likewise.
(exit_failure) [DEBUG]: Initialize to 0, not 1.
(recurse, main) [DEBUG]: Remove main args.
(errno): Declare if !STDC_HEADERS.
Include signal.h.
(SA_RESTART): Define if not already defined.
Include <inttypes.h>.
(PTRDIFF_MAX): Define if not already defined.
(TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
(block_read): Accommodate ancient AIX hosts that set errno to EINTR
after uncaught SIGCONT.
(buffer_lcm): Return a reasonable size if the multiple is too large.
New arg LCM_MAX. All callers changed.