Paul Eggert [Mon, 12 Jul 2004 18:19:38 +0000 (18:19 +0000)]
Include <errno.h>, <stdio.h>, <stdlib.h> even
if HAVE_GETLOADAVG is defined, so that the test program can work.
(errno): Remove declaration; not needed in C89 or later.
Include "c-strtod.h".
Do not include locale.h or define setlocale; no longer needed.
Include <limits.h>.
(INT_STRLEN_BOUND): New macro.
(getloadavg): Use it to compute buffer size.
Don't assume that buffer will be properly terminated by 'read'.
Use c_strtod instead of setlocale.
(main) [defined TEST]: Return int, not void.
Paul Eggert [Mon, 12 Jul 2004 17:55:06 +0000 (17:55 +0000)]
Include c-strtod.h.
(print_uptime): Use c_strtod instead of setlocale and sscanf.
Use long int rather than int to count days (for 64-bit hosts),
and check for arithmetic overflow when converting double to time_t.
Paul Eggert [Mon, 12 Jul 2004 06:36:55 +0000 (06:36 +0000)]
(vstrtold): Renamed from vstrtod.
Now returns long double. All uses changed.
(print_direc): Use "L" length modifier when printing floating point
numbers, since we're now printing long double.
Jim Meyering [Thu, 8 Jul 2004 14:01:49 +0000 (14:01 +0000)]
printf cleanup, to avoid undefined behavior, to add support for
formats that Bash supports, and to support wide integers like
Bash does.
(UNSPECIFIED): Remove. All uses now replaced by
booleans, so that we don't reserve any values for precision or
width (like Bash).
(STRTOX): Use prototype, not K&R-style definition.
(vstrtoimax): Renamed from xstrtol (to avoid confusion with xstrtol
in ../lib), with type change to intmax_t.
All uses changed.
(vstrtoumax): Renamed from xstrtoul, with type change to uintmax_t.
All uses changed.
(vstrtod): Renamed from xstrtod. All uses changed.
(print_direc): Use boolean arg instead of special value to indicate
a missing precision or width. LENGTH no longer includes
length modifiers or conversion character. New arg CONVERSION
now specifies conversion character.
Use intmax_t-width formatting for integers (like Bash).
Add support for C99 %a, %A, %F (like Bash).
Add support for field width with %c (POSIX requires this).
Add a FIXME for lack of support for field width and precision
for %b.
Add support for '\'', '0' flags.
Check for invalid combinations of flags, field width, precision,
and conversion, to prevent use of undefined behavior.
Allow multiple length modifiers, for formats like "%lld" (like Bash).
Add support for C99 'j', 't', 'z' length modifiers (like Bash).
In error message, output entire invalid conversion specification,
instead of merely outputting % followed by the conversion char.
Jim Meyering [Tue, 6 Jul 2004 16:55:26 +0000 (16:55 +0000)]
Include "file-type.h".
(canonicalize_filename_mode): New function, based on
canonicalize_file_name, supports three canonicalize modes.
(canonicalize_file_name)
[!HAVE_CANONICALIZE_FILE_NAME && !HAVE_RESOLVEPATH]: Use it.
Jim Meyering [Tue, 6 Jul 2004 16:11:03 +0000 (16:11 +0000)]
Change "readlink -f" to be more compatible with prior implementations.
Add more canonicalize options, -e and -m.
Add comprehensive tests for all readlink modes.
(longopts): Add new options.
(usage): Document them.
(canonicalize_fname): New proxy function.
(main): Handle new options.
Jim Meyering [Sun, 4 Jul 2004 20:14:44 +0000 (20:14 +0000)]
(mempcpy): Don't define if a system header defines it.
Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
(longest_relative_suffix): New function.
(path_concat): Use it. Assume first argument is not NULL.
Port to DOS. Omit redundant separators.
Report an error instead of returning NULL.
Use mempcpy instead of memcpy.
(xpath_concat): Remove: not declared or used.
Jim Meyering [Sun, 4 Jul 2004 17:47:09 +0000 (17:47 +0000)]
(do_copy): Assume path_concat returns non-NULL.
(make_path_private): 2nd arg is now size_t, not int,
to avoid problem when path_concat dir name is longer than 2 GiB (!).
Jim Meyering [Fri, 2 Jul 2004 17:02:15 +0000 (17:02 +0000)]
(Common options, Target directory, cp invocation,
install invocation, mv invocation, ln invocation): Add -t as a
short option for --target-directory, and -T as a short option for
--no-target-directory. Clean up relevant synopses a bit, so that
the language is similar for all.
Jim Meyering [Fri, 2 Jul 2004 16:29:50 +0000 (16:29 +0000)]
Put the right amount of space at sentence ends.
Make sure "i.e." and "e.g." are followed by commas (the GNU style).
Put blank lines before and after every @example, prefer the
previous line to end in ":" (when not a sentence end, for consistency),
and prepend @noindent to the following line when appropriate.
In examples, use "--" arguments when needed to prevent undesired
interpretation of operands as options.
Use "file name" rather than "filename", as per the GNU coding standards.
Remove unwanted spaces before @footnote.
Use "---" when appropriate, instead of " -- ".
Use "name" (or something like that) rather than "path" or "pathname",
since the GNU coding standards don't allow "path".
Use @acronym, @command, @minus{}, @samp in a few places,
where appropriate.
(Target directory): Clarify description of example.
(fmt invocation): Give issue number for reference, and reword
for clarity.
(sort invocation): Note that xargs without -0 also mishandles
file names containing some special characters other than newline.
(Translating): Mention that \012 is not universally portable.
Use '\0' rather than '\000'.
(Squeezing): bourne -> Bourne.
Fix unportable usage of '\n' by replacing it with '[\n*]'.
(More details about version sort): Remove unnecessary indent
in examples.
(dd invocation): Use 'kill -s USR1', not 'kill -USR1', as POSIX
indicates that the former is more portable (the latter is an XSI
extension).
(shred invocation): Use @uref rather than @url, and use a more-typical
style for the date.
(kill invocation): Clarify usage; for example, "kill -s TERM -1"
isn't allowed.
(seq invocation): Reword to avoid implying that printf necessarily
fails for numbers outside the 32-bit range. Prefer separating
options from their operands.
(Opening the software toolbox): Give an online reference to
Robbins's article, and give a date. Don't imply that the
current documentation is unchanged from his article.
(Putting the tools together): Rework examples so that they don't
assume the C locale; nowadays many users now operate outside the C
locale by default. While we're at it, don't assume ASCII either.
Indent example to match actual output from GNU uniq. Remove some
unnecessary and confusing brackets from 'tr' operands. "Software
Tools in Pascal" is back in print, according to Amazon anyway.
Add references to Kernighan's online copies of examples.
Jim Meyering [Wed, 30 Jun 2004 22:41:59 +0000 (22:41 +0000)]
(gl_AC_DOS): Define FILE_SYSTEM_PREFIX_LEN, not
FILESYSTEM_PREFIX_LEN. Generate
FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX, not
FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX. Generate
FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR, not
FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR.
Jim Meyering [Wed, 30 Jun 2004 22:31:43 +0000 (22:31 +0000)]
(usage, main): Output "file system" rather than "filesystem".
(long_options, usage): Rename "--filesystem" to
"--file-system". But keep the old name around, for compatibility reasons.