Jim Meyering [Wed, 19 Sep 2001 10:19:19 +0000 (10:19 +0000)]
When --read-bytes=N (-N N) is used, disable input buffering in
the standard I/O library. Otherwise, od would read more input
than requested. This could have caused problems when reading
from pipes, character devices, and open file descriptors inherited
from a parent process.
* src/od.c (open_next_file): New function, factored out of...
(skip): Adapt to use open_next_file.
(read_char): Likewise.
(read_block): Likewise.
(main): Likewise.
(dump): Fix an off-by-one error that could have made od fail to
report a read error when reading from a named file (not stdin).
(check_and_close): Account for the fact that in_stream may now be NULL.
(usage): Correct descriptions of -j and -N options.
Patch by Ian Bruce.
Jim Meyering [Mon, 17 Sep 2001 10:24:20 +0000 (10:24 +0000)]
(HAVE_LONG_LONG): Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
(strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
to work around bug in IBM C compiler.
Jim Meyering [Sun, 16 Sep 2001 09:28:34 +0000 (09:28 +0000)]
(digest_check): On systems for which setmode actually
does something, arrange to read the file containing checksum strings
in text mode. Based on a patch from Chris Faylor.
Jim Meyering [Sat, 15 Sep 2001 17:07:24 +0000 (17:07 +0000)]
(EISDIR): Define to 0, if not already defined.
(touch): Give a better diagnostic for e.g., `touch /' by non-root.
Based on a patch from Michael Stone.
Reported by Jeff Sheinberg as Debian bug #101677.
Jim Meyering [Sat, 15 Sep 2001 11:38:36 +0000 (11:38 +0000)]
Accept new option: --reply={yes,no,query}
Include argmatch.h.
(enum) [REPLY_OPTION]: Define.
(usage): Describe new option.
Split long usage string into smaller pieces.
(main): Handle new option.
Jim Meyering [Wed, 12 Sep 2001 09:07:35 +0000 (09:07 +0000)]
The command `echo a|./fmt -2147483647' would cause fmt to segfault.
(fmt_paragraph): Test for sentinal directly, rather than
doing arithmetic with it's potentially large (INT_MAX) length.
Jim Meyering [Fri, 7 Sep 2001 09:44:07 +0000 (09:44 +0000)]
New 'uname' options -i or --hardware-platform,
and -o or --operating-system.
'uname -a' now outputs -i and -o information at the end.
New uname option --kernel-version is an alias for -v.
Uname option --release has been renamed to --kernel-release,
and --sysname has been renamed to --kernel-name;
the old options will work for a while, but are no longer documented.
Jim Meyering [Fri, 7 Sep 2001 09:43:03 +0000 (09:43 +0000)]
Correct copyright notice as per latest coding standards.
Remove list of options in comment, which wasn't
worth maintaining separately from usage().
(print_element): Move definition up, avoiding the need for
declaration and allowing inlining on some platforms.
Keep track of whether something has been printed; this is more
natural than modifying `toprint'.
(PRINT_KERNEL_NAME): Renamed from PRINT_SYSNAME.
(PRINT_KERNEL_RELEASE): Renamed from PRINT_RELEASE.
(PRINT_KERNEL_VERSION): Renamed from PRINT_VERSION.
(PRINT_HARDWARE_PLATFORM, PRINT_OPERATING_SYSTEM): New macros.
(toprint): Remove global var; now local in `main'.
(long_options, usage, main): Implement changes described in NEWS.
Reorder options to reflect output order.
(main): Use buffers one byte longer, for compatibility with Solaris 8.
Output newline at end. -a sets `toprint' to -1 now; this is simpler.
Do not bother invoking system calls like uname if the resulting
information does not need to be printed.
Do not fail if sysinfo fails; just print "unknown".