Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
(C_STRTOD, DOUBLE, STRTOD): New macros.
(c_strtod): Use them.
|
|
|
|
|
|
|
|
formats that Bash supports, and to support wide integers like
Bash does.
Add tests for the above.
|
|
|
|
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.
|
|
|
|
Detect symlink loops much earlier (albeit lazily) on systems
with MAXSYMLINKS defined to a large value.
Include "cycle-check.h".
(canonicalize_filename_mode): Don't try to detect loops by counting
symlink-hops. Instead, use the cycle-check module.
|
|
Forward-declare `struct stat'.
|
|
|
|
Replace each corresponding `break' stmt with `continue'.
|
|
|
|
|
|
(canonicalize_filename_mode): Remove #ifdef S_ISLNK, now that
S_ISLNK is guaranteed to be defined (via stat-macros.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.
|
|
|
|
|
|
|
|
"readlink -f" behaviour and new canonicalize options, -e and -m.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
This cleans up the semantics a bit, as we no longer try to open the
same file twice.
|
|
|
|
(make_path_private): 2nd arg is now size_t, not int,
to avoid problem when path_concat dir name is longer than 2 GiB (!).
|