* configure.ac: Change the version number to 4.5.13.
* NEWS: Mention some documentation bug fixes which have been
applied (ChangeLog entries already exist for these). Change the
version number of the top section of the NEWS file.
* find/testsuite/checklists.py: Tiny program for checking that the
correct lists of .xo and .exp files exist in the Makefile.am file.
* Makefile.am (checklists): Update target to use the new program.
Make this target phony.
* find/testsuite/Makefile.am (EXTRA_DIST_XO): Remove duplicate items.
(EXTRA_DIST_EXP): Likewise.
(checklists): Run with the other checks, using check-local. Don't
echo the full command, because it will make the summary of the
Automake-driven tests scroll offscreen.
(TEST_EXTENSIONS): Add .sh and .py.
* README-hacking: Explain that tool-versions.txt is not checked
into git. The repository has grown from 14MB to 16MB. Gnulib is
now a submodule and the directory we keep it in has changed.
Remove the suggestion to rsync the translations from the
translation project, since the files that fetches seem to be out
of date. Move the instruction to update ChangeLog to a more
prominent place. Mention that there is an electronic process for
assignments in some locations. Update the copyright year.
* lib/listfile.c (list_file): Check the result of fprintf to
determine if there was an I/O error on output. Return false (bool
instead of void) if so.
(print_name_without_quoting): Likewise.
(print_name_with_quoting): Likewise.
(print_name): Propagate the result of print_name_without_quoting
or print_name_with_quoting (and make all three functions return bool).
* find/pred.c (is_ok): Check the result of fprintf to
determine if there was an I/O error on output. Exit fatally if
there was a problem (since we cannot expect the user to say "yes"
or "no" to a prompt they will not have seen).
* xargs/xargs.c (print_args): Check the result of fprintf and
fflush to determine if there was an I/O error on output. Exit
fatally for the same reason as above if there is a problem.
* NEWS: Mention this bugfix (now that it is fully fixed).
* find/util.c (show_valid_debug_options): change type of array
subscript to size_t to avoid signed/unsigned problems.
(set_stat_placeholders): Silence unuseful compiler warning about
unused parameter.
* find/ftsfind.c (show_outstanding_execdirs): change type of array
subscript to size_t to avoid signed/unsizned problems.
* doc/find.texi (Single File): Explain that "-exec command ;"
returns true of the command exited with a status of 0.
(Multiple Files): Explain that "-execdir command +" always returns
true. Likewise for "-exec command +".
* find/find.1: similar changes.
* xargs/xargs.1: Update the description of -e option to emphasize
that the argument must follow the option letter immediately (in
other words, that it may not appear in the next program argument).
Likewise for the the -i and -l (lower-case L) options.
* xargs/xargs.c (usage): Minor consistency improvements to help
text.
* po/et.po: Updated the Estonian translation from the Translation
Project.
* po/pl.po: Updated the Polish translation.
* po/uk.po: Updated the Ukrainian translation.
* NEWS: Add a bug number for bug #40088: potential buffer overflow
in -execdir and -okdir. Re-order the bugs listed to be
decreasing numerically by ID.
* find/ftsfind.c (find): when fts_read fails, issue an error
message, set the exit status to zero and stop. Previously the
program would just stop (i.e. it failed to distinguish "done" from
"failed").
* find/find.1 (-exec): explain that on failure, some pending
command launches may not happen. The Texinfo documentation
already pointed this out, so that didn't need to be changed.
* NEWS: Mention this bugfix.
* doc/find.texi (Single File): Correct the description of what the
current directory will be when the command specified by -execdir
gets run. This fixes a documentation but reported by Eric
Hanchrow.
* NEWS: Mention this fix.
In interactive mode, there is a race between xargs prompting
about the next command to be run, vs. the execution of the
echo command:
$ echo 1 2 | xargs -n 1 -p
/bin/echo 1 ?...y
/bin/echo 2 ?...1
y
2
This behavior violates POSIX:
(http://pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html):
The xargs utility shall then invoke the constructed command line
and wait for its completion. This sequence shall be repeated until
one of the following occurs: [...]
* xargs/xargs.c (xargs_do_exec): Move the code for waiting for forked
processes up, so that the child process terminates before we prompt
for the next command.
* NEWS: Mention the fix.
Reported by jidanni@jidanni.org in
http://lists.gnu.org/archive/html/bug-findutils/2013-07/msg00015.html
* find/testsuite/sv-34976-execdir-fd-leak.sh: Avoid using seq;
instead, use pre-generated lists of test file names. Also avoid
using file descriptors 0, 1, 2 in the test.
Prevent "Failed to save working dir[...]: Too many open files"
error by closing the file descriptor of the working directory.
* find/exec.c (impl_pred_exec): Free the working directory if find
executes the command in the local dir, i.e. if it has been saved
by record_exec_dir(). Re-indent code.
* find/testsuite/sv-34976-execdir-fd-leak.sh: Add test.
* find/testsuite/Makefile.am (test_shell_progs): Mention the test.
* NEWS: Mention the fix.
Look for '${host}-ar' as set by AC_CANONICAL_HOST before looking for
the unprefixed 'ar'. This is useful when cross-compiling when all
your binutils are prefixed.
* find/find.c (NOT_AN_INODE_NUMBER): Add missing identifier which
(when missing) caused a compilation error on system where struct
dirent lacks a d_ino member.
* find/find.1 (SEE ALSO): Explain how to invoke info to read the
Texinfo manual.
* locate/locate.1 (SEE ALSO): Likewise.
* locate/updatedb.1 (SEE ALSO): Likewise.
* xargs/xargs.1 (SEE ALSO): Likewise.
Also, do not reject -perm /MODE merely because of POSIXLY_CORRECT.
Problem reported in <https://savannah.gnu.org/bugs/?38474>.
* NEWS:
* doc/find.texi (Mode Bits): Document this.
(Environment Variables): POSIXLY_CORRECT does not affect -perm.
* find/parser.c (parse_help): Mention /MODE, not +MODE.
(non_posix_mode): Remove.
(parse_perm): Remove support for -perm +MODE.
Do not reject -perm /MODE merely because POSIXLY_CORRECT is set;
POSIXLY_CORRECT is not supposed to be for pedantic checking.