Age | Commit message (Collapse) | Author |
|
|
|
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 (!).
|
|
|
|
|
|
prerequisite modules now handle the DOS stuff.
Don't check for unistd.h.
|
|
|
|
|
|
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.
|
|
|
|
and --no-target-directory options, respectively.
(NO_TARGET_DIRECTORY_OPTION, TARGET_DIRECTORY_OPTION):
Remove. All uses changed to 'T' and 't', respectively.
(long_options, main, usage): Add -t and -T as
aliases for --target-directory and --no-target-directory,
respectively.
|
|
and --no-target-directory options, respectively.
(NO_TARGET_DIRECTORY_OPTION, TARGET_DIRECTORY_OPTION):
Remove. All uses changed to 'T' and 't', respectively.
(long_opts, usage, do_copy, main): Add -t and -T as
aliases for --target-directory and --no-target-directory,
respectively.
|
|
and --no-target-directory options, respectively.
|
|
|
|
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.
|
|
|
|
|