diff options
Diffstat (limited to 'ChangeLog-2013')
-rw-r--r-- | ChangeLog-2013 | 11397 |
1 files changed, 11397 insertions, 0 deletions
diff --git a/ChangeLog-2013 b/ChangeLog-2013 new file mode 100644 index 00000000..7ce43bdc --- /dev/null +++ b/ChangeLog-2013 @@ -0,0 +1,11397 @@ +2013-12-08 James Youngman <jay@gnu.org> + + Bug #35753: check the success/failure of material I/O operations. + * 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). + + Fix some signed/unsigned problems. + * 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. + + Fix format specifier in safe_read error message. + * xargs/xargs.c (xargs_do_exec): print size_t values with %zu, not + %d (since size_t is not and never can be the same type as int). + + Bug #35753: detect failure of the atexit library function. + * find/find.c (main): Issue a fatal error message if atexit fails. + * xargs/xargs.c (main): Likewise. + * find/ftsfind.c (main): Likewise. + * locate/code.c (main): Likewise. + * locate/frcode.c (main): Likewise. + * locate/locate.c (dolocate): Likewise. + * locate/bigram.c (main): Likewise; also include <errno.h>. + +2013-10-27 James Youngman <jay@gnu.org> + + * THANKS: Add Eric S. Raymond. + +2013-10-27 Eric S. Raymond <esr@thyrsus.com> + + Add bracket missing from synopsis in locate manpage. + * locate/locate.1 (SYNOPSIS): Add missing bracket. + +2013-10-26 James Youngman <jay@gnu.org> + + Clearly explain the result of -exec/-execdir ... + + * 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. + +2013-09-24 James Youngman <jay@gnu.org> + + Fix bug #40094: minor inconsistencies in xargs option descriptions. + * 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. + + Update Vietnamese, Czech and Dutch translations. + * po/nl.po: Update Dutch translation. + * po/cs.po: Update Czech translation. + * po/vi.po: Update Vietnamese translation. + +2013-09-23 James Youngman <jay@gnu.org> + + Fix bug #39162: -printf reads beyond arguments terminated by \ + * find/print.c (insert_fprintf): If a \ is found at the end of a + format string, issue a warning (and render it as-is). + * NEWS: Mention this bugfix. + + Update version number to 4.5.13-git. + * configure.ac: Update version number to 4.5.13-git. + * NEWS: Likewise. + + Updated Estonian, Polish, Ukrainian translations. + * 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: Mention these updates. + +2013-09-22 James Youngman <jay@gnu.org> + + Release findutils-4.5.12. + * configure.ac (AC_INIT): Change version number to 4.5.12. + * NEWS: Change version number of most recent release to 4.5.12. + + Issue an error message when fts_read fails. Fixes bug #39324. + * 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. + + Add a bug number for bug #40088. + * 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. + +2013-09-21 James Youngman <jay@gnu.org> + + find: state that -execdir command is run locally to the matched file. + * 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. + +2013-09-21 Bernhard Voelker <mail@bernhard-voelker.de> + + xargs: wait for process before prompting in interactive mode (-p) + * 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. + +2013-09-21 Dmitry V. Levin <ldv@altlinux.org> + + find: fix potential buffer overflow in -execdir and -okdir. + * lib/buildcmd.c (bc_push_arg): Take prefix length into account + to avoid state->argbuf overflow. + * NEWS: Mention this fix. + +2013-09-21 James Youngman <jay@gnu.org> + + Make sv-34976-execdir-fd-leak.sh test more POSIX-compliant. + * 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. + + Fix typo "sturct". + * find/exec.c (impl_pred_exec): Typo fix: struct/struct. + * ChangeLog (2007-03-28): Likewise. + +2013-09-20 Bernhard Voelker <mail@bernhard-voelker.de> + + find: fix fd leak with --execdir option (bug#34976) + * 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. + +2013-09-20 James Youngman <jay@gnu.org> + + Updated Greek translation. + * po/el.po: Updated Greek translation from the Translation + Project. + +2013-09-20 Bernhard Voelker <mail@bernhard-voelker.de> + + xargs: Fix integer overflow in implicit conversion in do_exec. + * xargs/xargs.c (xargs_do_exec): Change type of r from int to + size_t, since that is the type that safe_read actually returns. + +2013-09-20 James Youngman <jay@gnu.org> + + Add Bernhard Voelker to AUTHORS. + * AUTHORS: Add Bernhard Voelker. + + * configure.ac: Check for prefixed versions of ranlib, too. + +2013-09-20 Benedikt Morbach <benedikt.morbach@googlemail.com> (tiny change) + + Check for both prefixed and unprefixed versions of "ar". + * configure.ac: 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. + +2013-09-20 James Youngman <jay@gnu.org> + + Fix compilation error where struct dirent lacks a d_ino member. + * 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. + + Be consistent about what we call the places the search starts. + * find/find.1: Consistently describe the paths at which the search + begins as "satrting points". + + Refer to the info manual in a clearer and more explicit way. + * 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. + +2013-06-02 James Youngman <jay@gnu.org> + + Add unlinkat moduile. + * import-gnulib.config (modules): Add unlinkat module, following + bug report from Martin von Gagern. + +2013-04-22 Paul Eggert <eggert@cs.ucla.edu> + + More removal of support for -perm +MODE. + * find/parser.c (parse_perm): Remove no-longer-needed local var + and associated code. Reported by Eric Blake in + <http://savannah.gnu.org/bugs/?38474#comment9>. + +2013-04-21 Paul Eggert <eggert@cs.ucla.edu> + + Remove support for obsolete -perm +MODE syntax. + 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. + * find/find.1 (-perm): describe this change. + (HISTORY): update the existing statement about the deprecation of + +MODE to explain that support has now been removed. + +2013-04-22 James Youngman <jay@gnu.org> + + Fix documentation typo. + * doc/find.texi (Mode Bits): Fix typo "it set" -> "is set". + +2013-04-20 Paul Eggert <eggert@cs.ucla.edu> + + doc: fix typos uncovered by texinfo 5.0 + * doc/find-maint.texi: Fix typos that cause 'make' to fail + if texinfo 5.0 is installed. + +2013-04-22 James Youngman <jay@gnu.org> + + Enable assertions in locate. + * locate/locate.c: Don't #define NDEBUG. + +2013-04-21 James Youngman <jay@gnu.org> + + * find/find.1 (-size): explain the rounding-up semantics more + clearly. + + Add example for find -printf. + * doc/find.texi (Print File Information): Add an example for "find + -printf" suggested by Karl Berry. + +2011-12-31 Karl Berry <karl@gnu.org> + + Further documentation improvements. + * doc/find.texi: use @code for environment variable names, and + other improvements. + +2009-08-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + * locate/locate.c: Simplify handling of slocate databases. + Fix the bug assuming second path extends the first one. + * locate/testsuite/locate.gnu/slocate.{exp,xo}: New testcase + for slocate databse, exposing this bug. + * locate/testsuite/Makefile.am: Add new test case. + +2009-08-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + * locate/locate.c: Enable assertions and fix the off-by-one + bugs that prevented this. + +2009-08-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + * doc/find.texi: Remove duplicate paragraph and fix a typo. + +2013-03-31 James Youngman <jay@gnu.org> + + Don't use reserved identifiers in macro names; fix other code smells. + * build-aux/src-sniff.py (checkers): Check for #define directives + which use a macro name which is reserved. + (MakefileRegexChecker): New class which performs regex checks on + makefiles; this ensures that we don't check Makefile.in if we're + going to check Makefile.am anyway. + * lib/unused-result.h: Don't use a reserved identifier in the + macro name defined as the #include guard. + * locate/locatedb.h: Likewise. + * Makefile.am (findutils-check-smells): Don't check gnulib code. + * import-gnulib.sh (hack_gnulib_tool_output): Move the 'do' of a + for loop onto the line following the 'for' (instead of the same + line). + +2013-03-29 James Youngman <jay@gnu.org> + + Document that -0/-d turns off logical end-of-file processing. + * doc/find.texi (xargs options): Explain that the logical end of + file marker string set with -E is not special if -d or -0 was + specified. + * xargs/xargs.c (usage): Mention this in the --help output. + (read_string): Correct the function header comment to point out + that there is no logical end-of-file processing for this case. + Also point out that the delimiter may not always be NUL. + This documentation update fixes Savannah bug #36652. + (main): Emit a warning message if -0/-d is specified and -E was + also used. + * xargs/testsuite/xargs.gnu/E_-0.exp: Don't compare stderr output, + since for this case xargs now emits a warning message. + * NEWS: Mention this change. + +2013-03-29 James Youngman <jay@gnu.org> + + Updated the Galician translation. + * gl.po: Updated Galician translation. + +2013-03-26 James Youngman <jay@gnu.org> + + Updated a number of translations. + * cs.po: Updated Czech translation. + * et.po: Updated Estonian translation. + * fi.po: Updated Finnish translation. + * fr.po: Updated French translation. + * nl.po: Updated Dutch translation. + * pl.po: Updated Polish translation. + * ru.po: Updated Russian translation. + * uk.po: Updated Ukrainian translation. + * vi.po: Updated Vietnamese translation. + * zh_CN.po: Updated Chinese (simplified) translation. + +2013-03-26 Kamil Dudka <kdudka@redhat.com> + + Fix compile-time warnings. + * find/defs.h (struct predicate): Add a missing const modifier. + * find/find.c (wd_sanity_check): Suppress a warning in #else branch. + (process_dir): Remove an unused variables and statements. + * find/pred.c (pred_context): Use const modifier in the prototype. + * lib/buildcmd.{c,h} (bc_args_exceed_testing_limit): Remove a const + modifier causing unnecessary warnings. + * xargs/xargs.c (main): Add explicit type-casts. + +2013-03-24 James Youngman <jay@gnu.org> + + Expand on warning about xargs -P and stdout, including in Info. + * xargs/xargs.1: Expand on the warning about sharing stdout for + "xargs -P". + * doc/find.texi (Controlling Parallelism): Add a suitable warning + about sharing resources here, too. + * NEWS: Mention that all relevant documentation was updated with + this warning. + +2013-03-24 Bernhard Voelker <mail@bernhard-voelker.de> + + Improve error message for find -type X (X = an unknown file type). + * find/parser.c (insert_type): Give a more comprehensible error + message when the type letter following -type or -xtype corresponds + to a type of file which was unknown on the system which compiled + the find binary. + * NEWS: Mention this improvement. + + xargs: split usage text to help translators, and clarify it. + * xargs/xargs.c (usage): Define HTL macro to print one help text + line (or entry). Split the option descriptions up by using the + above macro. Refine the messages to adapt to the common way: + change the start of each option's description to lower case, do + not use periods at the end, use semicolons where needed, indent + secondary lines, several other minor improvements. + * NEWS: Mention this improvement. + + * xargs/xargs.1: Add note for -P suggesting the use of a locking + system to avoid corrupted stdout. + +2013-03-24 James Youngman <jay@gnu.org> + + Fix Savannah bug #38583: errno-buffer read failed in xargs_do_exec + * import-gnulib.config (modules): Import the safe-read module. + * xargs/xargs.c (xargs_do_exec): Use safe_read so that the read + system-call is retried if we handle a signal (for example + SIGUSR[12]) while we are trying to read the errno vlaue from the + child process. + + Fix misleading message from import-gnulib.sh; allow .git symlink. + * import-gnulib.sh (check_old_gnulib_dir_layout): Really apply the + bugfix by Kamil Dudka which eliminates a misleading message of + import-gnulib.sh on a fresh repository obtained by 'git clone + --recursive', by requiring gnulib/.git to exist but not requiring + it to be a directory. + + Bugfix to "make clean": do not delete header files. + * lib/Makefile.am (coverage-clean): Remove output files left + behind by gcc -fprofile-arcs -ftest-coverage by using $(RM) with a + glob pattern rather than a $(libfindtools_a_SOURCES.c=.gcno) + Makefile substitution, because the latter caused us to delete + header files entirely (their names do not end in .c). This had + meant that it was impossible to compile findutils after "make + clean". Bug report by David Gilbert. + * find/Makefile.am (coverage-clean): Likewise. + * xargs/Makefile.am (coverage-clean): Likewise. + * locate/Makefile.am (coverage-clean): Likewise. + * Makefile.am (coverage-clean): Likewise, but also do this in the + subdirectories whose Makefile.am files are generated by + gnulib-tool. + + Move on from 4.5.11, to 4.5.12-git + * NEWS: Add a new section for 4.5.12-git. Mention the bugfix to + find/testsuite/sv-bug-32043.sh. + * configure.ac: Update the version number. + + Fix Bash-ism [[ ... ]]. + * find/testsuite/sv-bug-32043.sh: Change [[ ... ]] to [ ... ] + because the first pattern is a Bash-ism. Bug reported by David + Gilbert. + +2013-02-03 Kamil Dudka <kdudka@redhat.com> + + Avoid using 'INCLUDES =' in automake templates. + * find/Makefile.am: Use AM_CPPFLAGS instead of deprecated INCLUDES. + * lib/Makefile.am: Likewise. + * locate/Makefile.am: Likewise. + * xargs/Makefile.am: Likewise. + + Eliminate a misleading message of import-gnulib.sh on a fresh + repository obtained by 'git clone --recursive'. + * import-gnulib.sh (check_old_gnulib_dir_layout): Do not require + ./gnulib/.git to be a directory. + +2013-02-03 James Youngman <jay@gnu.org> + + Fix Savannah bug #38239, missing variable initialisation in locate + * locate/locate.c (cleanup_quote_opts): New atexit function, frees + quote_opts which otherwise would leak. + (dolocate): Eliminate the redundant boolean variable + they_chose_db, whose true/false-ness followed the not-NULL-ness of + locate_path. Rename locate_path to user_selected_locate_path to + make this explicit. + (dolocate): When we get to the bottom of the loop, don't try to + check for a further element in user_selected_locate_path if it is + NULL (that is, $LOCATE_PATH was unset and the -d option was not + used). + + * po/findutils.pot: Updated template file from the Translation + Project + +2013-02-02 James Youngman <jay@gnu.org> + + Release findutils-4.5.11. + * NEWS: update version number from 4.5.11-git to 4.5.11. + * configure.ac (AC_INIT): Likewise. + + Reduce needless calls to complete_pending_execdirs. + * find/exec.c (impl_pred_exec): Once pushing an argument for + -exec{,dir} ... +, Only set state.execdirs_outstanding if + there were previously no todo items on ths command line. + This avoids spurious calls to complete_pending_execdirs(). + +2012-12-19 James Youngman <jay@gnu.org> + + Make the manual section ordering and menu item ordering consistent. + * doc/find.texi (Top): Re-order menu items to be consistent with + ordering of sections ('Reference' is moved). + (Print File Information): Add missing menu item 'Formatting Flags' + and remove that menu item from inside 'Format Directives'. + (Formatting Flags): Hence this is a subsection, not a + subsubsection. + +2012-12-15 Stefano Lattarini <stefano.lattarini@gmail.com> (trivial change) + + build: remove redundant AC_SUBST of var INCLUDES + * configure.ac: don't call AC_SUBST(INCLUDES). + +2012-12-15 Bernhard Voelker <mail@bernhard-voelker.de> (trivial change) + + * locate/updatedb.sh (PRUNEFS): Avoid 9P, cifs and nfs4 + filesystems by default. + +2012-12-15 James Youngman <jay@gnu.org> + + Tweak updatedb.sh to make diffs easier to read. + * locate/updatedb.sh (PRUNEFS): List the default items in + alphabetical order to make diffs easier to read. + (PRUNEPATHS): likewise. + + Re-generate doc/regexprops.texi. + * doc/regexprops.texi: re-generate to describe the changes to + gnulib for the regular expression types "awk" (to add character + class support), "gnu-awk" (to add range support) and "posix-awk" + (also to add range suport). + * NEWS: Describe this change. + +2012-11-17 Dmitry V. Levin <ldv@altlinux.org> + + find: use FTS_VERBATIM + * gnulib: update to latest, to get FTS_VERBATIM support. + * find/ftsfind.c (ftsoptions): Set the FTS_VERBATIM bit. This + Patch was contributed on 2012-11-18, but was applied with the + above regexprops change) + +2012-12-14 James Youngman <jay@gnu.org> + + Fix bug #37926 (wrong result for oldfind -inum) + * find/find.c (D_INO): Define D_INO as a convenience accessor for + the inode number in struct dirent; use 0 if there is no d_ino + member in struct dirent. + (main): Pass the inode number of the top-level directory to + process_top_path. + (at_top): Add argument inum, the inode number of the file we are + looking at. Pass this to the action function. + (do_process_top_dir): Pass the inode number to process_path. + (do_process_predicate): Take (but ignore) the inode number + argument. + (process_path): Add argument inum, the inode number of the file we are + looking at. Populate statbuf.st_ino with this value. This avoids + a stat call in pred_inum if the stat information would not + otherwise be used. + (process_dir): Pass the inode number to process_path. + * import-gnulib.config (modules): Add d-ino. + * NEWS: Mention this bugfix. + +2012-11-17 James Youngman <jay@gnu.org> + + Update the Vietnamese, Ukranian and Croatian translations. + * po/vi.po, po/uk.po, po/hr.po: Update the translation files from + the translation project. + +2012-09-18 Jim Meyering <meyering@redhat.com> + + find: fix two time-formatting leaks (bug #37356) + * find/print.c (do_time_format): Call xmalloc for static "buf" only + the first time. + When reallocating buf, be sure to update its buf_size. + Also free "altbuf". + Reported by Nemo Maelstrom Thorx in http://bugs.debian.org/687358 + via Andreas Metzler in http://savannah.gnu.org/bugs/?37356 + + find: minor tweaks + * find/print.c (do_time_format): Use memcpy in place of sprintf. + When calling x2nrealloc, use "sizeof *buf" as the element size, + rather than "2u". + + build: avoid import-gnulib.sh failure + * import-gnulib.config (extra_files): Remove build-aux/missing, + since that file has been removed from gnulib. + + build: stop using now-obsolete macro, AM_C_PROTOTYPES + * configure.ac: Don't use obsolete AM_C_PROTOTYPES. + +2011-12-30 Karl Berry <karl@gnu.org> + + Documentation improvements (UK spelling, use of @code). + * find.texi (@copying): add 2011, period outside quotes. + (thoughout): use UK spelling and " -- " convention. + (section names): use @code where needed. + +2011-09-11 Jim Meyering <meyering@redhat.com> + + Fix a typo in find.texi. + * doc/find.texi (Error Messages From find): Fix typo s/an/a/. + +2011-08-20 James Youngman <jay@gnu.org> + + Describe recent memory savings on very large directories. + * NEWS: Describe the recent changes which reduce the amount of + heap memory used in processing directories containing very many + entries. + + Remove no-longer-used files savedir.[ch]. + * lib/savedirinfo.c: delete unused file. + * lib/savedirinfo.h: delete unused file. + * lib/Makefile.am (libfind_a_SOURCES): Remove savedirinfo.c. + (EXTRA_DIST): Remove savedirinfo.h. + + Reduce memory consumption of oldfind on large directories. + * find/find.c (process_dir): Reduce memory consumption for large + directories. Don't save the whole directory content with + xsavedir, instead just loop over the results of readdir. This + means that oldfind will consume one file descriptor per directory + level. + * find/testsuite/sv-34079.sh: verify that the memory consumption + of oldfind is reasonable on large directories. + + Reduce memory consumption of fts. + * gnulib: update to latest, mainly to include a bugfix (gnulib + commit 47cb657eca1abf2c26c32c8ce03def994a3ee37c) which limits the + memory consumed by fts. + * find/testsuite/sv-34079.sh: New test, verifying that memory + consumption in ftsfind does not grow indefinitely as the size of + directories increases. + * find/testsuite/Makefile.am (test_shell_progs): Added sv-34079.sh. + +2011-06-29 James Youngman <jay@gnu.org> + + Fix some constness warnings when dealing with -printf formats. + * find/parser.c (collect_arg_nonconst): Rename collect_arg to + collect_arg_nonconst and change the collected argument from const + char* to char*. + (collect_arg): Call collect_arg_nonconst to do the real work. + (parse_printf): Call collect_arg_nonconst instead of collect_arg. + Change `format' from const char* to char*. + (parse_fprintf): Likewise. + * find/print.h: Change 'format' from const char* to char*, since + actually we edit it in place. + * find/print.c (parse_octal_escape): Instead of updating a const + char* pointer to indicate how many characters from the input we + consumed, update a size_t value. + (insert_fprintf): Change function definition to match updated + prototype. Eliminate fmt_inpos. Introduce a `readpos' offset + variable which takes the previous role of fmt_inpos. + +2011-06-28 James Youngman <jay@gnu.org> + + Refactor insert_fprintf to minimise calls to make_segment. + * find/print.c (get_format_flags_length): Factor out of + insert_fprintf; computes the length of the format flags for a + format specifier (that is everything after the % but before the + format control character). + (get_format_specifer_length): Also factored out of insert_fprintf; + returns the number of format control characters (e.g. 2 for %A@) + or 0 for error. + (insert_fprintf): Keep fmt_editpos and fmt_inpos more closely in + step, instead of initialising fmt_inpos only when we need it (the + idea eventually will be to make fmt_inpos the loop control + variable). Call get_format_specifer_length and + get_format_flags_length when needed. Reduce the number of + different calls to make_segment. We now have one for each KIND_ + value plus one for the error case. + +2011-06-27 James Youngman <jay@gnu.org> + + Factor some of the code out of insert_fprintf. + * find/print.c (insert_fprintf): Factor out the handling of + eascape codes into new functions parse_escape_char, + parse_octal_escape. + +2011-06-25 James Youngman <jay@gnu.org> + + Separate out the handling of \c. + * find/print.c (insert_fprintf): Deal with \c as a special case. + + Remove some redundant continue statements. + * find/print.c (insert_fprintf): Remove a pair of redundant + 'continue' statements. + + Simplify -fprintf %%; handle %% like a regular format specifier. + * find/print.c (make_segment): Handle foo%% by simply generating a + format string of foo%% (that is, let vfprintf handle the escaped + %). + (insert_fprintf): Handle %% as KIND_FORMAT instead of KIND_PLAIN. + (do_fprintf): Handle %%. + + Clarify variable naming in insert_fprintf. + * find/print.c (insert_fprintf): Rename some variables for greater + clarity: + format is now segstart, since it points to the start of the part + of the format string we're next going to pass to make_segment. + scan2 is now fmt_inpos (which is a const char*) and is the + scanning position beyond segstart which we're reading to locate + the end of this segment. + scan is now fmt_editpos and is the scanning position at which we + are modifying the format string (for example to change \n in the + format to the value of the '\n' character). + +2011-06-19 James Youngman <jay@gnu.org> + + Test find -printf %i. + * find/testsuite/test_inode.sh: New test, for find -printf %i. + * find/testsuite/Makefile.am (test_shell_progs): Add test_inode.sh. + + Extract common test code into a sourced file. + * find/testsuite/binary_locations.sh: New file, extracting common + code from the test scripts. + * find/testsuite/test_escape_c.sh: Source binary_locations.sh. + * find/testsuite/test_escapechars.sh: Source binary_locations.sh. + * find/testsuite/Makefile.am (EXTRA_DIST): Distribute + binary_locations.sh. + +2011-06-18 James Youngman <jay@gnu.org> + + Fix some compiler warnings in xargs. + * xargs/xargs.c: Remove definition of the unused macro VOID. + Include error.h instead of declaring error (incorrectly). + Change the type of lineno from int to size_t. + (get_char_oct_or_hex_escape): Don't point endp unnecessarily at p, + because they have different constness. There's no need for this, + just initialise it to NULL. + (main): Make input_file const. Make the default arglist + non-const, to avoid a constness warning. + (main): Pass the option name as the argument to error's %s format, + as opposed to the whole struct (this was a bug, but since the name + member was the first in the struct, there were probably no + symptoms). + (main): read_args returns an int, but the only negative value it + can return is -1. Once we know that didn't happen, assign the + value to a size_t variable to avoid signed/unsigned warnings + elsewhere. + (xargs_do_exec): Manually inhibit some unused-parameters warnings. + (print_args): Use size_t as the type of a loop variable. + (wait_for_proc): Since procs_executing is an unsigned long, use a + %lu format specifier to print it. + (increment_proc_max): Inhibit an unused-parameter warning (the + signal number). + (decrement_proc_max): Likewise. + * lib/buildcmd.h (struct buildcmd_control): Make member + replace_pat const. Change the type of lines_per_exec to unsigned + long. + +2011-06-20 James Youngman <jay@gnu.org> + + Use a consistent include order in header files too. + * lib/printquoted.h: Use the preferred header-file inclusion order + here too. + + Use a consistent order for header-file inclusion. + * find/exec.c: Include config.h, then system headers followed by + gnulib headers and last, find-specific headers. + * find/find.c: Likewise. + * find/finddata.c: Likewise. + * find/fstype.c: Likewise. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * lib/buildcmd.c: Likewise. + * lib/dircallback.c: Likewise. + * lib/extendbuf.c: Likewise. + * lib/fdleak.c: Likewise. + * lib/findutils-version.c: Likewise. + * lib/listfile.c: Likewise. + * lib/printquoted.c: Likewise. + * lib/qmark.c: Likewise. + * lib/regexprops.c: Likewise. + * lib/regextype.c: Likewise. + * lib/safe-atoi.c: Likewise. + * lib/savedirinfo.c: Likewise. + * lib/splitstring.c: Likewise. + * lib/test_splitstring.c: Likewise. + * lib/waitpid.c: Likewise. + * locate/bigram.c: Likewise. + * locate/code.c: Likewise. + * locate/frcode.c: Likewise. + * locate/locate.c: Likewise. + * locate/word_io.c: Likewise. + * xargs/xargs.c: Likewise. + + Take gnulib-tool's advice about which header files to include. + * locate/locate.c: Include <regex.h> instead of "regex.h". + Include "fnmatch.h" instead of <fnmatch.h> (because we use + fnmatch-gnu). Include "gettext.h". + * lib/regexprops.c: Include <regex.h> instead of "regex.h". + * find/tree.c: Include "gettext.h". Include "fnmatch.h" instead + of <fnmatch.h> (because we use fnmatch-gnu). + * find/parser.c: Include "gettext.h" and <regex.h>. Include + "fnmatch.h" instead of <fnmatch.h> (because we use fnmatch-gnu). + * find/pred.c: Likewise. + * find/exec.c: Include "gettext.h". + * find/find.c: Likewise. + * find/fstype.c: Likewise. + * find/ftsfind.c: Likewise. + * find/print.c: Likewise. + * lib/buildcmd.c: Likewise. + * lib/fdleak.c: Likewise. + * lib/findutils-version.c: Likewise. + * lib/regextype.c: Likewise. + * lib/safe-atoi.c: Likewise. + * find/util.c: Likewise. + * locate/bigram.c: Likewise. + * locate/code.c: Likewise. + * locate/frcode.c: Likewise. + * locate/word_io.c: Likewise. + * xargs/xargs.c: Likewise. + * find/Makefile.am: Add a comment explaining why gnulib-tool + advised us to use each library. + +2011-06-19 James Youngman <jay@gnu.org> + + Update gnulib. + * gnulib: update to latest version. + +2011-06-18 James Youngman <jay@gnu.org> + + Remove test-coverage output files for "make clean". + * find/Makefile.am (CLEANFILES): Clean the .gcda and .gcdo files + which are produced by running programs that were compile with gcc + -fprofile-arcs -ftest-coverage. + * lib/Makefile.am (CLEANFILES): Likewise. + * locate/Makefile.am (CLEANFILES): Likewise. + * xargs/Makefile.am (CLEANFILES): Likewise. + + Move the printing code into print.c. + * find/print.c (scan_for_digit_differences): Move to this file + from pred.c. + (do_time_format): Move to this file from pred.c. + (format_date): Likewise. + (weekdays): Likewise. + (months): Likewise. + (ctime_format): Likewise. + (file_sparseness): Likewise. + (checked_fprintf): Likewise. + (checked_print_quoted): Likewise. + (checked_fwrite): Likewise. + (checked_fflush): Likewise. + (HANDLE_TYPE): Likewise. + (do_fprintf): Likewise. + (pred_fprintf): Likewise. + * find/pred.c: Don't include human.h, filemode.h, verify.h or + xalloc.h, we don't need them. Don't define MAX. Don't declare + ctime_format or format_date. Each of the functions moved into + print.c were moved out of this file. + + Reserve format specifiers %(, %{ and %[ for future use. + * find/print.c (insert_fprintf): Reject %(, %{ and %[. + (make_segment): Remove code which previously supposedly rejected + these format specifiers, but in fact did nothing. Replace with + an assertion to document the fact that we do not expect to see + these format characters in make_segment. + * find/testsuite/find.gnu/printf-reserved.exp: New test case, for + %(, %{ and %[, which are all rejected. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + find.gnu/printf-reserved.exp. + * doc/find.texi (Reserved and Unknown Directives): Document this. + * find/find.1: Document this. + * NEWS: Mention this change. + + Additional test cases for printf field width, precision and sign. + * find/testsuite/find.gnu/printf.exp: Add test cases for left and + right string alignment (%-10p), string truncation (%10.6p), + explicit signs (%+d), left and right alignment (%10p, %-10p), + zero-filling on decimal fields. + * find/testsuite/find.gnu/printf.xo: Add expected outputs for the + new tests. + + Add a test for find -printf ... %%. + * find/testsuite/find.gnu/printf.exp: Also test %%. + * find/testsuite/find.gnu/printf.xo: Add expected output for the + %% test case. + + Add a test for "find -printf \c". + * find/testsuite/Makefile.am (test_shell_progs): Add + test_escape_c.sh. + * find/testsuite/test_escape_c.sh: New test for "find -printf + \c". + + Remove an unnecessary argument from insert_fprintf. + * find/print.c (insert_fprintf): Eliminate the 'func' argument, + since it is always pref_fprintf. + * find/print.h: Adjust the prototype accordingly. + * find/parser.c (parse_fprintf): Don't pass the func argument to + insert_fprintf. + (parse_printf): Likewise. + + Add new test for octal and letter escapes in -printf format. + * find/testsuite/test_escapechars.golden: Expected output file. + * find/testsuite/Makefile.am (EXTRA_DIST_GOLDEN): New variable; + distribute test_escapechars.golden. + * find/testsuite/test_escapechars.sh: New test. + * find/testsuite/Makefile.am (test_shell_progs): New variable, + where we keep the list of shell script tests. Move existing + examples from TESTS and add test_escapechars.sh. + * find/testsuite/Makefile.am (TESTS): Refer to test_shell_progs. + * cfg.mk: allow trailing blanks and space-tab sequences in + find/testsuite/test_escapechars.golden. + +2011-06-17 James Youngman <jay@gnu.org> + + Split find's printf-related code into a new file. + * find/print.h: New file. Declare insert_fprintf and + make_segment. + * find/print.c: New file. Move definitions of insert_fprintf and + make_segment to here. + * find/parser.c: Include "parser.h". Move declarations of + insert_fprintf and make_segment into that file; move the + definitions into parser.c. + * find/Makefile.am (libfindtools_a_SOURCES): Add print.c. + (EXTRA_DIST): Add print.h. + * po/POTFILES.in: Add find/print.c. + +2011-06-15 James Youngman <jay@gnu.org> + + Fix compiler warnings in lib/regextype.c and find/parser.c. + * lib/regextype.c (tagRegexTypeMap): make the name field const. + * find/parser.c (parse_version): instead of counting features, use + a boolean variable, nofeatures. This avoids compiler warnings + about overflow. + + Adopt the use of the manywarnings module. + * import-gnulib.config (modules): Add manywarnings. + * configure.ac: Invoke gl_MANYWARN_ALL_GCC and + gl_MANYWARN_COMPLEMENT. + * configure.ac: Turn on the compiler warnings only if + --enable-compiler-warnings was specified to configure. + +2011-06-14 James Youngman <jay@gnu.org> + + Avoid pointer/integer comparison on value returned by strchr. + * find/parser.c (parse_newerXY): Compare the result of strchr + against NULL rather than 0. + + Fix further compiler warnings. + * find/ftsfind.c (show_outstanding_execdirs): Now that + execp->state.cmd_argc is a size_t, we can't print it with %d. So + print it with PRIuMAX (and include <inttypes.h> to define that). + * find/tree.c (prec_name): change return type to const char*. + (type_name): Likewise. + * find/exec.c (impl_pred_exec): use a separate variable (buf) to + point the memory allocated/freed with malloc/free, so that the + existing variable target can then be const (and so we can assign + pathname to it without a compiler warning). + + Eliminate some compiler warnings. + * find/find.c: Remove definition of SAFE_CHDIR, which we don't + use. + * find/defs.h: Remove redundant declaration of launch. + * find/parser.c (parse_false): Cast unused arguments to void. + (parse_print0): Likewise. + (pred_context): Likewise. + (parse_newerXY): Add some parens for slightly greater clarity. + (make_segment): Avoid switch-missing-default-case warning by + turning it into an if statement. + (check_path_safety): Remove unused argument. + (insert_exec_ok): Don't pass the unwanted argument to + check_path_safety. + (get_relative_timestamp): silence compiler warning by adding a + case for the remaining enumeration value rather than using + default. + * find/pred.c (months): the strings can be const char*, rather + than just char*. + (ctime_format): change TIME_BUF_LEN to an integer constant to + avoid signed/unsigned comparison. + (blank_rtrim): Change to new-style function definition(!) and + remove unnecessary parentheses around a return value. + * lib/buildcmd.c: Omit redundant declaration of environ. + * find/tree.c (get_expr): Make static. + (cost_assoc): make the name field const. + (prec_assoc): make the prec_name field const. + (op_assoc): make the type_name field const. + (type_name): turn into an ANSI function definition(!). + (prec_name): Likewise! Also remove spurious parentheses around + return value. + (prec_name): Remove spurious parentheses around return value. + * lib/buildcmd.h (buildcmd_state): change types of several fields + to size_t: cmd_argc, cmd_argv_alloc, largest_successful_arg_count, + smallest_failed_arg_count. + (buildcmd_control): change types of several fields + to size_t: max_arg_count, initial_argc, lines_per_exec, + args_per_exec. + + Assume SIGCHLD and O_NOFOLLOW are defined by gnulib. + * find/find.c: Since gnulib defines O_NOFOLLOW, don't check to see + if the macro is defined. Check instead to see if it is 0. + (safely_chdir_nofollow): Point this out. + (safely_chdir): Check O_NOFOLLOW for zeroness. + * find/exec.c: Don't #define SIGCHLD. + * xargs/xargs.c: Likewise. + +2011-06-14 James Youngman <jay@gnu.org> + + Fix coredump bug introduced in the previous change. + * locate/locate.c (dolocate): Remove declaration of e, which was + replaced by the variable db_name. Change the last two uses of 'e' + to use 'db_name'. This bugfix prevents possible coredumps when + issuing error messages about reads from the locate database (or + warnings about byte order for old databases). This bug had been + introduced in the previous change. + +2011-06-13 James Youngman <jay@gnu.org> + + Split strings into fields nondestructively. + * lib/splitstring.c: New file; defines splitstring(), which will + non-destructively locate character-separated fields in a string. + * lib/splitstring.h: New file; declares splitstring. + * lib/test_splitstring.c: New file; unit test for splitstring.c. + * lib/nextelem.c: Delete (obsoleted by splitstring.c). + * lib/nextelem.h: Delete (obsoleted by splitstring.h). + * lib/Makefile.am (libfind_a_SOURCES): Add splitstring.c, + splitstring.c. Remove nextelem.c, nextelem.h. + (check_PROGRAMS): Add test_splitstring. + (TESTS): Add test_splitstring. + (test_splitstring_SOURCES): Sources for the + test_splitstring unit test. + * locate/locate.c: Include splitstring.h rather than nextelem.h. + (dolocate): Use splitstring rather than next_element. In places + where we need a nul-terminated string, use strndup() to create it. + Convert some space-tab sequences to regular spacing. + * find/parser.c: Include splitstring.h rather than nextelem.h. + (check_path_safety): Use splitstring rather than next_element. + * import-gnulib.config (modules): Depend on the module strndup. + * cfg.mk: Exempt lib/test_splitstring.c from calling + bindtextdomain or set_program_name. + +2011-06-13 James Youngman <jay@gnu.org> + + Fix compilation failure in bigram.c by including <locale.h>. + * locate/bigram.c: Include <locale.h>. + +2011-06-12 James Youngman <jay@gnu.org> + + Split exec-related code into a new file, exec.c + * find/exec.c: New file. + (initialise_wd_for_exec): Move out of pred.c + (record_exec_dir): Likewise. + (impl_pred_exec): Likewise. + (prep_child_for_exec): Likewise. + (launch): Likewise. + * find/pred.c: These functions are moved out of this file. + * find/defs.h: impl_pred_exec is no longer static in pred.c, so + add an external declaration for it. Move the declaration of + launch to here also. + * find/Makefile.am (libfindtools_a_SOURCES): Add exec.c. + * po/POTFILES.in: Add find/exec.c. + + Eliminate .x-sc_prohibit_empty_lines_at_EOF and .x-sc_bindtextdomain + * cfg.mk: Move definition of which files we should not check to + exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF, instead + of .x-sc_prohibit_empty_lines_at_EOF. + Move contents of .x-sc_bindtextdomain into + exclude_file_name_regexp--sc_bindtextdomain. + .x-sc_prohibit_empty_lines_at_EOF: Delete. + .x-sc_bindtextdomain: Delete. + + Enable sc_makefile_at_at_check; fix problems it identifies. + * lib/Makefile.am: Use $(FINDLIBOBJS) instead of @FINDLIBOBJS@. + * find/Makefile.am (LDADD): Use $(FINDLIBS) instead of @FINDLIBS@. + * locate/Makefile.am (updatedb): Use $(VERSION) and + $(PACKAGE_NAME) instead of @VERSION@ and @PACKAGE_NAME@. + * cfg.mk: remove sc_makefile_at_at_check from local-checks-to-skip + +2011-06-12 James Youngman <jay@gnu.org> + + Improve src-sniff.py. + + * build-aux/src-sniff.py: Mention that many of these checks would + be better as gnulib syntax checks (since there are more flexible + ways to disable these). + (RegexChecker.__init__): Don't pass a spurious second "self" + argument. + (RegexChecker.Check): Provide a more intelligible message when + complaining about use atof/scanf. + (RegexChecker.Check): Enable the check for HAVE_FCNTL_H. + (RegexChecker.Check): When checking for trailing whitespace, don't + complain about trailing newlines(!) + (RegexChecker.Check): Indicate what the out-of-date address is + when we find one. + +2011-06-11 James Youngman <jay@gnu.org> + + Enable the sc_trailing_blank check. + * cfg.mk: Enable sc_trailing_blank check. + (exclude_file_name_regexp--sc_trailing_blank): Exclude + xargs test inputs and outputs. Exclude the COPYING file. Exclude + a find test output. Exclude the .po files. + * xargs/xargs.c: Remove trailing blanks. + * xargs/testsuite/config/unix.exp: Likewise. + * find/testsuite/find.posix/bracket-depth.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions1.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions2.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions3.exp: Likewise. + * find/testsuite/find.posix/nameslash.exp: Likewise. + * find/testsuite/find.posix/perm-vanilla.exp: Likewise. + * find/testsuite/find.posix/sizes.exp: Likewise. + * find/testsuite/find.posix/sv-bug-25359.exp: Likewise. + * find/testsuite/find.posix/typesize.exp: Likewise. + * find/testsuite/find.gnu/access.exp: Likewise. + * find/testsuite/find.gnu/deletedir.exp: Likewise. + * find/testsuite/find.gnu/deletefile.exp: Likewise. + * find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise. + * find/testsuite/find.gnu/execdir-hier.exp: Likewise. + * find/testsuite/find.gnu/execdir-pwd.exp: Likewise. + * find/testsuite/find.gnu/execdir-root-only.exp: Likewise. + * find/testsuite/find.gnu/follow-arg-parent-symlink.exp: Likewise. + * find/testsuite/find.gnu/ilname.exp: Likewise. + * find/testsuite/find.gnu/lname.exp: Likewise. + * find/testsuite/find.gnu/perm-slash.exp: Likewise. + * find/testsuite/find.gnu/posix-h.exp: Likewise. + * find/testsuite/find.gnu/sv-bug-17782.exp: Likewise. + * find/testsuite/find.gnu/sv-bug-24169.exp: Likewise. + * find/testsuite/find.gnu/used-invarg.exp: Likewise. + * find/testsuite/find.gnu/used-missing.exp: Likewise. + * find/testsuite/excuses.txt: Likewise. + * locate/testsuite/config/unix.exp: Likewise. + * locate/testsuite/locate.gnu/bigendian.exp: Likewise. + * locate/testsuite/locate.gnu/bigprefix1.exp: Likewise. + * locate/testsuite/locate.gnu/exists2.exp: Likewise. + * locate/testsuite/locate.gnu/exists3.exp: Likewise. + * locate/testsuite/locate.gnu/littleendian.exp: Likewise. + * locate/testsuite/locate.gnu/notexists2.exp: Likewise. + * locate/testsuite/locate.gnu/notexists3.exp: Likewise. + * locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise. + * xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise. + * xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise. + * xargs/testsuite/xargs.posix/rc-125.exp: Likewise. + * xargs/testsuite/xargs.posix/sv-bug-18714.exp: Likewise. + * xargs/testsuite/xargs.posix/sv-bug-18714b.exp: Likewise. + * po/Makevars (EXTRA_LOCALE_CATEGORIES): Likewise. + * xargs/xargs.1 (SEE ALSO): Likewise. + + Enable the sc_space_tab check + * cfg.mk: Enable the sc_space_tab check. Exclude various xargs + test inputs and outputs from the check. Remove some obsolete + comments. + * locate/Makefile.am (dblocation.texi): Remove space-tab sequences. + + Enable the sc_texinfo_acronym check + * cfg.mk: Enable the sc_texinfo_acronym check. Exempt + doc/perm.text, which isn't ours anyway. + * doc/find.texi (Deleting Files): Say just POSIX rather than + @acronym{POSIX}, simply because this is the convention in GNU + documentation. The motivation is that it's hard to do so + consistently (because, for example, you can't use @acronym in a + node name). + + Enable syntax check sc_obsolete_symbols. + (exclude_file_name_regexp--sc_obsolete_symbols): Don't check + build-aux/src-sniff.py. + + Enable more syntax checks, eliminate useless C preprocessor parentheses + * find/defs.h: Eliminate useless parentheses in #if. + * find/find.c (safely_chdir): Likewise. + * find/pred.c: Likewise. + * lib/buildcmd.c: Likewise. + * lib/fdleak.c: Likewise + * xargs/xargs.c: Likewise. + * find/parser.c: Likewise. + (ISDIGIT): Simplify, and avoid undefining isascii. + * cfg.mk (local-checks-to-skip): Remove sc_prohibit_cvs_keyword, + since the test produces no hits anyway. Explain why we avoid + sc_two_space_separator_in_usage. Enable the sc_useless_cpp_parens + check. + + Use stat-size macros in pred.c also. + * find/pred.c: Include stat-size. Eliminate definitions of + DEV_BSIZE, ST_BLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE macros which are + now in stat-size.h (yes, this is the second set of these macros + we've removed). + (file_sparseness): Use ST_NBLOCKS and ST_NBLOCKSIZE. + * cfg.mk (local-checks-to-skip): Don't skip + sc_prohibit_stat_st_blocks, because now we no loner access the + st_blocks field of struct stat, directly. + * lib/listfile.c (file_blocksize): Eliminate this function, it's + no longer needed. + * lib/listfile.h: Don't declare file_blocksize. + + Adopt the new gnulib module stat-size. + * lib/listfile.c: Include "stat-size.h". Delete the DEV_BSIZE, + ST_BLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE macros which are now in + stat-size.h. + * gnulib: Update to latest. + * import-gnulib.config (modules): Add stat-size. + +2011-06-05 James Youngman <jay@gnu.org> + + Don't include sys/param.h where we don't need it. + * xargs/xargs.c: Don't include sys/param.h, we don't use it. + + Don't include "stdio-safer.h" where it is not used. + * find/parser.c: Don't include stdio-safer.h, it's not used. + * lib/findutils-version.c: Likewise. + + Don't include <stddef.h> where it is not used. + * lib/dircallback.c: Don't include <stddef.h>, it's not used. + * lib/extendbuf.c: Likewise. + * lib/qmark.c: Likewise. + * lib/savedirinfo.c: Likewise. + + Fixes for empty-lines-at-EOF syntax check. + * .x-sc_bindtextdomain: Add newline at EOF. + * locate/Makefile.am: Remove empty trailing line at EOF. + * find/testsuite/sv-bug-32043.sh: Likewise. + * .x-sc_prohibit_empty_lines_at_EOF: Don't apply this check to + m4/order-good.bin m4/order-bad.bin + locate/testsuite/locate.gnu/locateddb.old.x86.xi + locate/testsuite/locate.gnu/locateddb.old.powerpc.xi. + + Avoid some false positives for the sc_prohibit_doubled_word check. + * .x-sc_prohibit_doubled_word: don't perform this check on + xargs/testsuite/xargs.sysv/iquotes.xo or ChangeLog. + Don't check .po files for doubled English words (because they're + not in English). + * find/tree.c: Modify some text to avoid saying "AND and", + which one of the syntax checks doesn't like. + (opt_expr): Likewise. + (consider_arm_swap): Likewise. + * README: Likewise. + + Include dirent.h uncontintionally (since gnulib provides it). + * find/pred.c: Include <dirent.h> unconditionally; gnulib provides + it. + * lib/savedirinfo.c: Likewise. + + Silence some false positives for sc_prohibit_always_true_header_tests. + * .x-sc_prohibit_always_true_header_tests: New file; exclude + build-aux/src-sniff.py from C inclusion tests, because it itself + contains examples of string the syntac checkers don't like + (because it's also a syntax checker). + ChangeLog: also exclude this because it frequently contains the + specifics of items added/removed, including examples of text which + are this syntax check looks for. + + Prefer "cannot" to "can not". + * locate/locatedb.5: Change "can not" to "cannot". + * locate/updatedb.1: Likewise. + + Update xargs error message. + * doc/find.texi (Error Messages From xargs): the message "can not + fit single argument within argument list size limit" is now + "argument list too long". + +2011-06-04 James Youngman <jay@gnu.org> + + Use the gnulib byteswap and uname modules. + * import-gnulib.config (modules): Add byteswap and uname. + * locate/word_io.c: Include byteswap.h. Don't #define bswap_32. + * find/util.c: sys/utsname.h no longer needs include guards since + gnulib always provides it. + * configure.ac: Don't check for sys/utsname. + + gnulib already defines O_CLOEXEC. + * lib/fdleak.c: gnulib's fcntl.h always defines O_CLOEXEC, so + don't define it here. + + Add internationalisation support to bigram but not regexprops. + * locate/bigram.c: Use libintl.h. + (main): Call bindtextdomain. + * .x-sc_bindtextdomain: Exempt lib/regexprops.c from needing to + use bindtextdomain. The output of regexprops is intended to be + determined entirely by the properties of the GNU regex + implementation. + + Update gnulib. + * gnulib: update to current head. + + Update the copyright year in C source files. + * find/defs.h: Update copyright year. + * find/find.c: Update copyright year. + * find/finddata.c: Update copyright year. + * find/ftsfind.c: Update copyright year. + * find/parser.c: Update copyright year. + * find/pred.c: Update copyright year. + * find/sharefile.c: Update copyright year. + * find/sharefile.h: Update copyright year. + * find/tree.c: Update copyright year. + * find/util.c: Update copyright year. + * lib/buildcmd.c: Update copyright year. + * lib/buildcmd.h: Update copyright year. + * lib/dircallback.c: Update copyright year. + * lib/dircallback.h: Update copyright year. + * lib/extendbuf.c: Update copyright year. + * lib/extendbuf.h: Update copyright year. + * lib/fdleak.c: Update copyright year. + * lib/fdleak.h: Update copyright year. + * lib/findutils-version.c: Update copyright year. + * lib/findutils-version.h: Update copyright year. + * lib/forcefindlib.c: Update copyright year. + * lib/listfile.c: Update copyright year. + * lib/listfile.h: Update copyright year. + * lib/nextelem.c: Update copyright year. + * lib/nextelem.h: Update copyright year. + * lib/printquoted.c: Update copyright year. + * lib/printquoted.h: Update copyright year. + * lib/qmark.c: Update copyright year. + * lib/regexprops.c: Update copyright year. + (copying): Update copyright year in the output file, too. + * lib/regextype.c: Update copyright year. + * lib/regextype.h: Update copyright year. + * lib/safe-atoi.c: Update copyright year. + * lib/safe-atoi.h: Update copyright year. + * lib/savedirinfo.c: Update copyright year. + * lib/savedirinfo.h: Update copyright year. + * lib/unused-result.h: Update copyright year. + * lib/waitpid.c: Update copyright year. + * locate/bigram.c: Update copyright year. + * locate/code.c: Update copyright year. + * locate/frcode.c: Update copyright year. + * locate/locate.c: Update copyright year. + * locate/locatedb.h: Update copyright year. + * locate/word_io.c: Update copyright year. + * xargs/xargs.c: Update copyright year. + + More copyright year updates. + * build-aux/check-testfiles.sh: Update copyright year. + * m4/noreturn.m4: Update copyright year. + * po/POTFILES.in: Update copyright year. + + Update the copyright year in test/documentation files, updatedb. + * build-aux/src-sniff.py: Update copyright year. + * doc/find-maint.texi: Update copyright year. + * doc/regexprops.texi: Update copyright year. + * find/testsuite/config/unix.exp: Update copyright year. + * locate/testsuite/config/unix.exp: Update copyright year. + * xargs/testsuite/config/unix.exp: Update copyright year. + * locate/updatedb.sh: Update copyright year. + +2011-06-03 James Youngman <jay@gnu.org> + + Warn about lack of birth time information only when it's true. + * find/pred.c (pred_newerXY): Issue a warning about the inability + to get the birth time of a file, only if we actually failed to + obtain the birth time of the file. This is a bugfix; there was a + misplaced semicolon after an if condition, so the immediately + succeeding block qould be executed unconditionally. + + Compiler warning fixes in find/pred.c. + * find/pred.c (mode_to_filetype): return const char*. + (impl_pred_exec): Make target and prefix variables const. + (impl_pred_exec): Separate 'target' variable (which sometimes + points to a string literal) from a separate 'buf' variable (which, + if set, is always the value returned by base_name, which needs to + be freed. + (checked_fwrite): Store the result of fwrite in a size_t (i.e. the + same type the function returns). + + Eliminate some compiler warnings in parser.c + * find/parser.c: Don't define the macros STRINGIFY and + PARSE_ACTION_NP. + (optionh_getfilecon): Make this function static + since it is not used elsewhere. + (optionl_getfilecon): Likewise. + (optionp_getfilecon): Likewise. + (found_parser): Likewise. + + Avoid code redundancy in lib/buildcmd.c. + * lib/buildcmd.c (bc_get_arg_max): Recheck val only if we might + have changed it (i.e. when ARG_MAX is defined). + + Eliminate some compiler warnings in find/parser.c. + * find/defs.h (struct parser_table): Make parser_name field const. + * find/parser.c: Remove redundant declaration of parse_print. + (insert_path_check): Change name of parameter pred_name to avoid + shadowing the function of that name. + (find_parser): Make search_name parameter const. + + Fix a compiler warning in lib/buildcmd.c + * lib/buildcmd.c: special_terminating_arg should be const. + + Fix compiler warnings in lib/fdleak.c + * lib/fdleak.c (visit_open_fds): Rename loop variable from i to j + to avoid shadowing. + (get_proc_max_fd): Fix definition (it's a void function, not a + traditional pre-ANSI function definition). + + Fix several small compiler warnings. + * lib/dircallback.c: Include dircallback.h. + * lib/dircallback.h: Correct declaration of run_in_dir. + * lib/listfile.c (file_blocksize): Use the otherwise-unused parameter. + * find/defs.h: Remove redundant declaration of variable options. + + Fix some compiler warnings in findutils-version.c. + * lib/findutils-version.c: include findutils-version.h. Make + version_string const. Don't #define N_, since we don't use it. + + Don't display a separate gnulib version. + * lib/findutils-version.c (display_findutils_version): Don't + display gnulib_version because it's no longer defined (because + there is no gnulib version separate from the findutils version, + now that gnulib is a submodule). + * import-gnulib.config: remove gnulib_version and destdir, they + are not needed any more. + * lib/Makefile.am (EXTRA_DIST): Don't distribute gnulib-version.h + or gnulib-version.c. + (BUILT_SOURCES): delete, there are no longer any built sources. + * lib/gnulib-version.h: Remove. + * locate/code.c: Don't include gnulib-version.h + * xargs/xargs.c: Don't include gnulib-version.h + +2011-06-01 James Youngman <jay@gnu.org> + + Take the last matching entry in /etc/mtab, not the first. + * find/fstype.c (file_system_type_uncached): Instead of taking the + first match, take the last match. This deals better with mtab + implementations in which there can be duplicate entries, for + example Linux-based systems in which /etc/mtab is a symlink to + /proc/mounts) can have duplicate entries in the file system list. + This happens most frequently for /. + * NEWS: Mention this change. + +2011-06-02 James Youngman <jay@gnu.org> + + Remove unnecessary header checks and include guards. + * configure.ac (AC_CHECK_HEADERS): Remove checks for header files + that gnulib either assumes are always present, or provides + itself. These include errno.h fcntl.h inttypes.h limits.h + locale.h stddef.h stdint.h stdlib.h string.h sys/types.h + unistd.h. + * lib/buildcmd.c: Remove include guard for limits.h. + * find/fstype.c: Remove include guard for sys/types.h. + * lib/savedirinfo.c: Likewise. + * find/find.c: Remove include guard for locale.h. + * find/ftsfind.c: Likewise. + +2011-06-01 James Youngman <jay@gnu.org> + + Better error handling for the result of set_fstype_devno. + * find/fstype.c (file_system_type_uncached): If set_fstype_devno + fails for an entry (that is, the device number stays at -1) don't + consider it a match. + (get_mounted_filesystems): Don't call set_fstype_devno since we + don't need to check the device number. + (get_mounted_devices): If set_fstype_devno fails for a file + system, don't return it. + +2011-05-31 James Youngman <jay@gnu.org> + + import-gnulib.sh now stops if it sees the old directory layout. + * import-gnulib.sh (check_old_gnulib_dir_layout): Check the + ./gnulib-git, ./gnulib/ and ./gl/ subdirectories to figure out if + we are using a current version of import-gnulib.sh with an old + directory layout. If so, print an explanation of the problem and + return false. + (main): stop if check_old_gnulib_dir_layout didn't like the + directory layout. + + Minor fixes in import-gnulib.sh. + * import-gnulib.sh (fixmsg): Fix punctuation in the commands given + for installing the changelog driver. + (usage): Explain what the -a option does. + (run_gnulib_tool): delete broken symlinks in the output directory, + not the gnulib source. + (check_merge_driver): fix the path to the ChangeLog merge driver + source. + +2011-05-30 James Youngman <jay@gnu.org> + + Manage gnulib as a git submodule. + * .gitmodules: New file; manage gnulib as a submodule. For future + compatibility with the "bootstrap" script, keep the gnulib + submodule in the gnulib directory (instead of the gnulib-git + directory as before). This means we need to find a new directory + for the output of gnulib-tool; we will use "gl" for that. + * import-gnulib.sh (do_checkout): Replace with do_submodule. + (do_submodule): initialise and configure the gnulib module. + (main): call do_submodule instead of do_checkout. Don't call + move_cvsdir, it's obsolete. + (move_cvsdir): delete + (run_gnulib_tool): change gnulib to ${gldest} (and set that variable). + (hack_gnulib_tool_output): generate gl/Makefile.am, not + gnulib/Makefile.am. + (refresh_output_files): Rename gnulib to gl. + (update_version_file): Check the state of the submodule. + * Makefile.am (SUBDIRS): Rename gnulib to gl. + (ACLOCAL_AMFLAGS): Likewise. + * lib/Makefile.am (INCLUDES): Likewise. + (LDADD): Likewise. + (findutils-check-smells): Rename gnulib-git to gnulib. + * find/Makefile.am (INCLUDES): Change gnulib to gl. + (LDADD): Likewise. + * xargs/Makefile.am (INCLUDES): Change gnulib to gl. + (LDADD): Likewise. + * locate/Makefile.am (INCLUDES): Rename gnulib to gl. + (LDADD): Likewise. + * .gitignore: Rename gnulib to gl. + * configure.ac (AC_CONFIG_MACRO_DIR): Change to gl/m4. + (AC_CONFIG_FILES): use gl/Makefile and gl/lib/Makefile instead of + gnulib/Makefile and gnulib/lib/Makefile. + * find/fstype.c: Include gnulib include files as "foo.h", not + "../gnulib/lib/foo.h", because the relative path is not needed and + in any case has changed. + +2011-05-29 James Youngman <jay@gnu.org> + + Savannah bug #31424: Revert Interix-specific change. + Gnulib will use suacomp for solving this problem, so findutils + will not need a workaround here. + * lib/arg-max.h: Delete this file. + * lib/Makefile.am (libfind_a_SOURCES): Remove arg-max.h. + * lib/buildcmd.c: Don't include arg-max.h. + * xargs/xargs.c: Likewise. + +2011-05-24 James Youngman <jay@gnu.org> + + Fix Savannah bug #33384. + * locate/updatedb.sh: Don't reset $PATH, because the hard-coded + value we were using isn't guaranteed to contain all the utilities + (for example rm, chmod and so on) we would like to use. + * NEWS: Mention this bugfix. + +2011-05-22 James Youngman <jay@gnu.org> + + Don't assume that "echo" lives in /bin. + * xargs/xargs.c (main): Change default_cmd from "/bin/echo" (which + may not be present on some POSIX systems) to "echo" (which must + exist somewhere on $PATH on any POSIX system). + * doc/find.texi (Multiple Files): document this. + * NEWS: Describe this change. + * xargs/testsuite/xargs.sysv/empty_def-t.xe: Change /bin/echo to + echo. + * xargs/testsuite/xargs.gnu/n2-s26-x-0.exp: Change -s26 to -s21 to + keep the expected test result the same. Rename the test to + reflect the updated arguments. + * xargs/testsuite/xargs.gnu/n2-s26-x-0.xo: Rename to + n2-s21-x-0.xo. + * xargs/testsuite/xargs.gnu/n2-s26-0.exp: Rename to n2-s21-0.exp, + update -s argument. + * xargs/testsuite/xargs.posix/s30.exp: Rename to s25.exp, update -s. + * xargs/testsuite/xargs.posix/s30.xo: Rename to s25.xo. + * xargs/testsuite/xargs.gnu/s30-0.exp: Rename to s25-0.exp, update + -s argument. + * xargs/testsuite/xargs.gnu/s30-0.xo: Rename to s25-0.xo. + * xargs/testsuite/xargs.sysv/s30-t.exp: Rename to s25-t.exp, + update -s. + * xargs/testsuite/xargs.sysv/s30-t.xo: Rename to s25-t.xo. + * xargs/testsuite/xargs.sysv/s30-t.xe: Rename to s25-t.xe, change + /bin/echo to just echo. + * xargs/testsuite/xargs.posix/s47.exp: Rename to s42.exp, update -s. + * xargs/testsuite/xargs.posix/s47.xo: Rename to s42.xo. + * xargs/testsuite/xargs.gnu/n3-s36-0.exp: Rename to n3-s31-0.exp, + update -s. + * xargs/testsuite/xargs.gnu/n3-s36-0.xo: Rename to n3-s31-0.xo. + * xargs/testsuite/xargs.gnu/s20-0.exp: Rename to s15-0.exp, update + -s. + * xargs/testsuite/xargs.gnu/s20-0.xo: Rename to s15-0.xo. + * xargs/testsuite/xargs.posix/n2-s26.exp: Rename to n2-s21.exp, + update -s. + * xargs/testsuite/xargs.posix/n2-s26.xo: Rename to n2-s21.xo. + * xargs/testsuite/xargs.gnu/s19-0.exp: Rename to s14-0.exp, update + -s. + * xargs/testsuite/xargs.gnu/s19-0.xo: Rename to s14-0.xo. + * xargs/testsuite/xargs.gnu/s19_2-0.exp: Rename to s14_2-0.exp, + update -s. + * xargs/testsuite/xargs.gnu/s19_2-0.xo: Rename to s14_2-0.xo. + * xargs/testsuite/xargs.posix/n3-s36.exp: Rename to n3-s31.exp, + update -s. + * xargs/testsuite/xargs.posix/n3-s36.xo: Rename to n3-s31.xo. + * xargs/testsuite/xargs.posix/s19.exp: Rename to s14.exp, update + -s. + * xargs/testsuite/xargs.posix/s19.xo: Rename to s14.xo. + * xargs/testsuite/xargs.posix/s19_2.exp: Rename to s14_2.exp, + update -s. + * xargs/testsuite/xargs.posix/s19_2.xo: Rename to s14_2.xo. + * xargs/testsuite/xargs.posix/s20.exp: Rename to s15.exp, + update -s. + * xargs/testsuite/xargs.posix/s20.xo: Rename to s15.xo. + * xargs/testsuite/Makefile.am (EXTRA_DIST_XO): Update names. + (EXTRA_DIST_EXP): Likewise. + +2011-05-17 James Youngman <jay@gnu.org> + + Document ftsfind/oldfind and configure options. + * doc/find.texi (Configuration): New section documenting the + important configuration options that can be passed to configure, + including --without-fts. + * find/find.1 (BINARIES): New section explaining why two binaries + are installed. + * find/oldfind.1: New manual page explaining how 'oldfind' is + different to 'find'. + * find/ftsfind.1: New manual page explaining how 'ftsfind' is + different to 'find'. + * find/Makefile.am (man_MANS): As well as find.1, install one of + ftsfind.1 or oldfind.1, depending on whether --without-fts was + specified to configure. + * NEWS: Mention this change. + +2011-05-15 James Youngman <jay@gnu.org> + + Add lib/fdleak.c to translatable files. + * po/POTFILES.in: Add lib/fdleak.c. + + Fix Savannah bug #18227 (-ls doesn't print device major/minor). + * lib/listfile.c (list_file): check HAVE_STRUCT_STAT_ST_RDEV + instead of HAVE_ST_RDEV, fixing this bug. HAVE_ST_RDEV was + defined by the obsolete Autoconf macro AC_STRUCT_ST_RDEV, but + findutils hasn't actually called AC_STRUCT_ST_RDEV since Apr 5 + 2000. + * NEWS: Mention this bugfix. + + #29698: Correct and clarify documentation of xargs -d option + * xargs/xargs.1: Update documentation for -d option to more + clearly distinguish the treatment of backslashes in the input and + the treatment of backslashes in the argument to -d. + * NEWS: Mention this bugfix. + + Implement xargs --process-slot-var. + * xargs/xargs.c (set_slot_var): New function; sets an environment + variable to the index of the entry in pids[] that represents the + relevant child process. This can be used in rudimentary load + distribution systems. + (slot_var_name): the name of the variable to use (selected by + --process-slot-var). + (enum LongOptionIdentifier): Unique identifiers for long options + with no short option equivalent (--process-slot-var is the first). + (longopts): Add --process-slot-var. + (add_proc): return the index within pids[] that we selected. + (main): Pass &option_index to getopt_long (option_index is a new + variable) in order to identify which long option was passed. + Handle --process-slot-var. + (prep_child_for_exec): Call set_slot_var. + (usage): Mention --process-slot-var. + * doc/find.texi (xargs options): Document --process-slot-var. + * xargs/xargs.1: Likewise. + * NEWS: Mention this change and that it was Savannah bug #29512. + + Describe xargs options in alphabetical order. + * xargs/xargs.1: Re-order the options to place them in + alphabetical order. Put --help and --version at the end. + * xargs/xargs.c (usage): Describe the options in alphabeitcal + order. + * NEWS: Mention this change. + + Fix bug #14386: updatedb relies on mktemp, which is not portable. + * locate/updatedb.sh (make_tempdir): new function, works around + the possible absence of mktemp. We now create the file list and + the bigrams file in a temporary directory. Also add some quoting + for a few shell variables. Update the copyright years. + * locate/testsuite/locate.gnu/oldformat.exp: Add a test case which + uses the old database format, in order to exercise our mktemp + replacement. + * locate/testsuite/Makefile.am (EXTRA_DIST_EXP): Ship this new + file. + * locate/testsuite/locate.gnu/oldformat.xo: The expected output + for the new test. + * locate/testsuite/Makefile.am (EXTRA_DIST_XO): Ship this new + file. + * NEWS: Mention this bugfix. + +2011-05-14 James Youngman <jay@gnu.org> + + Fix bug #32043 (fnmatch should treat unquoted [ literally). + * import-gnulib.config (gnulib_version): Update gnulib to the + version which includes the fnmatch fix (a backport of glibc bug + #12378). This fixes our bug too. + * find/testsuite/sv-bug-32043.sh: New (non-DejaGnu) test script. + Tests Savannah bug #32043 (POSIX requires that an unquoted [ + should be matched literally). + * find/testsuite/Makefile.am (TESTS): Add sv-bug-32043.sh. + (EXTRA_DIST): Distribute sv-bug-32043.sh. + * NEWS: Mention this bugfix. + +2011-05-11 James Youngman <jay@gnu.org> + + Move on from 4.5.10, to 4.5.11-git. + * NEWS, configure.ac: update version number. + + Prepare for release of findutils-4.5.10. + * NEWS: Update version number to 4.5.10 to prepare for that + release. Add a release date (2011-05-11). + + * configure.ac: Also update version number. + * po/*.po, po/findutils.pot: make dist changes these. + + Savannah bug #30608 (Automagic dependency on selinux) is fixed. + * NEWS: Mention that Savannah bug #30608 (Automagic dependency on + selinux) is fixed. The gnulib update on 2011-04-02 will have + included gnulib change 83e52ee5a420f8b552745a72e5869001b0f6da60 + which fixes this problem. The configure script now provides a + --without-selinux option. + + Update Estonian translation. + * po/et.po: Update from the Translation Project. + +2010-05-24 Kamil Dudka <kdudka@redhat.com> + + Fix Savannah bug #29949, -execdir does not change working directory. + * find/pred.c (record_exec_dir): Do not throw the execdir when not + working in the cumulative mode. + * find/testsuite/find.gnu/execdir-multiple.exp: Add a test-case for + the bug #29949. + * NEWS: Mention this bugfix. + +2011-04-02 James Youngman <jay@gnu.org> + + Change "can not" to "cannot". + * lib/buildcmd.c (bc_push_arg): "can not" -> "cannot" in message. + * find/tree.c: Likewise in a comment. + + Update Danish translation. + * po/da.po: Likewise. + + Update Slovenian, German, Estonian, French, Japanese translations. + * po/sl.po: Updated from the Translation Project. + * po/de.po: Likewise. + * po/et.po: Likewise. + * po/fr.po: Likewise. + * po/ja.po: Likewise. + + Update to the current version of gnulib. + * import-gnulib.config (gnulib_version): Update to the current + version of gnulib. + * configure.ac: Update to gettext 0.18.1. + * po/Rules-quot: Update this file from gettext. + + Use parse-datetime instead of the obsolete module getdate. + * import-gnulib.config (modules): Import the gnulib module + parse-datetime instead of the obsolete module getdate. + * find/parser.c: Include parse-datetime.h instead of getdate.h. + * doc/find.texi: Include parse-datetime.texi instead of + getdate.texi. + * doc/Makefile.am (find_TEXINFOS): Use parse-datetime.texi instead + of getdate.texi. + +2010-10-23 James Youngman <jay@gnu.org> + + Savannah bug #31424: Work around Interix bug in _SC_ARG_MAX, + in which execve will fail with ENOMEM if we use a command line + somewhere between ARG_MAX and _SC_ARG_MAX. + * lib/arg-max.h: New file: undefine _SC_ARG_MAX if we cannot rely + on the value that sysconf produces. + * lib/Makefile.am (libfind_a_SOURCES): Add arg-max.h. + * lib/buildcmd.c: #include arg-max.h. + * xargs/xargs.c: Likewise. + +2010-10-21 James Youngman <jay@gnu.org> + + Fix Savannah bug #31359: FAIL: test-strstr on alpha. + * import-gnulib.config (gnulib_version): Update the version of + gnulib. + * NEWS: Mention this bugfix. + +2010-10-11 James Youngman <jay@gnu.org> + + * doc/find.texi (Further Reading on Security): Give some + references to further reading on security. + * NEWS: Mention this change. + +2010-08-16 James Youngman <jay@gnu.org> + + Fix Savannah bug #30777. + * find/parser.c (insert_exec_ok): Fail if {} appears in an + argument between -exec ... \+ but it's not the whole argument + (that is, reject "FOO{}"). Previously the FOO prefix was accepted + but ignored, which is probably POSIX-incompliant and certainly + surprising. + * find/testsuite/find.posix/sv-bug-30777.exp: New test case for + Savannah bug #30777. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + find.posix/sv-bug-30777.exp. + +2010-08-15 James Youngman <jay@gnu.org> + + Fix Savannah bug #30180, wrong error message for -size b300 + * find/parser.c (parse_size): Don't print a suffix in the error + message if no suffix was specified. + * NEWS: Mention this change. + + * po/da.po: Update Danish translation. + +2010-05-11 John Gilmore <gnu@xargs.toad.com> + + Fix bug arising when we receive SIGUSR2. + * xargs/xargs.c (xargs_do_exec): Don't assume that proc_max won't + decrease while we are waiting for a process to exit. This happens + if we receive SIGUSR2. + +2010-05-09 James Youngman <jay@gnu.org> + + * xargs/xargs.1: Refer to signal(7) rather than signal(2). + +2010-05-08 John Gilmore <gnu@xargs.toad.com> + + Control xargs parallelism with SIGUSR1/SIGUSR2. + * xargs/xargs.c: Increase parallelism in mid-run with SIGUSR1; + decrease it with SIGUSR2. + * doc/find.texi, xargs/xargs.1, NEWS: Document SIGUSR1/2. + +2010-05-09 Sergei Golovan <sgolovan@gmail.com> (tiny change) + + Fix Savannah bug #29828, test suite deadlock on FreeBSD. + * find/testsuite/find.gnu/sv-bug-24169.exp: Read find output until + eof before calling wait, in order to avoid a deadlock on FreeBSD. + +2010-05-08 Andreas Metzler <gnu@downhill.at.eu.org> + + Fix a typo. Use "\-" in nroff, rather than a naked "-". + * find/parser.c (check_option_combinations): Fix typo + "atomatically". + * find/find.1 (-name): protect nroff hyphens with backslashes. + * locate/locatedb.5: Likewise. + +2010-05-07 James Youngman <jay@gnu.org> + + * AUTHORS: Add Kamil Dudka. + +2010-05-07 Kamil Dudka <kdudka@redhat.com> + + * lib/dircallback.c (run_in_dir): Make sure that if the callback + doesn't get run, the return value is nonzero. Make sure that if + the directory save/restore fails, we don't overwrite errno with a + random value (and hence report some unrelated and nonexistent + error, instead of the real problem). Restore the previous current + directory. + +2010-05-04 James Youngman <jay@gnu.org> + + Bugfix: make sure make distdir works in VPATH directly after configure + * locate/Makefile.am (EXTRA_DIST): Add dblocation.texi. + (dblocation.texi): Always rebuild, but don't replace the existing + version if the content would not change. + +2010-04-30 James Youngman <jay@gnu.org> + + Update Finnish and Italian translations. + * po/fi.po: Updated Finnish translation. + * po/it.po: Updated Italian translation. + * NEWS: Mention these updates. + + Move on from 4.5.9. + * NEWS: Bump the version number from 4.5.9 to 4.5.10-git. + * configure.ac: Likewise. + +2010-04-29 James Youngman <jay@gnu.org> + + Prepare for the release of findutils version 4.5.9. + * NEWS: Change the version number to 4.5.9. + * configure.ac: Likewise. + + Preserve locate/dblocation.texi during 'make clean'. + * locate/Makefile.am (DISTCLEANFILES): Clean dblocation.texi for + 'make distclean', but not 'make clean'. + +2010-04-18 James Youngman <jay@gnu.org> + + Remove redundant declarations. + * locate/frcode.c: Don't declare xmalloc, include xalloc.h instead. + * locate/code.c: Don't declare program_name, we already included + progname.h. + + Remove support for compilers lacking prototypes. + * find/defs.h: Don't define or use the PARAMS macro. + * xargs/xargs.c: Likewise. + * locate/locatedb.h: Likewise. + * locate/frcode.c: Likewise. + * lib/buildcmd.c: Likewise. + * find/tree.c: Likewise. + * find/pred.c: Likewise. + * find/parser.c: Likewise. + * find/fstype.c: Likewise. + * find/find.c: Likewise. + +2010-04-21 James Youngman <jay@gnu.org> + + Update Chinese (simplified) translation. + * po/zh_CN.po: Updated from the Translation Project. + * NEWS: Mention this change. + +2010-04-18 James Youngman <jay@gnu.org> + + Fix Savannah bug #29593: Make import-gnulib.sh work under a POSIX shell. + * import-gnulib.sh: Remove bash-specific '[[...]]' tests; instead + use '[...]'. + * NEWS: Mention this bugfix. + +2010-04-17 James Youngman <jay@gnu.org> + + Remove obsolete module strpbrk. + * import-gnulib.config (modules): Remove strpbrk. + + * locate/Makefile.am (locate_TEXINFOS): Add dblocation.texi. + +2010-04-13 James Youngman <jay@gnu.org> + + Correct some test file names. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): + find.gnu/sv-bug-25359-execdir.exp should in fact be + find.gnu/sv-bug-27563-execdir.exp and + find.posix/sv-bug-25359-exec.exp should be + find.posix/sv-bug-27563-exec.exp. + + * .x-sc_prohibit_test_minus_ao: Condense the file (since the + entries are regular expressions anyway). + + * .x-sc_prohibit_empty_lines_at_EOF: New file; exceptions for the + sc_prohibit_empty_lines_at_EOF syntax check. + +2010-04-11 James Youngman <jay@gnu.org> + + Make sure we don't open a file on a standard fd (that is, 0/1/2). + * lib/fdleak.c: Include fcntl--.h to turn calls to open into calls + to open_safer. + * find/find.c: Likewise. + + After-the-fact change to NEWS for 4.5.8: fixed bug 27974. + * NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use + gnulib's xreadlinkat support), though the NEWS file in that + release omitted to say so. + + Fix Savannah bug #29511: fails to build on kfreebsd-* + * lib/fdleak.c (get_max_fd): Don't use RLIM_SAVED_MAX or + RLIM_SAVED_CUR. Not only are they non-portable, they aren't + useful. + * NEWS: Mention this bugfix. + + Remove some unused or dead code. + * find/util.c (hook_fstatat): This has been disabled and unused + for a long time, delete it. + * find/find.c (process_dir): Remove some unused debug code. + * find/tree.c (predlist_insert): Remove some dead code. + * lib/fdleak.c (complain_about_leaky_fds): Remove some unused + debug code. + + Add a test case for Savannah bug 27563 (-L breaks -execdir). + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + find.gnu/sv-bug-27563-execdir.exp and + find.posix/sv-bug-27563-exec.exp. + (EXTRA_DIST_XO): Add find.gnu/sv-bug-27563-execdir.xo and + find.posix/sv-bug-27563-exec.xo. + * find/testsuite/find.gnu/sv-bug-27563-execdir.exp: New test. + * find/testsuite/find.posix/sv-bug-27563-exec.exp: New test. + * find/testsuite/find.gnu/sv-bug-27563-execdir.xo: Expected output. + * find/testsuite/find.posix/sv-bug-27563-exec.xo: Expected output. + + Fix Savannah bug #27563, -L breaks -execdir. + * find/pred.c (initialise_wd_for_exec): New function, factoring + out part of the body of record_exec_dir. + (record_exec_dir): If state.rel_pathname contains a /, extract the + directory part and initialise execp->wd_for_exec to point at that + directory. + (impl_pred_exec): Rename new_impl_pred_exec to impl_pred_exec. + Drop the prefix and pfxlen parameters. Compute the base name of + the target and pass that to the bc_push_arg function instead of + state.rel_pathname. Deal with state.rel_pathname being an + absolute path (e.g. find / -execdir...). Introduce a new + variable, result, allowing us to free the buffer used for the base + name in the return path. + (pred_exec): Don't pass the prefix and the prefix length any more. + (pred_execdir): Likewise. + (pred_ok): Likewise. + (pred_okdir): Likewise. + +2010-04-10 James Youngman <jay@gnu.org> + + Fix Savannah bug #19593, -execdir .... {} + has suboptimal performance + * find/ftsfind.c (consider_visiting): Don't call + complete_pending_execdirs for every file we visit. + (find): Instead, call complete_pending_execdirs every time we + see a file which isn't at the same nesting level as the previous + file we saw. This is an improvement but not optimal (since + descending into a subdirectory will cause us to issue an exec + before we've finished with the current directory). + * NEWS: Mention this change. + + Exec predicates now store which directory they want to run in. + * lib/dircallback.c (run_in_dirfd): New name for old run_in_dir + function. + (run_in_dir): Like the old function of the same name, but now + takes an argument const struct saved_cwd *. + * lib/dircallback.h: Update declarations of run_in_dirfd and + run_in_dir. + * find/util.c: Include dircallback.h, xalloc.h, save-cwd.h. + (do_complete_pending_execdirs): Remove dir_fd parameter, since the + per-predicate data structures now indicate what directory they + need to be run in. Instead of calling bc_do_exec directly, use a + callback 'exec_cb' that uses run_in_dir (which now takes a + saved_cwd* parameter instead of a file descriptor). + (do_exec): Called by do_complete_pending_execdirs, and simply uses + run_in_dir to call exec_cb, restoring the working directory + afterward. + (record_initial_cwd): New function, initialises the global + variable initial_wd. + (cleanup_initial_cwd): New function, cleans up the global variable + initial_wd. + (cleanup): Call cleanup_initial_cwd. + (get_start_dirfd): Remove. + (is_exec_in_local_dir): New function; true for predicates -execdir + and -okdir. + * find/pred.c: Include cloexec.h and save-cwd.h. + (record_exec_dir): New function, sets the value of + execp->wd_for_exec if needed. + (new_impl_pred_exec): Remove the obsolete dir_fd parameter. Call + record_exec_dir. + (pred_exec): Don't pass the dir_fd parameter. + (pred_execdir): Likewise. + (pred_ok): Likewise. + (pred_okdir): Likewise. + (can_access): Call run_in_dirfd rather than run_in_dir (the + function was renamed). + (prep_child_for_exec): Remove dir_fd parameter; don't fchdir to + that. Call restore_cwd instead (passing a saved_cwd* parameter + which replaced dir_fd). + (launch): Remove references to execp->use_current_dir. + (launch): Change references to execp->dir_fd to execp->wd_for_exec. + * find/parser.c: Correct indentiation of declaration of + insert_exec_ok and remove the obsolete dir_fd parameter. + (parse_exec): Don't pass the dir_fd parameter to insert_exec_ok. + (parse_execdir): Likewise. + (parse_ok): Likewise. + (parse_okdir): Likewise. + (insert_exec_ok): Remove obsolete dir_fd paramter. Initialise + execp->wd_for_exec, either to NULL (for -*dir) or to the + initial_wd. + * find/ftsfind.c: Remove get_current_dirfd. Remove + complete_execdirs_cb. + (consider_visiting): Call complete_pending_execdirs directly. + (main): Call record_initial_cwd to record the initial working + directory, early on. Don't initialise starting_dir or + starting_desc, they have been removed. + * find/finddata.c: Include save-cwd.h. Remove starting_dir and + starting_desc. Add new global variable initial_wd. It is a struct + saved_wd* and represents find's initial working directory. + * find/find.c: Include save-cwd.h. + (main): Call record_initial_cwd in order to initialise the + global variable initial_wd Don't set starting_desc and + starting_dir, since those variables have been removed. + (safely_chdir): Don't pass an fd to complete_pending_execdirs. + (chdir_back): Remove the safety check (since we are using fchdir + and in any case no longer have all the data that the existing + wd_sanity_check function wants). + (do_process_top_dir): Don't pass an fd to + complete_pending_execdirs. + (process_dir): Likewise. + * find/defs.h (struct exec_val): Remove use_current_dir and + dir_fd. Replace with wd_for_exec, which is a struct saved_wd*. + (get_start_dirfd): Remove prototype. + (get_current_dirfd): Remove prototype. + (complete_pending_execdirs): No longer takes dir_fd parameter. + (record_initial_cwd): Add prototype. + (is_exec_in_local_dir): Add prototype. + (options): Declare. + (initial_wd): Add declaration. It is a struct saved_wd* and + represents find's initial working directory. + (starting_dir): Remove declaration of global variable. + (starting_desc): Remove declaration of global variable. + * import-gnulib.config (modules): Import module save-cwd. + +2010-04-10 James Youngman <jay@gnu.org> + + Add a test which checks $CWD for find -execdir {} +/; + * find/testsuite/find.gnu/execdir-multiple.exp: New test; verifies + that for -execdir +, all the execs occur with the correct working + directory. + * find/testsuite/find.gnu/execdir-multiple.xo: Expected output for + this test. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test. + (EXTRA_DIST_XO): Add the expected output file. + * find/testsuite/config/unix.exp (mkdir): Create proc "mkdir" + which creates a directory. + * find/testsuite/find.gnu/execdir-pwd1.exp: New test. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + execdir-pwd1.exp. + +2010-04-11 James Youngman <jay@gnu.org> + + Fix syntax checks problems for check sc_unmarked_diagnostics. + * find/tree.c (get_pred_cost): Clarify an error message and mark + it for translation. + + Fix false positives for syntax check sc_prohibit_test_minus_ao. + * .x-sc_prohibit_test_minus_ao: Add all the DejaGnu scripts to the + list of exceptions to the 'test C1 -a C2' syntax check, since they + are not actually shell scripts. + + Remove trailing blank lines. + * .x-sc_prohibit_empty_lines_at_EOF: Add list of exceptions to the + no-blank-lines-at-EOF syntax check. + * doc/regexprops.texi: Remove empty lines at the end of the file. + * find/finddata.c: Likewise. + * find/fstype.c: Likewise. + * find/testsuite/excuses.txt: Likewise. + * find/testsuite/find.gnu/access.exp: Likewise. + * find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise. + * find/testsuite/find.gnu/posix-perminvalid.exp: Likewise. + * find/testsuite/find.gnu/samefile-missing.exp: Likewise. + * find/testsuite/find.gnu/samefile-p-brokenlink.exp: Likewise. + * find/testsuite/find.gnu/sv-bug-17490.exp: Likewise. + * find/testsuite/find.gnu/sv-bug-18222.exp: Likewise. + * find/testsuite/find.posix/bracket-depth.exp: Likewise. + * find/testsuite/find.posix/empty-parens.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions1.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions2.exp: Likewise. + * find/testsuite/find.posix/files-not-expressions3.exp: Likewise. + * find/testsuite/find.posix/group-empty.exp: Likewise. + * find/testsuite/find.posix/user-empty.exp: Likewise. + * find/testsuite/find.posix/user-missing.exp: Likewise. + * lib/extendbuf.c: Likewise. + * lib/fdleak.c: Likewise. + * lib/fdleak.h: Likewise. + * lib/findutils-version.h: Likewise. + * lib/gnulib-version.h: Likewise. + * lib/printquoted.c: Likewise. + * lib/regextype.c: Likewise. + * lib/safe-atoi.c: Likewise. + * locate/testsuite/config/unix.exp: Likewise. + * locate/testsuite/locate.gnu/exists1.exp: Likewise. + * locate/testsuite/locate.gnu/exists2.exp: Likewise. + * locate/testsuite/locate.gnu/exists3.exp: Likewise. + * locate/testsuite/locate.gnu/ignore_case1.exp: Likewise. + * locate/testsuite/locate.gnu/ignore_case2.exp: Likewise. + * locate/testsuite/locate.gnu/ignore_case3.exp: Likewise. + * locate/testsuite/locate.gnu/notexists1.exp: Likewise. + * locate/testsuite/locate.gnu/notexists2.exp: Likewise. + * locate/testsuite/locate.gnu/notexists3.exp: Likewise. + * locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise. + * m4/Makefile.am: Likewise. + * m4/nullsort.m4: Likewise. + * xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise. + * xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise. + + After-the-fact change to NEWS for 4.5.8: fixed bug 27221. + * NEWS: Mention that release 4.5.8 also fixed bug #27221 + (symlink_loop check broken by FTS_CWDFD), though the NEWS file in + that release omitted to say so. + + After-the-fact change to NEWS for 4.5.8: fixed bug 27974. + * NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use + gnulib's xreadlinkat support), though the NEWS file in that + release omitted to say so. + +2010-04-10 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Update to current gnulib + head. + +2010-04-09 James Youngman <jay@gnu.org> + + * find/parser.c (parse_samefile): Use open_cloexec to open the + reference file, so that we don't leak a file descriptor. + +2010-04-09 Roberto Reale <rreale@iol.it> (tiny change) + + * find/parser.c (parse_samefile): Since collect_arg_stat_info + increments *arg_ptr, argv[*arg_ptr] is often NULL. Use filename + instead, as that's the variable in which we store the name of our + file. The purpose of the fd was only to attempt to keep the inode + number stable on systems that don't really have inode numbers, so + this change should have no functional effect on POSIX systems. + +2010-04-08 James Youngman <jay@gnu.org> + + Adopt the use of the gnulib module readlink. + * import-gnulib.config (modules): Add readlink. + + Adopt the use of the gnulib module isblank. + (modules): Add isblank. + + Adopt the use of the gnulib module faccessat. + * import-gnulib.config (modules): Add faccessat. + * find/pred.c (struct access_check_args): Delete. + (access_callback): Delete. + (can_access): Delete. + (pred_executable): Use faccessat. + (pred_readable): Likewise. + (pred_writable): Likewise. + + Adopt (explicitly) the use of the gnulib module dirent-safer. + * import-gnulib.config (modules): Add dirent-safer; we were + previously transitively importing this module, but we are now + importing it directly. + * lib/savedirinfo.c: Include opendir-safer.h. + (xsavedir): Call opendir_safer instead of opendir. + + Adopt the use of the gnulib module d-type. + * import-gnulib.config (modules): Import the d-type module. + * configure.ac: Remove old struct dirent.d_type detection logic + (since we now use the gnulib macro from the d-type module for + this). + * find/parser.c (parse_version): Use HAVE_STRUCT_DIRENT_D_TYPE + (since the d-ino module still defines it) but remove references to + the macro USE_STRUCT_DIRENT_D_TYPE, since it's not defined and not + needed. + * lib/savedirinfo.c: Use HAVE_STRUCT_DIRENT_D_TYPE but ignore + USE_STRUCT_DIRENT_D_TYPE. + (xsavedir): Unconditionally initialise + internal[result->size].type_info so that we don't have untested + code (HAVE_STRUCT_DIRENT_D_TYPE is defined on my system). + + Move on from 4.5.8. + * configure.ac: Bump the version number to 4.5.9-git. + * NEWS: Likewise. + +2010-04-07 James Youngman <jay@gnu.org> + + Prepare to release findutils-4.5.8. + * configure.ac: Update version number in AC_INIT. + * NEWS: Update version number and release date. + + Depend on gnulib modules appropriate to features we already use. + * import-gnulib.config (modules): Add c-casestr, errno, fdopendir, + fflush, getdelim, gettimeofday, locale, modf, perror, snprintf, + stat, stdarg, stddef, stdio, stdlib, string, strpbrk, sys_time, + sys_wait. + Also add comments about other modules we may also want to use + which would require other code changes (for example dirent-safer). + * find/Makefile.am (LDADD): Add $(LIB_EACCESS) $(LIB_SELINUX) + $(MODF_LIBM) which are needed by gnulib modules we now depend on. + + More stat/xstat cleanup. + * find/parser.c (estimate_fstype_success_rate): Change the name of + the variable "dir" to "the_root_dir" to emphasise that it doesn't + matter that we're calling stat rather than options.xstat. + * find/ftsfind.c (symlink_loop): Call options.xstat instead of + stat/lstat, because options.xstat takes account of + state.cwd_dir_fd. + + Fix Savannah bug 29460, -printf %Y fails in $CWD-dependent way + * find/pred.c (do_fprintf): Use optionl_stat and optionp_stat + instead of stat and lstat, because the first two functions are + aware of state.cwd_dir_fd. + * find/testsuite/find.gnu/printf-nonlocal-symlink.exp: A new test + case for this bug. + * find/testsuite/find.gnu/printf-nonlocal-symlink.xo: Expected + output for this test. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test + case. + (EXTRA_DIST_XO): Add the expected-output file. + * NEWS: Mention this fix. + + * lib/strspn.c: Delete this unused file. + + Update the maintenance manual. + * doc/find-maint.texi: Update the maintenance manual to take into + account the fact that we uniformly use git rather than CVS. Point + out the new version tag format. Mention "make coverage". + README-CVS is now called README-hacking. Update the URL for the + Translation Project. + + Eliminate some obsolete code. + * locate/locate.c (search_one_database): Remove obsolete code + (alternative size for procdata.pathsize). + * lib/buildcmd.c (get_line_max): Remove obsolete function. + + Remove obsolete code from savedirinfo.c. + * lib/savedirinfo.c (new_savedirinfo): Rename new_savedirinfo to + savedirinfo. + (old_savedirinfo): Remove obsolete function body. + + Support extendbuf buffers larger than SIZE_MAX/2. + * lib/extendbuf.c (xextendbuf): New function; extends the buffer, + but calls xalloc_die on failure. On the the other hand, extendbuf + returns NULL on failure. + (decide_size): If wanted>SIZE_MAX/2, return wanted. This means + that for very large buffers, performance on repeated extension + degrades from linear to quadratic (instead of just failing at that + point, as before). + * lib/savedirinfo.c (xsavedir): Use xextendbuf rather than + extendbuf, now that there is a difference in semantics. + * find/fstype.c (get_mounted_filesystems): If extendbuf returns + NULL, fail (by returning NULL ourselves). + (get_mounted_devices): Likewise. + + * po/vi.po: Update Vietnamese translation. + * NEWS: Mention this change. + +2010-04-05 James Youngman <jay@gnu.org> + + Use set_program_name in regexprops. + * lib/regexprops.c: Include "progname.h". Update function + defintions to have a newline before the function name (to comply + with the GNU coding standard). Use set_program_name. + +2010-04-06 James Youngman <jay@gnu.org> + + Fix several merge errors. + * find/defs.h (struct state): Correct type of + already_issued_stat_error_msg from boolean to bool. + * find/util.c (report_file_err): Likewise with parameter + is_target_file. + * find/pred.c: Include "areadlink.h". + (do_fprintf): nonfatal_file_error should be + nonfatal_target_file_error. + (match_lname): Likewise. + + Update some translations. + * po/cs.po: Update Czech translation. + * po/nl.po: Update Dutch translation. + * po/pl.po: Update Polish translation. + * po/ru.po: Update Russian translation. + + * import-gnulib.config (modules): Use the getopt-gnu module from + gnulib rather than the (obsolete) getopt module. + + Remove form-feeds. + * find/find.c: Remove form-feed characters. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * locate/locate.c: Likewise. + * xargs/xargs.c: Likewise. + +2010-04-05 James Youngman <jay@gnu.org> + + Use bool instead of the previous typedef boolean. + * find/defs.h: Don't create typedef "boolean"; use the standard + type bool. Update other declarations accordingly. + * find/find.c: Update declarations and function definitions to use + bool. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * locate/locate.c: Likewise. + * xargs/xargs.c: Likewise. + + Make use of gnulib's areadlinkat. + * lib/listfile.c: #include "areadlink.h" but not "dircallback.h", + since we no longer need to use get_link_name_at. + Don't include xalloc.h, since we don't need it. + (get_link_name_at): Delete. + (get_link_name_cb): Delete. + (get_link_name): Delete. + * lib/listfile.h: Remove declaration of get_link_name_at. + * find/pred.c (match_lname): Use areadlinkat instead of + get_link_name_at. + + Use bool instead of the previous typedef boolean. + * find/defs.h: Don't create typedef "boolean"; use the standard + type bool. Update other declarations accordingly. + * find/find.c: Update declarations and function definitions to use + bool. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * locate/locate.c: Likewise. + * xargs/xargs.c: Likewise. + + Don't issue an error message twice for the same target file. + * find/defs.h (struct state): New member, + already_issued_stat_error_msg, used to de-duplicate error + messages. If it is true, we already issued an error message for + the current target file. + Declare fatal_target_file_error, fatal_nontarget_file_error, + nonfatal_target_file_error, nonfatal_nontarget_file_error. + Between them, they replace fatal_file_error and + nonfatal_file_error. The *target_file_error versions are + de-duplicated and the nontarget_file_error_versions are not. + * find/util.c (nonfatal_nontarget_file_error): Implement. + (fatal_nontarget_file_error): Implement. + (nonfatal_target_file_error): Implement. + (fatal_target_file_error): Implement. + (fatal_file_error): Remove. + (nonfatal_file_error): Remove. + (error_severity): Define error_severity (moved from ftsfind.c) + (get_statinfo): Call nonfatal_target_file_error in order to avoid + a duplicate message. ALso call error_severity after a different + call to error to preserve the constraint that we exit with a + nonzero status if we issue a diagnostic. + (cleanup): Call nonfatal_nontarget_file_error instead of + nonfatal_file_error. + * find/tree.c (build_expression_tree): Initialise + state.already_issued_stat_error_msg. + * find/find.c (main): Initialise state.already_issued_stat_error_msg. + (wd_sanity_check): Call fatal_target_file_error instead of + fatal_file_error. + (chdir_back): Call fatal_nontarget_file_error instead of + fatal_file_error. + (process_path): Initialise state.already_issued_stat_error_msg. + * find/ftsfind.c (consider_visiting): Call + nonfatal_target_file_error instead of calling error directly. + (find): Call error_severity to ensure exit status is nonzero after + a call to error. + (main): Initialise state.already_issued_stat_error_msg. + (error_severity): Move to util.c. + * find/parser.c (collect_arg_stat_info): Call + fatal_target_file_error instead of fatal_file_error. + (parse_newerXY): Likewise. + (parse_samefile): Likewise. + (parse_samefile): Likewise. + (open_output_file): Call fatal_nontarget_file_error instead of + fatal_file_error. + * find/pred.c (checked_fprintf): Likewise. + (checked_print_quoted): Likewise. + (checked_fwrite): Likewise. + (checked_fflush): Likewise. + * find/sharefile.c (entry_free): Likewise. + +2010-04-04 Martin von Gagern <Martin.vGagern@gmx.net> + + Fix Savannah bug #27213: avoid failed assertions for + non-executable directories. + (consider_visiting): Continue (after issuing an error message) + even if ent->fts_info == FTS_NS. + * find/util.c (get_statinfo): If we cannot stat the file, issue a + diagnostic, but continue anyway. + * find/ftsfind.c (consider_visiting): Don't assert-fail if + ent->fts_info == FTS_NSOK. Don't assert-fail if state.type is + nonzero. + +2010-04-04 James Youngman <jay@gnu.org> + + Fix Savannah bug #29435: fd_is_cloexec does not work on Fedora + buildhosts. + Fix open_cloexec on hosts which ignore O_CLOEXEC (i.e. old kernels). + * lib/fdleak.c (o_cloexec_works): New function, detects whether + the open flag O_CLOEXEC has any effect. + (open_cloexec): Call o_cloexec_works, just once, to find out + whether O_CLOEXEC is effective. If not, set the close-on-exec + flag on fds by calling set_cloexec_flag. + * NEWS: Mention this bugfix. + + Use bool instead of the previous typedef boolean. + * find/defs.h: Don't create typedef "boolean"; use the standard + type bool. Update other declarations accordingly. + * find/find.c: Update declarations and function definitions to use + bool. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * locate/locate.c: Likewise. + * xargs/xargs.c: Likewise. + +2010-04-05 Jim Meyering <meyering@redhat.com> + + frcode: avoid link failure due to multiple program_name definition + * locate/frcode.c: Include "progname.h". + (program_name): Remove two declarations. + Now the definition comes from gnulib. + +2010-04-04 James Youngman <jay@gnu.org> + + Don't return int to represent a boolean value. + * find/defs.h: fd_leak_check_is_enabled should return boolean, not + int. Likewise following_links and digest_mode. + * lib/buildcmd.h: Likewise for bc_args_exceed_testing_limit. + Also #include <stdbool.h>. + * find/util.c (fd_leak_check_is_enabled): Now returns boolean. + * find/util.c (following_links): Likewise. + * find/util.c (digest_mode): Likewise. + * lib/buildcmd.c (bc_args_exceed_testing_limit): Likewise. + * find/find.c (get_current_dirfd): Indent definition correctly. + * find/util.c (get_start_dirfd): Likewise. + + Fix Savannah bug #29435: fd_is_cloexec does not work on Fedora + buildhosts. + Fix open_cloexec on hosts which ignore O_CLOEXEC (i.e. old kernels). + * lib/fdleak.c (o_cloexec_works): New function, detects whether + the open flag O_CLOEXEC has any effect. + (open_cloexec): Call o_cloexec_works, just once, to find out + whether O_CLOEXEC is effective. If not, set the close-on-exec + flag on fds by calling set_cloexec_flag. + * NEWS: Mention this bugfix. + +2010-04-03 James Youngman <jay@gnu.org> + + Move on from 4.5.7. + * configure.ac: Update version number again, to 4.5.8-git. + * NEWS: Likewise. + + Prepare for release of findutils-4.5.7. + * configure.ac: Update version number. + * NEWS: Mention the translation changes. Update version number. + + Accelerate find/testsuite/find.posix/exec-nogaps.exp. + * find/testsuite/config/unix.exp (optimisation_levels_to_test): + New function, decides which optimisation levels we shuld run find + at for the current test. Set $OPTIMISATION_LEVELS to control + this. + (find_start): Call optimisation_levels_to_test to determine which + optimisation levels to run find at. + * find/testsuite/find.posix/exec-nogaps.exp: Run the test only at + -O3 (but for both oldfind and ftsfind). + + Correct the format of copyright statements, and add 2010. + * lib/fdleak.h: Correct the format of the copyright statement. + * po/vi.po: Likewise. + * lib/safe-atoi.h: Likewise. + * locate/locate.c: Likewise. + * po/ca.po: Likewise. + * po/gl.po: Likewise. + * po/fi.po: Likewise. + * po/it.po: Likewise. + * po/findutils.pot: Fill in the boilerplate in the header. + + Update copyright years. + * find/defs.h: Update copyright years. + * find/finddata.c: Likewise. + * find/sharefile.h: Likewise. + * lib/buildcmd.h: Likewise. + * lib/dircallback.h: Likewise. + * lib/extendbuf.h: Likewise. + * lib/findutils-version.h: Likewise. + * lib/gnulib-version.h: Likewise. + * lib/listfile.h: Likewise. + * lib/nextelem.c: Likewise. + * lib/nextelem.h: Likewise. + * lib/printquoted.h: Likewise. + * lib/regextype.h: Likewise. + * lib/savedirinfo.h: Likewise. + * lib/strspn.c: Likewise. + * lib/waitpid.c: Likewise. + * locate/locatedb.h: Likewise. + * m4/mkinstalldirs.m4: Likewise. + * m4/noreturn.m4: Likewise. + * build-aux/check-testfiles.sh: Likewise. + * build-aux/src-sniff.py: Likewise. + * import-gnulib.sh: Likewise. + * locate/testsuite/config/unix.exp: Likewise. + * locate/updatedb.sh: Likewise. + * xargs/testsuite/config/unix.exp: Likewise. + + Add the update-copyright gnulib module. + * import-gnulib.config (maintainer_modules): Separate out the + modules primarily useful for maintainer activities. Add + 'update-copyright' to this. + * build-aux/.cvsignore: Ignore update-copyright, since it's + installed by gnulib. + * build-aux/.gitignore: Likewise. + + Ignore generated files for the convenience of non-VPATH users. + * lib/.gitignore: Ignore object and archive files. + * find/.gitignore: Likewise. + * locate/.gitignore: Ignore object files. + +2010-04-02 James Youngman <jay@gnu.org> + + Check for accidental modifications to the wrong section of the + NEWS file. + * cfg.mk (local-checks-to-skip): Remove sc_immutable_news. + (old_NEWS_hash): add existing hash (from "make update-NEWS-hash"). + + * cfg.mk: Append the names of checks to skip to + local-checks-to-skip rather than inventing 7 new variables. + + Don't include quote.h/quotearg.h where it is not used. + * find/find.c: Don't include "quote.h", it's not used. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * locate/locate.c: Likewise. + * locate/word_io.c: Likewise. + * cfg.mk (skip_dunno): Enable check sc_prohibit_quote_without_use. + * find/find.c: Don't include "quotearg.h", it's not used. + * lib/fdleak.c: Likewise. + + Use set_program_name() to remember the programs' names. + * cfg.mk *skip(defer): Enable sc_program_name. Remove the + now-unused variable skip_defer. + * find/ftsfind.c: Include "program_name.h". + (main): Call set_program_name. + * find/find.c: Include "program_name.h". + (main): Call set_program_name. + * locate/locate.c: Include "program_name.h". + (dolocate): Call set_program_name. + Remove global variable program_name. + * locate/bigram.c: Include "program_name.h". + Remove global variable "program_name". + (main): Call set_program_name. + * locate/frcode.c: Include "program_name.h". + (main): Call set_program_name. + * xargs/xargs.c (main): Call set_program_name. + Include "program_name.h". + Remove global variable program_name. + * find/finddata.c: Remove global variable program_name. + * find/defs.h: No longer need declaration of program_name. + * find/util.c: Include "program_name.h". + + Use named constants for xargs exit codes. + * xargs/xargs.c (child_error): Use EXIT_SUCCESS instead of 0. + (enum XargsStatusValues): introduce named constants for the + various things that cause speicific exit codes. + (enum ClientStatusValues): Also introduce named constants for the + child's exit status. + (get_char_oct_or_hex_escape): Use EXIT_FAILURE instead of 1. + (get_input_delimiter): Likewise. + (main): Likewise. + (read_line): Likewise. + (read_string): Likewise. + (print_args): Likewise. + (xargs_do_exec): Likewise. + (wait_for_proc): Likewise. + (wait_for_proc): Use enum XargsStatusValues for exit codes. + (parse_num): Use EXIT_FAILURE instead of 1. + + Avoid using magic numbers as exit statuses. + * cfg.mk (skip_defer): Enable sc_prohibit_magic_number_exit. + * doc/find-maint.texi (Security): Avoid error (1, ...) in the + example patch. + * find/find.c (main): Use exit status EXIT_FAILURE instead of 1. + (wd_sanity_check): Likewise. + (safely_chdir_lstat): Likewise. + (process_dir): Likewise. + * find/fstype.c (must_read_fs_list): Likewise. + * find/ftsfind.c (main): Likewise. + (main): Likewise. + * find/parser.c (check_option_combinations): Use exit status + EXIT_FAILURE instead of 1. + (parse_group): Likewise. + (parse_help): Use exit status EXIT_SUCCESS instead of 0. + (parse_version): Likewise. + (fnmatch_sanitycheck): Use exit status EXIT_FAILURE instead of 1. + (insert_depthspec): Likewise. + (parse_newerXY): Likewise. + (non_posix_mode): Likewise. + (parse_perm): Likewise. + (insert_regex): Likewise. + (parse_size): Likewise. + (parse_show_control_chars): Likewise. + (parse_used): Likewise. + (parse_user): Likewise. + (parse_context): Likewise. + (insert_type): Likewise. + (insert_fprintf): Likewise. + (make_segment): Likewise. + (check_path_safety): Likewise. + (new_insert_exec_ok): Likewise. + (get_relative_timestamp): Likewise. + (parse_time): Likewise. + * find/tree.c (get_expr): Use exit status EXIT_FAILURE instead of 1. + (scan_rest): Likewise. + (get_pred_cost): Likewise. + (get_pred_cost): Likewise. + (build_expression_tree): Likewise. + (get_new_pred_chk_op): Likewise. + * find/pred.c (launch): Use exit status EXIT_FAILURE instead of 1. + * find/util.c (process_debug_options): Use exit status + EXIT_SUCCESS instead of 0. + (process_optimisation_option): Use exit status EXIT_FAILURE + instead of 1. + (set_option_defaults): Likewise. + * lib/buildcmd.c (exceeds): Likewise. + (bc_do_exec): Likewise. + (bc_push_arg): Likewise. + * lib/nextelem.c: Remove test code. + * lib/safe-atoi.c (safe_atoi): Use exit status EXIT_FAILURE + instead of 1. + * lib/regextype.c (get_regex_type): Use exit status EXIT_FAILURE + instead of 1. Include <stdlib.h>, for EXIT_FAILURE. + * locate/locate.c (set_max_db_age): Use exit status EXIT_FAILURE + instead of 1. + (set_max_db_age): Likewise. + (toolong): Likewise. + (visit_locate02_format): Likewise. + (search_one_database): Likewise. + (drop_privs): Likewise. + * locate/frcode.c (get_seclevel): Use exit status EXIT_FAILURE + instead of 1. + (outerr): Likewise. + (main): Likewise. + * locate/code.c (inerr): Use exit status EXIT_FAILURE instead of + 1. + (outerr): Likewise. + * locate/word_io.c (getword): Use exit status EXIT_FAILURE instead of 1. + + Avoid sc_prohibit_stat_st_blocks check, since it is broken. + * cfg.mk (skip_broken_checks): Skip sc_prohibit_stat_st_blocks. + + Enable syntax checker sc_the_the, detecting doubled 'the'. + * cfg.mk (false_positives): Enable syntax checker sc_the_the + * build-aux/src-sniff.py (checkers): Avoid false positive with + sc_the_the. + + Avoid false positives for sc_prohibit_atoi_atof. + * find/util.c (set_option_defaults): Avoid false positive with + sc_prohibit_atoi_atof. + (check_nofollow): Likewise. + + Avoid sscanf. + * lib/fdleak.c (get_proc_max_fd): Use safe_atoi to do string to + int conversion, instead of sscanf. Skip '.' and '..'. + * cfg.mk (skip_defer): Enable the sc_prohibit_atoi_atof check. + + * po/POTFILES.in: Remove source files we don't maintain any more. + Also remove files which exist but have no translated messages + (dircallback.c, listfile.c). + * lib/listfile.c: Don't include libintl, since there are no + translated messages in this file. + * lib/dircallback.c: Likewise. + + Move safe_atoi out into a separate module. + * find/parser.c: Include "safe-atoi.h". Remove the body of safe_atoi. + (parse_group): pass options.err_quoting_style to safe_atoi. + (insert_depthspec): Likewise. + (parse_user): Likewise. + * lib/safe-atoi.h: New file. + * lib/safe-atoi.c: New file. Add parameter for quoting style (to + avoid an external reference to the "options"struct). + * lib/Makefile.am (libfind_a_SOURCES): Add safe-atoi.c and + safe-atoi.h. + + Avoid false positives for the sc_prohibit_test_minus_ao syntax check. + * doc/find.texi (Updating A Timestamp File): Work around a syntax + check designed to prevent the use of "test X -a Y". + * find/find.1: Likewise. + + * find/ftsfind.c: We don't use anything from xalloc.h, so don't + #include it. + + Eliminate some unused function result warnings. + * lib/unused-result.h: New file, defines function attribute macro + __attribute_warn_unused_result__. + * lib/Makefile.am (EXTRA_DIST): Add unused-result.h. + * find/ftsfind.c (find): Issue a diagnostic if fts_close fails, + change return type to bool and return false for this case. Add + __warn_unused_result__ attribute. + (process_all_startpoints): Likewise (except no need for second + diagnostic). + (main): If process_all_startpoints failed, don't do the cleanup + operations because we don't know what subdirectory we're in. + + * find/util.c (fd_leak_check_is_enabled): Avoid implicit + pointer-to-int conversion. + * lib/buildcmd.c: #include <stdlib.h> for declaration of free. + + Avoid false positives for the sc_prohibit_test_minus_ao syntax check. + * doc/find.texi (Updating A Timestamp File): Work around a syntax + check designed to prevent the use of "test X -a Y". + * find/find.1: Likewise. + + * find/ftsfind.c: We don't use anything from xalloc.h, so don't + #include it. + + Eliminate some unused function result warnings. + * lib/unused-result.h: New file, defines function attribute macro + __attribute_warn_unused_result__. + * lib/Makefile.am (EXTRA_DIST): Add unused-result.h. + * find/ftsfind.c (find): Issue a diagnostic if fts_close fails, + change return type to bool and return false for this case. Add + __warn_unused_result__ attribute. + (process_all_startpoints): Likewise (except no need for second + diagnostic). + (main): If process_all_startpoints failed, don't do the cleanup + operations because we don't know what subdirectory we're in. + + * find/util.c (fd_leak_check_is_enabled): Avoid implicit + pointer-to-int conversion. + * lib/buildcmd.c: #include <stdlib.h> for declaration of free. + + Fix some space-followed-by-tab sequences. + * NEWS: Change space-tab sequences to just spaces. + * build-aux/check-testfiles.sh (main): Likewise + * build-aux/src-sniff.py (checkers): Likewise. + * find/Makefile.am: Likewise. + * find/testsuite/find.posix/sv-bug-25359.exp: Likewise. + * import-gnulib.sh (check_merge_driver): Likewise. + * m4/withfts.m4 (FIND_WITH_FTS): Likewise. + * cfg.mk (false_positives): Explain why we can't enable the + sc_space_tab check (xargs .xo test files). + + * cfg.mk: Explain that we cannot enable the sc_texinfo_acronym + syntax check right now, since the perm.texi file uses + @acronym{GNU} but we try to keep that in sync. with coreutils. + + Mark error messages for translation. + * find/parser.c (safe_atoi): Likewise. + * find/pred.c (pred_context): Likewise. + (do_fprintf): Likewise. + * xargs/xargs.c (xargs_do_exec): Translate error message. + (xargs_do_exec): Likewise. + * lib/buildcmd.c (exceeds): Likewise. + + Add customisation of the behaviour of "make syntax-check". + * cfg.mk: New file; configuration file for the maintainer-makefile + provided by gnulib. + + * import-gnulib.config (modules): Add maintainer-makefile. + + Various coding standard fixes. + * m4/withfts.m4: Quote the first argument of AC_DEFINE. + * lib/regextype.c: Don't use HAVE_CONFIG_H. + * doc/find-maint.texi: Remove RCS keywords (they were in an + example security vulnerability announcement). + + Don't define S_IS*; include <sys/stat.h> instead. + * lib/modetype.h: Remove (all it does is define S_IS*). + * lib/Makefile.am (EXTRA_DIST): Remove modetype.h. + * lib/listfile.c: Don't define S_IS* macros. + * find/pred.c: Don't include "modetype.h". + * find/parser.c: Likewise. + * find/ftsfind.c: Likewise. + * find/fstype.c: Likewise. + * find/find.c: Likewise. + + * m4/withfts.m4: Quote the first argument of AC_DEFINE. + + Coding standard fix: "Warning" should be "WARNING". + * find/find.c (dirchange_is_fatal): Change "Warning" to "WARNING". + * find/ftsfind.c (consider_visiting): Likewise. + * find/pred.c (pred_newerXY): Likewise. + * find/util.c (get_statinfo): Likewise. + (hook_fstatat): Likewise. + * locate/word_io.c (decode_value): Likewise. + * xargs/xargs.c (main): Change "Warning" to "warning". + (read_line): Change "Warning" to "WARNING". + (wait_for_proc): Likewise. + + Remove useless if conditionals before calls to 'free'. + * lib/nextelem.c (next_element): Remove useless if-before-free. + * lib/buildcmd.c (bc_do_exec): Likewise. + * find/find.c (process_dir): Likewise. + + * import-gnulib.sh (usage): Defeat the simple GPL version check + of maint.mk, since it's trying to identify GPL2 licenses. Since + the 'rehack' script converts v2 licenses into v3, we get a false + positive for v2. So, amusingly, we use the same hack that + maint.mk uses to avoid a false positive on itself: spurious + quotes. + + Switch from GNU Free Documentation License 1.2 to 1.3. + * NEWS: Update GFDL version. + * README-hacking: Likewise. + * doc/find-maint.texi: Likewise. + * lib/regexprops.c: Likewise (though the license being changed is + the license for the output). + + * NEWS: Update copyright years. + +2010-04-01 James Youngman <jay@gnu.org> + + Change error (1, ...) to error (EXIT_FAILURE, ...). + * find/find.c: Change error (1, ...) to error (EXIT_FAILURE, ...). + * find/fstype.c: Likewise. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/pred.c: Likewise. + * find/tree.c: Likewise. + * find/util.c: Likewise. + * locate/code.c: Likewise. + * locate/frcode.c: Likewise. + * locate/locate.c: Likewise. + * locate/word_io.c: Likewise. + * xargs/xargs.c: Likewise. + * lib/buildcmd.c: Likewise. Also include <stdlib.h>. + * lib/regextype.c: Likewise (both). + + Assume C89 (or C99) C headers. Assume working <ctype.h>. + * xargs/xargs.c: Unconditionally include <ctype.h>. Assume + isblank(c) is defined. Assume memcpy() has a prototype in + <string.h>. + * import-gnulib.config (modules): Import gnulib's ctype module. + + Optimise -fstype NOTUSED to -false at -O2. + * find/parser.c: Include mountlist.h. + (insert_false): New function, inserts a -false predicate. + (parse_false): Use insert_false. + (is_used_fs_type): New function, determines if any mounted + filesystem is of the named type. + (parse_fstype): At optimisation level 2 and above, -fstpe FOO + is converted to -false if no mounted filesytem is of type FOO. + * find/find.1: Document this optimisation. + * doc/find.texi (Optimisation Options): Likewise. + * NEWS: Mention this change. + + Updated copyright years to add 2010. + * find/find.c: Add 2010. + * find/fstype.c: Add 2010. + * find/ftsfind.c: Add 2010. + * find/parser.c: Add 2010. + * find/pred.c: Add 2010. + * find/sharefile.c: Add 2010. + * find/testsuite/config/unix.exp: Add 2010. + * find/tree.c: Add 2010. + * find/util.c: Add 2010. + * locate/bigram.c: Add 2010. + * locate/frcode.c: Add 2010. + * xargs/xargs.c: Add 2010. + + Coding style fixes: space after function names. + * lib/buildcmd.c: Insert a space between function name and open + parenthesis. + * lib/dircallback.c: Likewise. + * lib/extendbuf.c: Likewise. + * lib/fdleak.c: Likewise. + * lib/findutils-version.c: Likewise. + * lib/forcefindlib.c: Likewise. + * lib/listfile.c: Likewise. + * lib/printquoted.c: Likewise. + * lib/qmark.c: Likewise. + * lib/regexprops.c: Likewise. + * lib/regextype.c: Likewise. + * lib/savedirinfo.c: Likewise. + * locate/code.c: Likewise. + * locate/frcode.c: Likewise. + * locate/locate.c: Likewise. + * locate/word_io.c: Likewise. + +2010-03-31 James Youngman <jay@gnu.org> + + Coding style fixes: space after function names. + * find/util.c: Insert a space between function name and open + parenthesis. + * find/ftsfind.c: Likewise. + * find/fstype.c: Likewise. + * find/util.c: Likewise. + * find/tree.c: Likewise. + * find/sharefile.c: Likewise. + * find/pred.c: Likewise. + * find/parser.c: Likewise. + * xargs/xargs.c: Likewise. + + Move version number on to 4.5.7-git, so that we can make test + releases. + * configure.ac: Update version number. + * NEWS: Likewise. + * Makefile.am (AUTOMAKE_OPTIONS): Return to "gnits" rules. + + Mention additional bugfixes. + * NEWS: Mention that Savannah bug #29089 was also fixed in + 4.5.6b. + + Prepare for release of findutils-4.5.6b + This release is identical to 4.5.6 apart from the version number + and the fact that it was generated by automake version 1.11.1 in + order to avoid issues with CVE-2009-4029. + * configure.ac: Update version number. + * NEWS: Update version number. Mention that Savannah bug #29089 + was also fixed in 4.5.6b. + * Makefile.am: switch to 'gnu' option ('gnits' forbids the 'b' + suffix). + +2010-03-30 James Youngman <jay@gnu.org> + + Prepare for release of findutils-4.5.6 + * configure.ac: Update version number. + * NEWS: Update version number. + + Support O_CREAT in open_cloexec. + * lib/fdleak.c: Include <stdarg.h> and "cloexec.h". + (open_cloexec): Support O_CREAT. Use O_CLOEXEC if it is available. + (O_CLOEXEC): #define to 0 if not already #defined. + * lib/fdleak.h: Update prototype of open_cloexec to allow mode to + be passed. + + * import-gnulib.config (modules): Import modules open (for + PROMOTED_MODE_T) and stdbool (for 'true'). + + Tolerate the absence of getrusage. + * configure.ac: Check for <sys/resource.h> and the getrusage + function. + * lib/fdleak.c: Don't #include <sys/resource.h> if we don't have it. + (get_max_fd): If neither /proc/self/fd not getrusage is available, + return _POSIX_OPEN_MAX. + + Detect leaks in file descriptors 0, 1, 2. + * lib/fdleak.c: (remember_non_cloexec_fds): Also check for leaks + in file descriptors 0, 1, 2, just in case the caller closed them. + (find_first_leaked_fd): Likewise. + +2009-08-16 James Youngman <jay@gnu.org> + + Bugfixes to the handling of %Z in the Red Hat SELinux patch. + * find/pred.c (do_fprintf): If getfilecon fails, print the + relevant segment anyway, with the file context expanding to an + empty string. + * find/parser.c (make_segment): For %Z, set the cost to + NeedsAccessInfo. + +2009-08-11 Kamil Dudka <kdudka@redhat.com> + + find: add SELinux support + * find/defs.h: Add SELinux related definitions. + * find/tree.c: Add -context predicate to lookup. + * find/pred.c: Handle %Z printf directive. + * find/parser.c: Parse -context predicate and %Z printf directive. + * find/find.1: Mention -context predicate and %Z printf directive. + * doc/find.texi: Mention -context predicate and %Z printf directive. + * find/Makefile.am: Add SELinux libraries. + * import-gnulib.config: Require module selinux-at and the corresponding + version of gnulib. + +2010-03-29 James Youngman <jay@gnu.org> + + Fix file descriptor leaks. This fixes Savannah bug bug #27375. + * find/util.c (fd_leak_check_is_enabled): New function; returns + nonzero if the environment variable GNU_FINDUTILS_FD_LEAK_CHECK is + enabled. Setting this variable enables the file descriptor leak + checker. + * find/defs.h: Declare fd_leak_check_is_enabled. + * import-gnulib.config (gnulib_version): Update to more recent + version of gnulib. Import the cloexec module too. + * lib/fdleak.c: New file; a module for detecting file descriptor + leaks. Also define an open_cloexec() function. + * lib/fdleak.h: Declare the global functions defined in fdleak.c. + * lib/Makefile.am (libfind_a_SOURCES): Add fdleak.c. + * find/find.c (main): Call remember_non_cloexec_fds in order to + detect file descriptor leaks. + (main): set FD_CLOEXEC on starting_desc. + (safely_chdir_lstat): Likewise for dotfd. + (safely_chdir_nofollow): Likewise for fd. + * find/ftsfind.c (inside_dir): set FD_CLOEXEC on curr_fd. + (main): Call remember_non_cloexec_fds in order to detect file + descriptor leaks. + (main): set FD_CLOEXEC on starting_desc. + * find/pred.c (launch): before we exec the child, call + complain_about_leaky_fds in order to complain about non-FD_CLOEXEC + file descriptors that weren't open when the program was run. + * find/sharefile.c (sharefile_fopen): Set FD_CLOEXEC on the files + we open. + * import-gnulib.sh (run_gnulib_tool): Pass the --local-dir option + in order to apply any required patches (none needed right now). + * find/testsuite/config/unix.exp: Set environment variable + $GNU_FINDUTILS_FD_LEAK_CHECK to enable the file descriptor leak + check for all tests. + * find/testsuite/find.gnu/no-fdleak-test.exp: New test; runs find + with the fd leak detector turned off, in order to make sure there + are no (e.g.) crashing bugs when that happens. + * find/testsuite/find.gnu/no-fdleak-test.xo: Expected output for + the new test. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add no-fdleak-test.exp + (EXTRA_DIST_XO): Add no-fdleak-test.xo. + + * NEWS: Mention these changes. + +2010-03-30 James Youngman <jay@gnu.org> + + Add missing exec-nogaps.{exp,xo}. + * find/testsuite/Makefile.am (EXTRA_DIST_XO): Add exec-nogaps.xo. + (EXTRA_DIST_EXP): Add exec-nogaps.exp. + +2010-02-25 James Youngman <jay@gnu.org> + + Explain the problems with "-name a/b" and "-path foo/". + * find/find.1 (-iname): We already refer to -name, so duplicate + less text. + (-name): Explain that -name a/b will never match anything. + * doc/find.texi (Base Name Patterns): Explain that -name a/b will + never match anything. + (Full Name Patterns): Fix typo. + +2010-02-22 James Youngman <jay@gnu.org> + + * xargs/xargs.1: Simplify the wording in the description of "xargs + -i". + +2010-02-21 James Youngman <jay@gnu.org> + + Update #include directives for the openat module, to comply with + recent POSIX-compliance changes. + * find/find.c: Don't include <openat.h>. + * find./ftsfind.c: Likewise. + * find/pred.c: Likewise; include <unistd.h>. + * find/util.c: Don't include <openat.h>; include <sys/stat.h>. + + * import-gnulib.config (gnulib_version): Update to current version + of gnulib. + * build-aux/.cvsignore: Ignore new files built by gnulib. + * build-aux/.gitignore: Likewise. + +2010-02-20 James Youngman <jay@gnu.org> + + Fix Savannah bug #27846: assertion failure in xargs.c on AIX. + * xargs/xargs.c (smaller_of): New function, returns the smaller of + its two size_t arguments. + (main): Instead of asserting that the value of bc_ctl.arg_max is + smaller than some value, simply adjust the value if necessary. + * NEWS: Mention this change. + + Fix Savannah bug#28872, Mistake in "Problems with -exec and filenames" + * doc/find.texi (Problems with -exec and filenames): Add missing + $0 argument in example for sh -c 'something "$@" sh ... + * NEWS: Mention this change. + + Fix Savannah bug# 28824: "-ctime x" yields "missing argument to + `-ctime'". + * find/parser.c (parse_fls): If the argument is invalid, reverse + the change that collect_arg() made to *arg_ptr (that is, don't + consume the argument). + (parse_fprint0): Likewise. + (parse_gid): Likewise. + (parse_group): Likewise. + (parse_inum): Likewise. + (parse_links): Likewise. + (do_parse_xmin): Likewise. + (parse_name): Likewise. + (parse_printf): Likewise. + (parse_uid): Likewise. + (parse_used): Likewise. + (parse_time): Likewise. + * NEWS: mention this change. + +2009-12-04 James Youngman <jay@gnu.org> + + Fix Savannah bug #26868: compilation error in pred.c on Solaris + x86_64. + * import-gnulib.config (modules): Include gnulib's math module, to + avoid a compilation error for "-HUGE_VAL" on Solaris x86_64. + * NEWS: Mention this change. + +2009-11-29 James Youngman <jay@gnu.org> + + * find/testsuite/find.posix/exec-nogaps.exp: New test for find + -exec ... {} ; and find -exec ... {} +, both of which simply + ensure that all exec arguments are processed exactly once each. + * find/testsuite/find.posix/exec-nogaps.xo: Expected output file + for the test in exec-nogaps.exp. + + Fix Savannah bug#27328, segfault if the initial exec for "find + -exec" fails. Also Savennah bug #27975: Infinite loop + for -exec [..] {} +. + * lib/buildcmd.h (struct buildcmd_state): Introduce + largest_successful_arg_count and smallest_failed_arg_count in + order to avoid an assumption that we understand how the operatingn + system interprets ARG_MAX and the assumption that the compile-time + ARG_MAX value (or the equivalent from sysconf()) is avtually + correct. + (struct buildcmd_control): Change the calling convention of the + exec callback to allow us to pass the argument list separately. + (bc_args_exceed_testing_limit): declare this new function. + * lib/buildcmd.c (bc_args_complete): New function, NULL-terminates + the argv list. We use this instead of passing NULL to + bc_push_arg(). + (update_limit): New function. Decides how many arguments to + pass to the invoked command on the next attempt. + (copy_args): Build an argument list containing all the initial + arguments plus some of the other args (the number to be used is + decided by update_limit). + (bc_do_exec): Avoid special-casing the first call to exec. Use + update_limit to decide how many arguments to pass and copy_args to + build the argument list. The new form of the loop should fix + Savannah bug #27328. + (bc_push_arg): Drop support for passing NULL as an argument (to + terminate the arg list we just pass in a special argument instead). + (bc_args_exceed_testing_limit): New function, returns nonzero if + the argument list exceeds a testing limit (used for failure + injection by tests). + (exceeds): New support function, implementing part of + bc_args_exceed_testing_limit. + (bc_init_state): Initialise largest_successful_arg_count and + smallest_failed_arg_count. + * find/defs.h (struct exec_val): New member last_child_status. + This stores the status of the most recently completed child. + * find/pred.c (new_impl_pred_exec): Use last_child_status. + (launch): Use the new calling convention for the exec callback. + Set last_child_status. Call bc_args_exceed_testing_limit() to do + failure injection for unit tests. + * find/util.c (do_complete_pending_execdirs): Call bc_do_exec + rather than calling launch directly in order to allow for breaking + the argument list up if it's too long. + * xargs/xargs.c (xargs_do_exec): Update to use the new caling + convention for the exec callback. + * NEWS: Mention these fixes. + +2009-11-09 Jim Meyering <meyering@redhat.com> + + Adjust two xargs diagnostics. + * xargs/xargs.c (print_args): Give a better diagnostic when + failing to open /dev/tty. + (xargs_do_exec): Mark a diagnostic for translation. + +2009-11-08 James Youngman <jay@gnu.org> + + Localise some previously non-localised strings. + * find/find.c (init_mounted_dev_list): Pass translatable string + gettext. + (safely_chdir_lstat): Likewise. + * find/fstype.c (must_read_fs_list): Likewise. + * find/parser.c (safe_atoi): Likewise. + + Updated a number of translation messages. + * po/it.po: Updated Italian translation. + * po/fi.po: Updated Finnish translation. + * po/vi.po: Updated Vietnamese translation. + * po/hu.po: Updated Hungarian translation. + * po/de.po: Updated German translation. + * po/ru.po: Updated Russian translation. + +2009-08-16 James Youngman <jay@gnu.org> + + * lib/check-regexprops.sh: Portability fixes for FreeBSD (mktemp + requires an argument, dialect differences in sed regexes). + + Bugfixes to the handling of %Z in the Red Hat SELinux patch. + * find/pred.c (do_fprintf): If getfilecon fails, print the + relevant segment anyway, with the file context expanding to an + empty string. + * find/parser.c (make_segment): For %Z, set the cost to + NeedsAccessInfo. + +2009-08-15 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Update to the current + version of gnulib. + +2009-07-18 James Youngman <jay@gnu.org> + + Fix up some problems introduced in a manual conflict resolution. + * find/parser.c (insert_path_check): Add missing third argument to + insert_primary_withpred. + (parse_iwholename): Remove redundant extra definition. + (parse_ipath): Likewise. + +2009-07-14 James Youngman <jay@gnu.org> + + Fix Savannah bug #27017: find -D opt / -fstype ext3 -print , -quit + coredumps. + * find/tree.c (set_new_parent): Initialise struct + predicate->arg_text to NULL (instead of leaving it uninitialised). + (get_new_pred_noarg): Likewise. + (get_new_pred): Initialise predicate->arg_text to + "ThisShouldBeSetToSomethingElse" to make it easier to notice + bugs. + (get_new_pred_chk_op): Use get_new_pred_noarg. + (print_predicate): Use an if statement instead of + two ternary operators. + * find/util.c (insert_primary_withpred): Accept new argument, arg, + being the argument (if any) of this predicate. Pass it to + get_new_pred_chk_op. + (insert_primary): Likewise (pass arg to insert_primary_withpred). + (insert_primary_noarg): New function; calls insert_primary with + arg=NULL. + * find/parser.c (collect_arg_stat_info): Add an output parameter; + the filename from which we collected the stat information. + (parse_closeparen, parse_delete, parse_and, parse_or, + parse_comma): Use get_new_pred_noarg. + (parse_cnewer, parse_newer, parse_anewer): Use new + collect_arg_stat_info and insert_primary interface. + (parse_print, parse_prune, parse_nouser, parse_empty): Use + insert_primary_noarg. + (parse_accesscheck, parse_false): Use insert_primary_noarg. + (parse_used, parse_iname, parse_fprint, insert_fprint, + parse_fstype, parse_ilname): Use new collect_arg and + insert_primary interfaces. + (parse_ipath, parse_lname, do_parse_xmin, parse_name, parse_path, + parse_perm, parse_size, parse_user, parse_time): Use new + collect_arg and insert_primary_withpred interface. + (parse_negate, parse_openparen): Use new get_new_pred_chk_op interface. + (parse_newerXY, parse_nogroup): Use new insert_primary interface. + (insert_regex, parse_samefile): Use new insert_primary_withpred + interface. + (insert_type, insert_fprintf, new_insert_exec_ok, insert_num): Use + new insert_primary_withpred interface. + * find/defs.h (struct predicate.arg_text): make const. + Add declarations for new function get_new_pred_noarg and + insert_primary_noarg. Add 'arg' parameter to get_new_pred_chk_op + and insert_primary_withpred. + * NEWS: Mention the bugfix. + +2009-07-12 James Youngman <jay@gnu.org> + + Savannah bug #23920: warn about -path arguments ending in /. + * find/parser.c (insert_path_check): new function; abstracts the + common functionality of parse_path, parse_ipath, parse_wholename, + parse_iwholename. Also check for a trailing slash and warn about + it (unless $POSIXLY_CORRECT is set). Don't warn if the pattern + also happens to be a start_point, because those could be matched. + (parse_path, parse_ipath, parse_wholename, parse_iwholename): Use + insert_path_check. + * find/tree.c (is_start_point): new function; returns true if the + indidated string matches a start point. + (num_start_points, start_points): new variables, storing the + starting points listed on the command line. + (build_expression_tree): Set num_start_points and start_points. + * find/defs.h: Declare is_start_point. + * doc/find.texi (Full Name Patterns): Explain that candidate names + for -path, -regex etc. will never end in a slash, so "-path /tmp/" + will never match anything. + * find/find.1: Likewise. + + Fix Savannah bug #26327: xargs man page is vague about the number + of times command is executed. + * xargs/xargs.1 (DESCRIPTION): Explain more clearly that the + command will be executed many times. Indicate that -L can also be + useful with -P. + * NEWS: Mention this change. + +2009-07-11 James Youngman <jay@gnu.org> + + * NEWS: Set the version to 4.5.6-git, so that we can make test + releases. + +2009-06-11 James Youngman <jay@gnu.org> + + Make import-gnulib.sh faster in the common case where neither + import-gnulib.config nor gnulib itself changed. + * import-gnulib.sh (gnulib_changed): New variable. + (do_checkout): set gnulib_changed=true if the gnulib code didn't + already correspond to our configured version. Don't use a large + subshell, because we need to set $gnulib_changed and don't want + the value to be discarded. + (main): Run gnulib-tool if gnulib was not at the correct version + or the import-gnulib.config file has changed. + +2009-07-10 Reuben Thomas <rrt@sc3d.org> + + Fix quotation punctuation in find manual page, fixing bug #19120. + * find/find.1: Use ` instead of ' at the start of quoted text. Use + \(aq instead of ' or \' in commands to get a literal straight quote. + Use ` and ' instead of `` and '' (for consistency). + * NEWS: mention this change. + +2009-07-10 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Update to the current version + of gnulib. + + Fix Savannah bug #24873, Duplicate fprint option corrupts output + by opening each output file only once. + * find/sharefile.c: New file; keeps a mapping from dev/inode to + FILE*, allowing us to determine when the file we just opened is + the same as something else we already opened. + * import-gnulib.config (modules): Import the hash module, used by + sharefile.c. + * find/sharefile.h: Function declarations for same. + * find/find.c (main): Call sharefile_init(). + * find/ftsfind.c (main): Likewise. + * find/parser.c (open_output_file): Call sharfile_fopen to open an + output file, instead of fopen_safer. + * find/util.c (cleanup): Close any shared output files that are + open. Also fflush stdout. + (undangle_file_pointers): Set the relevant FILE* pointers to + NULL. + (flush_and_close_output_files): Remove (since sharefile_destroy + has the desired effect). + * find/Makefile.am (libfindtools_a_SOURCES): Add sharefile.c. + (EXTRA_DIST): Add sharefile.h. + * find/defs.h: #include sharefile.h. + (struct state): Add member shared_files, holding a handle to the + shared-file hash table implemented in sharefile.[ch]. + * find/testsuite/find.gnu/fprintf-samefile.exp: New test, + exercising -fprintf (though it is not able to detect bug #24873). + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + find.gnu/fprintf-samefile.exp. + * NEWS: Mention the bugfix. + +2009-07-07 James Youngman <jay@gnu.org> + + * NEWS: Indicate that -wholename is no longer preferred over -ipath. + +2009-07-06 James Youngman <jay@gnu.org> + + Prepare for release of findutils version 4.5.5. + * configure.ac: Set version number to 4.5.5. + * NEWS: Likewise. + +2009-07-06 Andreas Metzler <gnu@downhill.at.eu.org> + + * doc/find.texi: Various typo fixes. + +2009-07-05 James Youngman <jay@gnu.org> + + Fix typo in -execdir documentation. + * doc/find.texi (Single File): Typo correction; we're describing + -execdir, not -exec. + * NEWS: Mention the bugfix. + +2009-05-12 James Youngman <jay@gnu.org> + + #26537: find -prune now makes sure it has valid stat() information. + * NEWS: Added Savannah bug number for Colin's bugfix. + +2009-05-07 Colin Watson <cjwatson@ubuntu.com> + + * find/parser.c (parse_prune): -prune needs stat information if + -depth is not in use. + * find/pred.c (pred_prune): Assert that stat information is + available if needed. + * find/testsuite/find.posix/prune-stat.exp: New test. + * find/testsuite/find.posix/prune-stat.xo: New test. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO): Added + prune-stat.exp, prune-stat.xo. + * NEWS: Mention this bugfix. + +2009-07-05 James Youngman <jay@gnu.org> + + * lib/check-regexprops.sh: New test. Run regexprops as a check, + and compare its output against the contents of doc/regexprops.texi. + * lib/Makefile.am: Run check-regexprops.sh for 'make check'. + * doc/Makefile.am: don't clean regexprops.texi, and don't generate + it automatically. + * doc/regexprops.texi: add into source control. + * doc/.gitignore: don't ignore regexprops.texi + +2009-07-04 James Youngman <jay@gnu.org> + + * configure.ac (AC_CONFIG_FILES): order the entries alphabetically + and remove duplicates. Put po/Makefile.in before + po/Makefile, since the former is required in order to + config.status to generate the latter. + +2009-07-04 gettextize <bug-gnu-gettext@gnu.org> + + * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. + (AM_GNU_GETTEXT_VERSION): Bump to 0.17. + +2009-05-12 Eric Blake <ebb9@byu.net> + + xargs: fix compilation on cygwin + * xargs/xargs.c (main): Check that ARG_MAX is defined. + + xargs: avoid compiler warning + * xargs/xargs.c (get_char_oct_or_hex_escape): Pass correct type to + ctype macro. + +2009-05-04 James Youngman <jay@gnu.org> + + * find/util.c (get_info): Don't fall off the end of the function + without returning a value. + +2009-04-25 James Youngman <jay@gnu.org> + + * AUTHORS: Add Andreas Metzler. + +2009-04-25 Andreas Metzler <gnu@downhill.at.eu.org> (tiny change) + + Correct a typo "diagnositcs". + * doc/find.texi (Environment Variables): Correct a typo. + +2009-04-24 A. Costa <agcosta@gis.net> (tiny change) + + Correct a typo "diagnositcs". + * find/find.1 (POSIXLY_CORRECT): Correct a typo. + +2009-04-24 James Youngman <jay@gnu.org> + + * find/ftsfind.c (consider_visiting): Print a message for "-D + search" both on entry to the function and at the point where we + have decided not to ignore this file. + +2009-04-12 James Youngman <jay@gnu.org> + + * NEWS: Mention the fix for bug #22708 in the correct section. + + Avoid mixing declarations and statements. + * lib/buildcmd.c (bc_do_exec): Declare variables at the top of the + relevant block, in order to avoid mixing declarations and + statements. + * xargs/xargs.c (main): Likewise. + +2009-04-12 Leslie Polzer <leslie.polzer@gmx.net> + + Merge Leslie Polzer's ARG_MAX enhancements to xargs which were + produced as part of the Google Summer of Code 2007. + These changes fix Savannah bug #22708. + * find/pred.c (launch): The struct buildcmd_control* argument is + no longer const. + * find/defs.h: Likewise + * lib/buildcmd.c (bc_do_insert): The struct buildcmd_control* + argument is no longer const. + (bc_push_arg): Likewise. + (cb_exec_noop): Likewise. + (get_stringv_len): New function; measures the length of + a NULL-terminated argv sequence. + (bc_do_exec): Rename from do_exec, and make global. Modify the + function to react to exec failing with E2BIG by trying again + with fewer arguments. + * xargs/xargs.1: Mention that xargs automatically adopts to the + situation where exec fails with E2BIG. + * xargs/xargs.c: (parent): New variable, the PID of the parent + process. + (main): initialise the variable 'parent'. Don't fail immediately + due to lack of space when the environment is large. Call + xargs_do_exec via bc_do_exec. + (xargs_do_exec): The struct buildcmd_control* argument is no + longer const. When exec fails in the child, communicate the + errno value back to the parent through a pipe which is + close-on-exec; this allows us to accurately determine the cause of + the failure and also to distinguish exec failures from all + possible exit codes in the child. + (wait_for_proc): If the utility cannot be found or cannot be run, + we now find out about this by reading an errno value from the + pipe, so this means that exit codes 126 and 127 in the child no + longer have a special interpretation. + * NEWS: mention these changes. + +2009-04-13 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Update to current head + version. + +2009-04-13 Andreas Metzler <gnu@downhill.at.eu.org> + + Fix Savannah bug# 26092: find.1 still marks -iwholename as preferred + * find/find.1 (-iwholename): Indicate that this option is no + longer preferred over -ipath. + +2009-03-07 James Youngman <jay@gnu.org> + + Update the code to better reflect the semantics of digest_mode(). + * find/defs.h: Pass the file mode to digest_mode() by reference + (as a pointer) rather than by value to make it unnecessary for the + caller to know that the value passed should become dead. + * find/util.c (digest_mode): Change the implementation. + * find/find.c (process_path): Update caller. + * find/ftsfind.c (consider_visiting): Update caller. + +2009-03-10 James Youngman <jay@gnu.org> + + Remove "lib/wait.h", since gnulib provides <sys/wait.h>. + * lib/Makefile.am (EXTRA_DIST): Remove wait.h, since gnulib + provides it. + * lib/wait.h: Not needed. + * find/pred.c: Include <sys/wait.h> instead of "wait.h". + * lib/waitpid.c: Likewise. + * xargs/xargs.c: Likewise. + + Remove unnecessary include guards. + * lib/dircallback.c: gnulib provides <locale.h>, so no need for + include guards. + * locate/locate.c: Likewise. + * lib/listfile.c: Likewise. + * lib/savedirinfo.c: Likewise with <sys/stat.h> + * find/defs.h: gnulib provides <inttypes.h>, so no need for + include guards. + * lib/nextelem.c: Likewise with <string.h> and <stdlib.h>. + * locate/bigram.c: Likewise. + * locate/frcode.c: Likewise. + * lib/buildcmd.c: Likewise with <locale.h> and <wchar.h> + * xargs/xargs.c: Likewise with <locale.h>, <wchar.h> and <stdlib.h> + * import-gnulib.config (modules): Import the mbrtowc and whchar + modules. + * lib/qmark.c (multibyte_qmark_chars): Don't surround with + HAVE_MBRTOWC, since we now have a replacement for mbrtowc. + Likewise, don't protect inclusion of <string.h> with + HAVE_STRING_H. Likewise with <wchar.h>. + (multibyte_qmark_chars): Rename to qmark_chars. + (qmark_chars): Remove old version (since it is replaced by the + function that used to be multibyte_qmark_chars). + * lib/printquoted.c: Don't include <wchar.h>, we don't need it. + + Prepare for release of findutils-4.5.4. + * configure.ac (AC_INIT): Set version number to 4.5.4. + * NEWS: Likewise. + + Remove obsolete regex.c copy fixup. + * Makefile.am (jy-regex-fix) Delete. + (dist-hook): Remove jy-regex-fix. + + Update to version 0.17 of GNU gettext. + * configure.ac: Update to version 0.17 of gettext. + * import-gnulib.sh (refresh_output_files): Run autopoint too. + * ABOUT-NLS: Remove the file from source control, since gettext + produces it. + * .gitignore: Ignore ABOUT-NLS. + * po/Makefile.in.in: Likewise. + * po/.gitignore: Ignore po/Makefile.in.in. + + Correct the changelog-driver argument list. + * import-gnulib.sh (check_merge_driver): Add the missing arguments + to the changelog driver. Change the name of the merge driver from + cl-merge to merge-changelog, for consistency with gnulib, + coreutils, autoconf, libtool, and m4. + +2009-03-08 James Youngman <jay@gnu.org> + + Switch to using a merge driver for the ChangeLog file. + * import-gnulib.sh (check_merge_driver): New function; verifies + that we have a merge driver installed for the ChangeLog file (if + we're on the master or release branch, the check is skipped). + Also check that the .gitattributes file exists. + * README-hacking: Point out that using a merge driver for + ChangeLog is a good idea. + * .gitattributes: New file + + Optimise away calls to stat if all we need is the inode number. + This fixes Savannah bug #24342. + * find/util.c (get_info): call get_statinfo if need_inum and we + don't already have the inode number. + (apply_predicate): Call get_info if need_inum. + * find/defs.h (enum EvaluationCost): Add NeedsInodeNumber. + (struct predicate): Add need_inum. + * find/tree.c (get_new_pred): Default need_inum to false. + (get_new_pred_chk_op): Likewise. + * find/ftsfind.c (consider_visiting): Copy the value of st_ino + into statbuf.st_ino. + * find/parser.c (parse_inum): Set need_inum=true. + (parse_samefile): Set need_inum=false, but add a comment + indicating that there is an optimisation opportunity. + (make_segment): For -printf %i, set NeedsInodeNumber rather than + NeedsStat. + * find/pred.c (pred_inum): assert that the inode number is known + (i.e. non-zero). + (print_optlist): Print "[need inum]" when need_inum is true. + * find/tree.c (opt_expr): Also reorder expressions if the right + hand expression is -inum (that is, consider that test to be no + more expensive than -type). + (set_new_parent): Default need_inum to false. + (costlookup): Set pred_inum=NeedsInodeNumber. + (get_pred_cost): need_inum implies a data cost of + NeedsInodeNumber. + (cost_table): Add NeedsInodeNumber. + (print_tree): Handle need_inum. + + For -samefile, skip stat if inode numbers differ. + * find/pred.c (pred_samefile): Skip stat if the inode numbers are + different. + Enable -Wall compiler warnings and fix them. + * configure.ac: Turn on -Wall warnings. + * find/find.c (process_dir): Print unsigned values of unspecified + width as uintmax_t. + * xargs/xargs.c: Include <inttypes.h> and <stdint.h>, but without + the include guards (since we assume an ISO C platform anyway). + * import-gnulib.config (modules): Add modules inttypes and stdint. + +2009-03-07 James Youngman <jay@gnu.org> + + Remove unused Debian files; the Debian package doesn't use them. + * debian.rules: Delete. + * debian/README.debian: Delete. + * debian/TODO: Delete. + * debian/changelog: Delete. + * debian/conffiles: Delete. + * debian/control: Delete. + * debian/copyright: Delete. + * debian/cron.find: Delete. + * debian/doc-base: Delete. + * debian/postinst: Delete. + * debian/preinst: Delete. + * debian/prerm: Delete. + * debian/rules: Delete. + * debian/substvars: Delete. + * debian/updatedb.conf: Delete. + * debian/.cvsignore: Delete. + * debian/.gitignore: Delete. + +2009-03-06 James Youngman <jay@gnu.org> + + Change suffix for non-release versions from -CVS to -git. + * configure.ac(AC_INIT): Change the suffix used to indicate that + the version number doesn't correspond to a source release from + -CVS to -git. + * NEWS: Likewise. + + Delete the INSTALL file; rely on Autoconf providing it. + * INSTALL: Delete; this file can be copied/generated by Autoconf, + so do that rather than keeping it under source control. + * .gitignore: Ignore INSTALL. + + Updated translation po files from translationproject.org. + * po/bg.po: Updated Bulgarian translation. + * po/de.po: Updated German translation. + * po/ga.po: Updated Irish translation. + * po/hu.po: Updated Hungarian translation. + * po/lt.po: Updated Lithuanian translation. + * po/nl.po: Updated Dutch translation. + * po/pl.po: Updated Polish translation. + * po/sl.po: Updated Slovenian translation. + * po/sv.po: Updated Swedish translation. + * po/tr.po: Updated Turkish translation. + * po/uk.po: Updated Ukrainian translation. + * po/vi.po: Updated Vietnamese translation. + * NEWS: Mention these updates. + +2009-03-05 James Youngman <jay@gnu.org> + + Fix Savannah bug #25764, duplicate entry for proc in PRUNEFS. + * locate/updatedb.sh (PRUNEFS): Remove duplicate entry for proc. + * locate/Makefile.am (updatedb): add dependency on Makefile, and + add a comment explaining why updatedb is generated by make, not + configure. + * NEWS: Mention this bugfix. + + Provide more detailed help on how to work with the git sources. + * README-CVS: Rename to README-hacking. + * README-hacking: Add more specific information about using topic + branches, test cases, documentation, coding standards and how to + submit patches. Much of this is adapted from the files + README-hacking and HACKING in the coreutils source tree. + * Makefile.am: Generate tool-versions.txt, which is a list of the + --version outputs of the tools that the maintainer used to build a + release. + * NEWS: Mention these improvements. + +2009-03-04 James Youngman <jay@gnu.org> + + Upgrade to gnulib version 86a37c05846ff3772afd1300f135866dd1d271c6. + * import-gnulib.config(gnulib_version): Update. + * xargs/Makefile.am: Add $(LIB_CLOSE) to $(LDADD), as suggested by + gnulib's unistd module. + * locate/Makefile.am: Likewise. + * find/Makefile.am: Likewise. + + Removed trailing white space. + * Makefile.am: Removed trailing white space. + * NEWS, build-aux/check-testfiles.sh, build-aux/src-sniff.py, + doc/Makefile.am, doc/find-maint.texi, doc/find.texi, find/Makefile.am, + find/defs.h, find/find.1, find/find.c, find/finddata.c, find/fstype.c, + find/ftsfind.c, find/parser.c, find/pred.c, find/tree.c, find/util.c, + import-gnulib.sh, lib/Makefile.am, lib/buildcmd.c, lib/buildcmd.h, + lib/dircallback.c, lib/dircallback.h, lib/extendbuf.c, + lib/extendbuf.h, lib/findutils-version.c, lib/findutils-version.h, + lib/forcefindlib.c, lib/gnulib-version.h, lib/listfile.c, + lib/modetype.h, lib/nextelem.c, lib/nextelem.h, lib/printquoted.c, + lib/printquoted.h, lib/qmark.c, lib/regexprops.c, lib/regextype.c, + lib/savedirinfo.c, lib/savedirinfo.h, lib/strspn.c, lib/wait.h, + lib/waitpid.c, locate/bigram.c, locate/code.c, locate/locate.1, + locate/locate.c, locate/locatedb.5, locate/locatedb.h, + locate/updatedb.1, locate/updatedb.sh, locate/word_io.c, + m4/findlib.m4, m4/nullsort.m4, m4/withfts.m4, xargs/xargs.1: + Likewise. + * m4/nullsort.m4: Removed occurrences of space followed by tab. + + Enabled GCC warnings for declarations after statements. + * import-gnulib.config: Import the gnulib module 'warnings' + * configure.ac: Add GCC warning -Wdeclaration-after-statement. + * Makefile.am: Add AM_CFLAGS and set it to $(WARN_CFLAGS). + * find/Makefile.am, doc/Makefile.am, lib/Makefile.am: Likewise. + * locate/Makefile.am, xargs/Makefile.am: Likewise. + +2009-03-03 James Youngman <jay@gnu.org> + + Fix Savannah bug #25359, more efficiently (suggestion by Nick Fortino). + * find/ftsfind.c (consider_visiting): revert the previous change + which discarded type information, and instead simply ensure that + state.curdepth holds the correct value before digest_mode() is + called. + (find): revert the previous change. + (visit): we no longer need to set state.curdepth here, since it + will have been set already in consider_visiting(). + +2009-03-02 James Youngman <jay@gnu.org> + + Fix Savannah bug #25359. + * find/ftsfind.c (consider_visiting): discard mode information + from fts when the -H option is in effect and the current file is a + symbolic link. + (find): don't decode the mode information that find is trying to + pass to us in that case, since we don't want to use it. + * find.posix/sv-bug-25359.exp: new test for this bug. + * find.posix/sv-bug-25359.xo: expected output for the test. + * NEWS: Mention this bugfix. + +2009-02-21 James Youngman <jay@gnu.org> + + Updated the email address for Eric B. Decker. + * ChangeLog: Updated Eric's address + * find/find.c: Likewise + * find/ftsfind.c: Likewise + +2009-02-21 Jim Meyering <meyering@redhat.com> + + find: take advantage of new gnulib/fts leaf-optimization + * find/ftsfind.c (ftsoptions): Set the FTS_CWDFD bit. + This is required in order to take advantage of fts' leaf-optimization. + * find/ftsfind.c (consider_visiting): Allow state.type to be 0 + when fts_info is FTS_NSOK; + + This allows find to process an fts entry for which fts_read returns + FTS_NSOK (no stat) but for which find requires only type info. + This happens on file systems that lack dirent.dtype information. + Currently, only reiserfs is handled this way. Until the recent + gnulib/fts change, [97d5b66] "fts: arrange not to stat non-directories + in more cases" this change was not necessary, because fts would always + stat non-dir entries on a file system with no dirent.dtype information. + + However, combined with the gnulib change, this change lets find + avoid many per-non-directory stat-like syscalls (i.e. fstatat) + in some very common cases, like "find . -print" on reiserfs -- + which can be a huge performance savings. + + find: avoid warning about unused local + * find/pred.c (scan_for_digit_differences): Remove declaration of + unused local, "ok". (second time, really applying that patch). + +2009-02-21 James Youngman <jay@gnu.org> + + Update gnulib version. + * import-gnulib.config (gnulib_version): Update from + d4b129b8e5f8a8d1198020fd6fc79310d305936c to + df70a4bf4a1e84171918db09b639ae1a14c2a9b2. This pulls in the + following relevant changes: + fts: correct internal computation of nlinks (optimization-related) + fts: move a function definition "up" (no semantic change) + fts: arrange not to stat non-directories in more cases + fts: add #if guards so that the fts_lgpl module still builds + fts: avoid used-uninitialized error due to recent change + regex: avoid compilation failure with upcoming gcc-4.4 + regex: fix glibc bug 697 + regex: fix glibc bug 9697 + Other changes may also be relevant; for details please check gnulib/ChangeLog. + + Improvements to import-gnulib.config, import-gnulib.sh. + * import-gnulib.config (gpl3_update_files): No longer need to + update the licenses of build-aux/mdate-sh, build-aux/texinfo.tex + or build-aux/ylwrap as they are already GPLv3+. + (modules): Use the strdup-posix module instead of strdup, and stop + using the obsolete modules memcmp and memset, since we now assume + those functions will already be present on the host system. + * import-gnulib.sh (rehack): Be more verbose about which files + actually needed a license edit and which did not. + + Follow gnulib-tool's Makefile.am edit suggestions. + * find/Makefile.am (LDADD): Use $(LIBINTL) instead of @INTLLIBS@ + and use $(LIB_CLOCK_GETTIME) instead of @LIB_CLOCK_GETTIME@. + * lib/Makefile.am: Likewise. + * locate/Makefile.am: Likewise. + * xargs/Makefile.am: Likewise. + * import-gnulib.sh (hack_gnulib_tool_output): Add + m4/gnulib-cache.m4 to EXTRA_DIST in gnulib/Makefile.am, as + gnulib-tool suggests. + +2009-02-21 Jim Meyering <meyering@redhat.com> + + find: avoid warning about unused local, remove unnecessary include. + * find/pred.c (scan_for_digit_differences): Remove declaration of + unused local, "ok". + (do_time_format): Remove decl of "done"; replace sole use with a + constant, "true". Initialize "i" and "n". + * lib/dircallback.c: Don't include unistd.h. Not needed. + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * defs.h: added definition of BLKSIZE for size + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * find.c: added global convert_glob + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * find.c: added error checking for no paths. better error + message if illegal ordering. + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * find.c: changed where we are setting perm_mask to -1. need + to make sure that this happens before every apply_predicate. + +1987-02-19 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: minor bug in -fulldays predicate parser. It + should have set the flag full_days to true. + +1987-02-20 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added ok guts. consolidated exec and ok to using + insert_exec_ok + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added predicate newer + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added guts to name. uses a conversion from + globbing to regexp format. uses regex and regcmp to actually + to the comparison. + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: reworked name so the regexpr pattern includes $ at + the end to force globbing to work correctly. End of the + pattern refers to the end of the filename. + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added -fre, -fullregex predicate to turn off + globbing conversion + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added guts of perm and permmask. added getoct + routine for perm and permmask + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * parser.c: added guts to parse_size + +1987-02-19 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: finished exec. + +1987-02-20 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: added guts to pred_ok + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: added predicate newer + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: added guts to name. useds regex and regcmp to do + regular expression handling. + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: made pred_name only look at the last component of + the path. + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: added guts to perm and permmask. + +1987-02-22 Eric B. Decker <cire@soe.ucsc.edu> + + * pred.c: added guts to pred_size + +1990-03-21 David J. MacKenzie <djm@gnu.org> + + * xargs.c: Indent. Comment and rename some global variables. + (main): Use getopt to parse options. Open new global var + `tty_stream' to /dev/tty if querying requested. + (print_args): Read response from tty_stream, not stdin. + (xmalloc): New function. + Global: Use xmalloc instead of malloc. + (usage): Revise message. + +1990-03-25 David J. MacKenzie <djm@gnu.org> + + * find.c (main): Don't take basename of argv[0]. + + * util.c (xmalloc): New function. + * find.c, parser.c, utils.c: Use xmalloc instead of malloc. + + * pred.c: Remove emulation of regex for BSD and use GNU + library version in regcmp.c instead. + * parser.c: Remove emulation of regcmp for BSD and use GNU + library version in regcmp.c instead. + * Makefile: Link with regex.o and regcmp.o. + Add a DISTFILES macro and dist target. + + * Indent source code. Move RCS logs to this file. + +1990-03-27 David J. MacKenzie <djm@gnu.org> + + * defs.h: Change some #defines to enums. + +1990-05-13 David J. MacKenzie <djm@gnu.org> + + * Replace fprintf, simple_error, and mem_error with error and + usage. + + * Fix string header includes for USG. + +1990-05-14 David J. MacKenzie <djm@gnu.org> + + * find.c: Add variable `stay_on_filesystem' for -xdev. + (process_path): Take an arg determining whether this call is + the root of a tree. Use lstat instead of stat. If + stay_on_filesystem, don't process a dir on a different + filesystem. + + * parser.c (parse_newer): Use lstat instead of stat. Is this right? + (parse_xdev): Set stay_on_filesystem. + + * parser.c: Add dummy parse_nogroup, parse_nouser, + parse_prune, and parse_xdev; to be written later. + * pred.c: Add dummy pred_nogroup, pred_nouser, pred_prune. + + * find.c: Support System V directory library/headers. + + * find.c (process_path): Don't continue with a file that stat + fails on. + + * defs.h, parser.c, pred.c: Change 'u_long' and 'u_short' to + 'unsigned long' and 'unsigned short'. + * find.c, defs.h: Remove 'convert_glob' variable. + * parser.c (parse_fullregex): Function removed. + (parse_name): Remove regular expression code. + (parse_type): Recognize sockets. + Add code to check for missing arguments to many parse_* functions. + * pred.c (pred_name): Use glob_match instead of regex. + +1990-05-16 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_nogroup, parse_nouser): Implement. + * pred.c (pred_nogroup, pred_nouser): Implement. + +1990-05-17 David J. MacKenzie <djm@gnu.org> + + * parser.c (get_oct): Don't consider an empty string a valid number. + + * parser.c (parse_perm): If arg starts with '-', set flag bit + for special comparison (POSIX). + * pred.c (pred_perm): If flag bit set, compare s[ug]id & + sticky bits as well, and return true if the given perms are + set, ignoring other bits. + + * find.c: New global var `exit_status'. Use it. (POSIX) + * parser.c: Set `exit_status' if lstat on -newer file fails. + + * fastfind.c: New file. + * find.c (main): Call fastfind if given only 1 arg. + * util.c (usage): Update message. + * lib/{Makefile,updatedb.sh,bigram.c,code.c}: New files. + * Makefile: Add 'all' and 'install' targets. + +1990-05-18 David J. MacKenzie <djm@gnu.org> + + * modechange.c, modechange.h: New files. + * parser.c (parse_perm): Use mode_compile and mode_adjust to + parse arg, to allow symbolic mode for POSIX. + +1990-05-20 David J. MacKenzie <djm@gnu.org> + + * pred.c (pred_prune): Set new global var `stop_at_current_level'. + * find.c (process_path): Test and reset it. + +1990-05-21 David J. MacKenzie <djm@gnu.org> + + * lib/updatedb.sh: Put BINDIR in PATH. + + * fstype.c: Do nothing if MNTENT_MISSING is defined. + + * fstype.c: New file. + * parser.c (parse_fstype): New function. + * pred.c (pred_fstype): New function. + + * parser.c (parse_newer): Failure to stat -newer file is a + fatal error. + + * pred.c (pred_ok): Flush output before reading. Use getchar + instead of scanf. + + * pred.c (pred_prune): Return false if -depth given. + * find.c: Apply the predicates to the dir when -depth and + -prune are given. + +1990-05-31 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_regex): New function. + * pred.c (pred_regex): New function. + + * fstype.c (read_mtab): If mtab entry has a "dev=" option + (like in SunOS 4.1), use it, so there is no need to stat the + special file later on. + (xatoi, strstr): New functions. + +1990-06-07 David J. MacKenzie <djm@gnu.org> + + * Makefile, find.c: Use DIRENT to control whether <dirent.h> + is used. + +1990-06-09 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_permmask): Allow symbolic mode masks. + (parse_perm): Free 'struct change' when done with it. + (get_oct): Function removed. + + * find.c (process_path): Allow arbitrarily-long filenames. + More efficient string copying. Initialize perm_mask to 07777 + instead of -1. + +1990-06-14 David J. MacKenzie <djm@gnu.org> + + * savedir.c: New file; now find won't run out of file + descriptors in deep trees. + * find.c (process_path): Use savedir. + +1990-06-15 David J. MacKenzie <djm@gnu.org> + + * fstype.c: If MOUNTED isn't defined but MNT_MNTTAB is, use it + instead. True for HP/UX, at least. + +1990-06-17 David J. MacKenzie <djm@gnu.org> + + * listfile.c: New file. + * parser.c (parse_ls): New function. + * pred.c (pred_ls): New function. + + * find.c (main): Remove interface to fastfind, to prevent + conflict with POSIX syntax. + * util.c (usage): Remove fastfind syntax from message. + * fastfind.c (main): New function. + * Makefile: Make fastfind a separate program. + + * find.c (main): Print correct message if a predicate arg is + missing. + + * parser.c (insert_exec_ok): Make args that start with a ';' but + contain other characters not terminate the command. + +1990-06-18 David J. MacKenzie <djm@gnu.org> + + * parser.c [STRSPN_MISSING] (strspn): New function. + +1990-06-19 David J. MacKenzie <djm@gnu.org> + + * lib/updatedb.sh: Prune entries that match PRUNEREGEX. + Split up finding files from computing bigrams. + Use redirection instead of nonportable grep -s to detect sort + failure. Optionally search network filesystems as well as + local ones. + + * pred.c (pred_regex): Match against full pathname instead of + just last element. + * util.c (basename): Return "/", not "", if given "/". + + * find.c (process_path): Fix error in handling "/" directory. + +1990-06-22 David J. MacKenzie <djm@gnu.org> + + * Version 1.0. + +1990-06-24 David J. MacKenzie <djm@gnu.org> + + * Version 1.1. + + * Makefile [DISTFILES]: Add COPYING. + +1990-06-25 David J. MacKenzie <djm@gnu.org> + + * fastfind.c (fastfind): Initialize count to 0. + + * lib/updatedb.sh: Only do regex comparison on directories, + for speed. + + * listfile.c (list_file): Truncate user and group name to 8 chars. + +1990-06-28 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_regex): Set fastmap and translate before + compiling regex. + +1990-07-02 David J. MacKenzie <djm@gnu.org> + + * pred.c: Don't check for invalid comparison types in numeric + predicate functions. + +1990-07-03 David J. MacKenzie <djm@gnu.org> + + * parser.c (strspn): Stop when end of string reached. + + * Version 1.2. + + * Move version number from Makefile to new file version.c. + * parser.c: Recognize new -version predicate. + + * find.c (main): If no predicates that produce output are + given, default to -print if the entire expression is true, not + just the last part of an alternation. + * Print the names of predicates with invalid arguments. + +1990-07-04 David J. MacKenzie <djm@gnu.org> + + * find.c (main): Only enclose expressions that produce no side + effects within `( ... )'. + +1990-07-15 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_and): New function, for compatibility. + +1990-07-16 David J. MacKenzie <djm@gnu.org> + + * defs.h: Don't declare fprintf and printf, in case they have + prototypes in stdio.h (important for functions that use stdarg). + +1990-07-25 David J. MacKenzie <djm@gnu.org> + + * listfile.c (getuser, getgroup): Make uid and gid unsigned + short, not int. + +1990-08-04 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_perm), pred.c (pred_perm): Always compare + bits 07777. + + * locate.c, Makefile: Rename 'fastfind' program to 'locate', + following comment in POSIX.2 draft 10 rationale for find. + +1990-08-12 David J. MacKenzie <djm@gnu.org> + + * xargs.c (main): Tell getopt to not permute. + +1990-08-26 Jim Kingdon <kingdon@pogo.ai.mit.edu> + + * Makefile (TAGS): New target. + +1990-09-12 David J. MacKenzie <djm@gnu.org> + + * parser.c: Add -not as synonym for !. + +1990-09-20 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_maxdepth): New function. + * find.c (process_path): If -maxdepth was given, don't go + more than that many levels deep. + * defs.h: Declare maxdepth. + +1990-09-21 David J. MacKenzie <djm@gnu.org> + + * find.c (process_path): Take DEPTH as an arg instead of ROOT, + and change callers. + +1990-11-01 David J. MacKenzie <djm@gnu.org> + + * Reorganize into subdirectories and add xargs. Rewrite Makefiles. + + * find.c (process_path, main): Allow a maxdepth of 0, meaning + only process command line args. + + * parser.c, pred.c: Add -print0 predicate. + + * xargs.c: Add -0 option and long options. Move standard + library functions into separate files. Use error instead of + fatal and fprintf/perror. Use POSIX macros for examining exit + status from wait. + (read_string): New function. + +1990-11-02 David J. MacKenzie <djm@gnu.org> + + * xargs.c: Exit with status 127 if running commmand fails, as + required by POSIX. + + * fstype.c: Support -fstype for Ultrix (-DFS_GETMNT). + Sun/BSD code is now -DFS_MNTENT. + +1990-11-03 David J. MacKenzie <djm@gnu.org> + + * xargs.c (do_exec): Child process exits with status 255, not + 127, if command can't be run. + +1990-11-05 David J. MacKenzie <djm@gnu.org> + + * find.c (process_path): For -xdev, process filesystem + mountpoints (but don't descend them), instead of skipping them + entirely. + + * find.c, parser.c, defs.h: Add -follow predicate. + + * xargs.c: Change ifdefs to support STDC POSIX systems. + +1990-11-08 David J. MacKenzie <djm@gnu.org> + + * parser.c, pred.c, listfile.c: If not _POSIX_SOURCE, declare + getpwuid and getgrgid. Use them. + + * listfile.c: If not _POSIX_SOURCE, define S_ISDIR and + S_ISBLK. Use them. + + * find.c: Use S_ISDIR instead of S_IFDIR, and define if not + _POSIX_SOURCE. + + * Makefile: Define AR and RANLIB and pass to child makes. + lib/Makefile: Use them. + + * xargs.c (WIFSIGNALED): Redefine so it works. + +1990-11-12 David J. MacKenzie <djm@gnu.org> + + * pred.c (pred_fstype): Free old fs type. + + * fstype.c, pred.c (pred_fstype), parser.c (parse_fstype): + Reread the file system type info. every time a filesystem + mount point is crossed, to allow for automounting. + + * xstrdup.c: New file from fileutils. + + * find.c (process_path): Rename root_dev to current_dev and + make it global, for -fstype. + + * wait.h: New file taken from xargs.c. + + * xargs.c: Make limits.h vs. sys/param.h conditional on + LIMITS_MISSING instead of USG, to accommodate SVR2. + +1990-11-15 David J. MacKenzie <djm@gnu.org> + + * xmalloc.c: New file from fileutils. + + * fstype.c (fstype_to_string): Add case for MFS. + (filesystem_type): Take a pathname as a second arg. + [FS_STATFS] return "unknown" instead of exiting if statfs + fails because of ENOENT. + * pred.c (pred_fstype): Pass the pathname. Set current_dev. + * find.c (process_path): Make root_dev local again. + +1990-11-16 David J. MacKenzie <djm@gnu.org> + + * modetype.h: New file. + parser.c, pred.c: Use it. + +1990-11-20 David J. MacKenzie <djm@gnu.org> + + * Version 2.0. + + * fstype.c [FS_USG_STATFS]: New code. + [FS_STATFS]: For symlinks, statfs the directory the link is in + instead of the link. + * Various files: Conditionalize some declarations on + STDC_HEADERS or _POSIX_SOURCE. + +1990-12-03 David J. MacKenzie <djm@gnu.org> + + * find.c, fstype.c, parser.c, pred.c, util.c: Flush stdout before + writing to stderr, in case they have been redirected to the + same file descriptor. + + * pred.c (launch): Use POSIX wait macros from wait.h. + + * xargs.c (print_xargs): Read from tty_stream, not stdin. + +1990-12-15 David J. MacKenzie <djm@gnu.org> + + * listfile.c: Define major and minor if not defined (as in POSIX). + +1990-12-15 David J. MacKenzie <djm@gnu.org> + + * find.c (main), util.c (usage): Make directory args optional, + defaulting to ".". + +1990-12-20 David J. MacKenzie <djm@gnu.org> + + * fstype.c (filesystem_type) [FS_MNTENT]: Allow for optional + "0x" at front of "dev=" mount option, which amd puts there but + Sun automounter doesn't. + +1990-12-21 David J. MacKenzie <djm@gnu.org> + + * defs.h, parser.c: Remove unused field from `struct exec_t'. + + * xargs.c: Add +no-run-if-empty option to cause the command to + not be run if the input is empty. + + * defs.h (struct exec_t): Change the array of offsets into an + array of `struct path_arg'. + * parser.c (insert_exec_ok): Fill in new fields, to allow "{}" + to be substituted (multiple times) anywhere in an arg to -exec + or -ok. + * pred.c (pred_exec): Add code to substitute "{}" within args. + (pred_ok): After prompting, just run pred_exec. + +1990-12-26 David J. MacKenzie <djm@gnu.org> + + * locate.c, bigram.c, code.c: Attempt to get max. path length + on more kinds of systems, incl. POSIX. + + * pred.c, listfile.c, xargs.c: Get some decls from unistd.h, + if available. + + * find.c, defs.h: Make `cur_day_start' a time_t, not long. + +1991-01-01 David J. MacKenzie <djm@gnu.org> + + * Version 2.1. + +1991-01-10 David J. MacKenzie <djm@gnu.org> + + * wait.h: Include sys/types.h to get pid_t. + + * xargs.c [USG && !STDC_HEADERS]: Only include memory.h if not + _POSIX_SOURCE. + +1991-01-12 David J. MacKenzie <djm@gnu.org> + + * defs.h, find.c, parser.c, pred.c: Remove -permmask option. + +1991-01-18 David J. MacKenzie <djm@gnu.org> + + * bigram.c, code.c, locate.c: Use LIMITS_MISSING, not + _POSIX_SOURCE, to decide whether to include limits.h. + + * parser.c, pred.c, listfile.c: Use POSIX, not _POSIX_SOURCE, + to decide whether to declare getpwuid and getgrgid. + + * xargs.c: Use POSIX, not _POSIX_SOURCE, to determine whether + to include memory.h. + +1991-03-15 David J. MacKenzie <djm@gnu.org> + + * xargs.c (main): Always run the command if some args are left over. + Rename some variables. + +1991-04-05 David J. MacKenzie <djm@gnu.org> + + * Version 2.2. + +1991-07-19 David J. MacKenzie <djm@gnu.org> + + * pred.c, locate.c: Use fnmatch instead of glob_match. + * fnmatch.c, fnmatch.h: New files. + + * Many files: Use string.h if STDC_HEADERS, as well as if USG. + + * locate.c, code.c, bigram.c: Possibly use pathconf to get + PATH_MAX. Use malloc to allocate path arrays. + + * xargs.c: Possibly use sysconf to get ARG_MAX. + (env_size): Make definition unconditional. + (main): Do arg_max adjustment that can't be done with + preprocessor now that ARG_MAX might be a function call. + (do_exec): Exit with status 126 or 127 after failed exec, for + POSIX.2 draft 11.1. + + * xargs.c, pred.c, listfile.c: Use POSIX, not UNISTD_MISSING. + * wait.h: Use POSIX, not WAIT_MACROS_MISSING. + + * COPYING: Use version 2. Update all files. + + * Replace Makefile and lib/Makefile with Makefile.in, + lib/Makefile.in and configure. Update README. + +1991-07-20 David J. MacKenzie <djm@gnu.org> + + * configure: Filter /etc and /usr/etc from path. + + * xargs.c (wait_for_proc): Fix handling of child exit status. + (main): Exit with a nonzero status if any child did. + + * pred.c (launch): Flush stdout and stderr before forking. + + * fstype.c (filesystem_type) [FS_MNTENT]: Skip entries of + type "ignore". + +1991-08-07 David J. MacKenzie <djm@gnu.org> + + * configure, Makefile.in's: Support +srcdir option via VPATH. + Clean up clean targets. + +1991-08-08 David J. MacKenzie <djm@gnu.org> + + * parser.c, pred.c [CACHE_IDS]: Optional code to turn uid and + gid lookups into table lookups. + +1991-08-09 David J. MacKenzie <djm@gnu.org> + + * xargs.c (read_line): Use isblank, to support POSIX locales. + + * fstype [FS_STATVFS]: New code for SVR4, from slootman@dri.nl + (Paul Slootman). + * configure: Figure out when to use it. + + * configure: Check for st_blocks in struct stat. + * listfile.c (ST_NBLOCKS): New macro. + (list_file): Print file's block count. + Use S_ISLNK instead of S_IFLNK. + * fileblocks.c: New file, from fileutils. + +1991-08-14 David J. MacKenzie <djm@gnu.org> + + * parser.c (parse_size), pred.c (pred_size), defs.h (struct + size_t): Allow `k' to follow number to measure size in Kbytes. + * parser.c (parse_size, get_num, insert_num), defs.h (struct + size_t): Use enum comparison_type instead of short. + +1991-08-15 David J. MacKenzie <djm@gnu.org> + + * modetype.h: Define POSIX.1 stat stuff if missing. + * pred.c, parser.c, find.c, fstype.c: Don't define it. + * updatedb.sh: Use a variable substitution method like configure's. + * Makefile.in: Add datadir variable to separate programs from + data file. + + * parser.c, pred.c: Rename -fulldays to -daystart. + + * defs.h, find.c, parser.c, pred.c: Add many new predicates + from Jay Plett (jay@princeton.edu). + +1991-08-21 David J. MacKenzie <djm@gnu.org> + + * Version 3.1. + + * parser.c (parse_fprintf), pred.c (pred_fprintf): Add %k + conversion to print 1K blocks. + + * listfile.c: Print counts of 1K blocks, for consistency with + new fileutils release. Bad timing, there. + + * Version 3.0. + + * pred.c [VOID_CLOSEDIR]: Fake a return value for closedir, + which returns void on some systems, like Sequents. + * configure: Check sys/dir.h for 'void closedir'. + +1991-08-22 David J. MacKenzie <djm@gnu.org> + + * pred.c (pred_fprintf, pred_lname) [_AIX]: Allocate PATH_MAX + byte for link object since st_size is wrong. + + * listfile.c (list_file): Don't convert blocks to kilobytes if + env. var POSIX_ME_HARDER is defined. + + * fstype.c [FS_AIX_STATFS]: New case. + + * configure: Make sure the sys/mount.h is the 4.4BSD version + with grep instead of just testing whether it exists. + + * listfile.c (list_file): Add 1 to number of 512-byte blocks + before dividing to get 1K blocks (so we round up, not down). + +1991-08-23 David J. MacKenzie <djm@gnu.org> + + * pred.c (pred_fprintf): Round block number up to get K. + +1991-08-26 David J. MacKenzie <djm@gnu.org> + + * bigram.c, code.c: Fix handling of PATH_MAX. + Check for anomalous input line lengths. + From Bruce Evans. + +1991-08-28 David J. MacKenzie <djm@gnu.org> + + * Version 3.2. + +1991-09-05 Jim Meyering <meyering@churchy.gnu.ai.mit.edu> + + * parser.c (insert_fprintf): Add `\\' escape and fixed `%%' + interpretation. + * pred.c (pred_fprintf): fixed off-by-one indexing problem + when handling [gGuU] printf formats. + +1991-09-05 David J. MacKenzie <djm@gnu.org> + + * bigram.c, code.c (main): Make path_max int, not unsigned. + * locate.c (main): Check for pathconf failure. + +1991-09-13 David J. MacKenzie <djm@gnu.org> + + * xargs.c [POSIX]: Always use sysconf to get ARG_MAX. + +1991-10-05 Jim Meyering <meyering@churchy.gnu.ai.mit.edu> + + * parser.c (parse_perm): Parse new `-perm +mode' notation. + * pred.c (pred_perm): Interpret same. + +1991-10-17 David J. MacKenzie <djm@gnu.org> + + * xargs.c: Don't determine memory.h based on POSIX, which + doesn't mention it. + +1993-03-23 David J. MacKenzie (djm@gnu.org> + + * defs.h, parser.c, pred.c: Rename some types that conflict + with reserved POSIX.1 namespace (ended in _t). + + + +1993-03-29 David J. MacKenzie (djm@gnu.org>. + + * parser.c (make_segment, insert_fprintf), pred.c + (pred_fprintf): Add '%F' to print filesystem type. + + * parser.c (parse_fprintf): Check if second arg is missing. + +1993-03-31 David J. MacKenzie (djm@gnu.org>text; nuke cp. + +1993-03-31 Jim Meyering (meyering@comco.com) + + * parser.c: Define isascii macro to be 1 also if STDC_HEADERS. + * xargs.c: Ditto. + +1993-08-01 David J. MacKenzie (djm@gnu.org>. + (filesystem_type_uncached) [AFS]: Call it if the fs type is + otherwise unknown. + + * parser.c (parse_size): Recognize b and w suffixes for dd + compatibility. + + * code.c (puthalfword): New function. + (main): Call it. + * locate.c (gethalfword): New function. + (locate): Call it. + From ifado!wb@germany.eu.net (Wilhelm B. Kloke). + + * listfile.c: Include pathmax.h. + (get_link_name): Always allocate PATH_MAX + 1 bytes for + readlink buffers. + * pred.c (pred_fprintf, insert_lname): Call get_link_name. + + * fstype.c (filesystem_type, filesystem_type_uncached), + listfile.c (list_file): Take an arg for the path to access. + * pred.c (pred_ls, pred_fstype, pred_fprintf): Pass it. + + * find.c (process_dir): Renamed from scan_directory. + + Changes from jrs@world.std.com (Rick Sladkey) to chdir into + subdirectories instead of using string concatenation, for speed: + * find.c (process_top_path): New function. + (main): Call it, and xgetcwd. + (process_path, scan_directory): Take new arg, the pathname + relative to ".". Use it and pass it on. + * pred.c (pred_and, pred_comma, pred_negate, pred_or, + pred_xtype, pred_fprintf, pred_empty, insert_lname): + access rel_pathname instead of pathname. + (launch): chdir to starting_dir. + * defs.h: Declare rel_pathname and starting_dir. + * find.c: Define them. + + * xgetcwd.c: New file. + + * updatedb.sh: Recognize -fstype NFS as well as nfs. + * locate.c (patprep): Skip trailing character classes correctly. + From luik@pharao.stgt.sub.org (Andreas Luik). + + * parser.c (parse_group): Make gid a gid_t, not short or int. + (parse_nogroup): Cast gid to unsigned when using it as an array index. + (parse_user, parse_nouser): Similar changes for uid. + * defs.h: Use uid_t and gid_t. + + * parser.c (parse_help): New function. + (parse_table): Add --version, -help, and --help options. + Rename struct parser_table_t to struct parser_table. + (parse_version): Exit after printing message, on + stdout not stderr. + + * xargs.c, locate.c (main, usage): Add --version and --help + options. + +1994-02-13 Jim Meyering (meyering@comco.com) + + * man/Makefile.in [man1ext, man5ext]: Set man5ext (not man1ext) to 5. + +1994-09-20 David MacKenzie <djm@gnu.org> + + * configure.in: Update for Autoconf v2. + * find/pred.c lib/savedir.c: Use new symbols for dir header. + * locate/updatedb.sh: Add --help option. + +1994-09-21 David MacKenzie <djm@gnu.org> + + * locate/locate.c (locate): Warn if database is >8 days old. + From Ian Lance Taylor. + + * xargs/xargs.c (do_exec), find/pred.c (launch): Set SIGCHLD to + default. From tsi@gpu.srv.ualberta.ca (Marc Aurele La France). + * find/find.c pred.c util.c lib/listfile.c: Remove fflush(stdout) + calls before error. error does it, and doesn't trash errno. + From tsi@gpu.srv.ualberta.ca (Marc Aurele La France). + + * find/fstype.c (filesystem_type_uncached): Don't trust mtab dev + number on HPUX. From Andreas Luik <luik@isa.de>. + (filesystem_type_uncached): Don't cache unknown file system + types. From casper@fwi.uva.nl (Casper Dik). + + * locate/updatedb.sh: Collect results in temp file and rename it + atomically. From Andreas Luik <luik@isa.de>. + + * xargs/xargs.c (parse_num): Print a long using %ld. From Jim + Meyering. + + * find/defs.h find.c parser.c pred.c util.c, lib/nextelem.c: + Emulate strchr and strrchr with index and rindex, not vice versa. + + Remove man directory; move man pages to the directories of the + programs they document. + + * locate/frcode.c: Renamed from code.c. + * locate/frcode.c (put_short): Renamed from puthalfword. + * locate/locate.c (get_short): Renamed from gethalfword. + (last_literal_end): Renamed from patprep. + (locate): Recognize old-format databases too. + * locate/locatedb.h: Add defines for old-format databases. + * locate/bigram.c locate/code.c: Put back programs to create + old-format databases. + * locate/updatedb.sh: Take --old option to use them. + +1994-09-22 David MacKenzie <djm@gnu.org> + + * locate/locate.c (last_literal_end): Dynamically allocate enough + memory for the subpattern. + +1994-09-23 David MacKenzie <djm@gnu.org> + + * lib/listfile.c: Change #ifdef S_IFLNK to #ifdef S_ISLNK. + From Andreas Luik <luik@isa.de>. + +1994-09-25 David MacKenzie <djm@gnu.org> + + * find/* [__STDC__]: Prototype declarations. + + * locate/updatedb.sh: Account for renaming code and frcode. + + * find/find.c (process_path): Store dev and ino of directories in + current branch to avoid symlink loops. From DJ Delorie + <dj@ctron.com>. + (process_dir): If following symlinks, don't cd to ..; instead, + cd to the starting directory and then to the parent directory. + (main) [HAVE_FCHDIR]: Save the dev, ino of the starting directory. + (process_top_path) [HAVE_FCHDIR]: Use it. + * find/pred.c (launch) [HAVE_FCHDIR]: Likewise. + * defs.h [HAVE_FCHDIR]: Declare starting_desc instead of starting_dir. + * configure.in: Check for dev_t, ino_t, fchdir, fcntl.h. + +1994-09-26 David MacKenzie <djm@gnu.org> + + * configure.in: Add AC_CONFIG_HEADER. + * find/*.c locate/*.c xargs/*.c: Include config.h. + * locate/updatedb.sh: Add --version; --old -> --old-format. + +1994-09-27 Kaveh R. Ghazi (ghazi@noc.rutgers.edu) + + * configure.in: Add AC_HEADER_STAT. + * lib/listfile.c, lib/modetype.h: Add STAT_MACROS_BROKEN. + + * find/pred.c: Move the inclusion of defs.h ahead of the first + test of _POSIX_VERSION. + + * lib/xgetcwd.c: Remove _POSIX_VERSION, rely only on HAVE_GETCWD. + +1994-09-29 David J. MacKenzie (djm@gnu.org> + + * find/fstype.c (fstype_to_string): Add more cases. Use + INITMOUNTNAMES if defined. + * find/defs.h: Change boolean typedef from char to int. + * configure.in: Check for mktime. + +1994-10-01 David MacKenzie <djm@gnu.org> + + * find/pred.c (launch): Use pid_t. + + * xargs/xargs.c (EOF_STR): Define and use. + [__STDC__]: Declare xrealloc and xmalloc using void *. + * find/defs.h: Likewise. + + * find/defs.h: Only declare stpcpy if !HAVE_STPCPY. + + * xargs/xargs.c: Replace most global variables with structure + pointers passed as arguments. Use pid_t. + * lib/wait.h: Include sys/wait.h if HAVE_SYS_WAIT_H. + * configure.in: Call AC_TYPE_MODE_T and AC_HEADER_SYS_WAIT. + + * xargs/xargs.c: Improve paging performance and memory + fragmentation by building command arguments in a pre-allocated + buffer and re-implementing the child pid list as an expandable + array. From tsi@gpu.srv.ualberta.ca (Marc Aurele La France). + +1994-10-04 David MacKenzie <djm@gnu.org> + + * locate/updatedb.sh Makefile.in: Add substitutions to get + the transformed program names. + + * xargs/xargs.c: Put back the global variables for now. + Rename some variables. Increase default args_per_exec. + Use boolean where applicable. + (main): Reduce default arg_max by 2048 for POSIX.2. + (read_string): Don't check EOF string. + (read_line, read_string): Take initial args size into account. + +1994-10-05 David MacKenzie <djm@gnu.org> + + * xargs/xargs.c (main, read_line, read_string, do_exec): Pass + along the lengths of the args. + (main): Calculate length of replace_pat. + (push_arg, do_insert): Use those lengths instead of calculating + them. + +1994-10-12 David J. MacKenzie (djm@gnu.org> + + * find/parser.c: Add -mount as an alias for -xdev. + From Klaus.Steinberger@physik.uni-muenchen.de (Klaus Steinberger). + + * lib/modechange.c: Make umask_value unsigned short. + + * xargs/xargs.c: Use symbolic constants in longopts. + From Chapman Flack. + +1994-10-18 David J. MacKenzie <djm@gnu.org> + + * find/defs.h parser.c pred.c tree.c util.c: Globally change + "victim" to "primary". + + * find/parser.c (insert_fprintf): For 'c' format, don't lose the + need_stat information. From Chapman Flack. + + * doc/find.texi perm.texi: New files. + * configure.in: Configure the doc directory. + + * find/pred.c (pred_regex): Check that the regex matched the whole + file name. + +1994-10-25 David J. MacKenzie <djm@gnu.org> + + * find/pred.c (pred_fprintf): Flush output after \c. From Chapman + Flack. + + * find/parser.c (insert_fprintf): Warn about unrecognized \ and % + sequences. + +1994-11-02 David J. MacKenzie <djm@gnu.org> + + * The big 4 0. + + * lib/listfile.c find/defs.h (list_file): Take a stream arg. + * find/pred.c (pred_ls): pass it. + * find/parser.c pred.c defs.h (parse_fls, pred_fls): New functions. + +1994-11-03 David J. MacKenzie <djm@gnu.org> + + * Version 4.1. + + * locate/Makefile.am: Move updatedb from LIBSCRIPTS to SCRIPTS. + + * Makefile.am (distname): Change distribution name from find to + findutils. + + * testsuite/config/unix.exp: Don't abuse xfail; simulate it correctly. + + * locate/Makefile.am (CLEANFILES): Fix typo. + +1996-05-27 Kevin Dalley <kevind@rahul.net> + + * updatedb.sh: when NETPATHS is used, only su to NETUSER if whoami + is root +1996-04-27 Kevin Dalley <kevind@rahul.net> + + * lib/getline.c (getstr): verify that nchars_avail is *really* + greater than 0; set *n to a large enough number, stops some core + dumping + +1996-12-28 Kevin Dalley <kevind@rahul.net> + * added PRUNEFS as variable in updatedb and --prunefs as option to + updatedb + +1997-01-11 Kevin Dalley <kevind@rahul.net> + + * locate/updatedb.sh: add --localuser option to updatedb, which + allows find to be run as nobody, while allowing database file to + be created as root, change suggested by + <Bernd_Eckenfels@Wittumstrasse13.76646Bruchsal.de> + +1997-03-03 Kevin Dalley <kevind@rahul.net> + + * xargs/xargs.c: xargs fixed to prevent occasional core dumping. + +1998-02-08 Kevin Dalley <kevind@rahul.net> + + * locate/locate.c: corrected get_short so that it correctly + returns negative numbers. + + * remove declarations of various string functions. Removing the + declarations almost matches the GNU Coding Standards. + +1998-02-27 Kevin Dalley <kevind@rahul.net> + + * locate/locate.c: add --existing option to locate, which only + prints the names of files which still exist + +1998-08-30 Kevin Dalley <kevind@rahul.net> + + * lib/nextelem.c: removed declaration of strdup and free, which + meets GNU coding standards and allow compilation on sparc + + * corrected explanation of -amin option which described hours + instead of minutes + +1998-09-20 Kevin Dalley <kevind@rahul.net> + + * removed more function declarations to meet GNU coding standards + +1998-09-26 Kevin Dalley <kevind@rahul.net> + + * lib/getline.c: fix getstr so that it correctly handles long file + paths + +1998-12-04 Kevin Dalley <kevind@rahul.net> + + * lib/nextelem.c: removed declaration of strdup and free, which + meets GNU coding standards and allows compilation on more + platforms. + + * find.texi: corrected explanation of -amin option which described + hours instead of minutes + +1999-01-30 Kevin Dalley <kevind@rahul.net> + + * added const to declaration of basename, which should satisfy + Linux as well as Hurd (fixes bug #31325). + +1999-08-02 Kevin Dalley <kevind@rahul.net> + + * AUTHORS: added file listing AUTHORS + + * lib/Makefile.am: modified code for EXTRA sources + +1999-08-08 Kevin Dalley <kevin@seti.org> + + * Version 4.1.1 + + * README-alpha: added alpha README file + + * find/defs.h: move lstat declarations into defs.h + + * xargs/Makefile.am, testsuite/Makefile.am, locate/Makefile.am, + lib/Makefile.am, find/Makefile.am, doc/Makefile.am, configure.in, + Makefile.am: update for automake-1.4 + +1999-08-15 Kevin Dalley <Kevin Dalley <kevind@rahul.net> + + * find/version.c: version string is now set by config.h + +1999-08-15 Mark Kettenis <kettenis@gnu.org> + + * xargs/xargs.c (LONG_MAX): Define if necessary. + (main): If ARG_MAX is -1 (that is sysconf + (_SC_ARG_MAX) returns -1) the system does not impose a limit. In + that case, use LONG_MAX as the limit. + +1999-08-15 Kevin Dalley <Kevin Dalley <kevin@seti.org>> + + * find/fstype.c (filesystem_type_uncached): a stat failure with + EACCESS will ignore this file system keep on looking. Patch + suggested by Vincent Danjean <vdanjean@ens-lyon.fr>. + +2000-01-17 Jonathan R. Ferro <jferro@corwin.ece.cmu.edu> + + * find/find.c (process_path): fix problem with "-depth" which is + tested in depth.exp test. + +2000-01-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * find/tree.c (opt_expr): Never rearrange the arguments of the + comma operator, since it is not commutative. Remove useless + assignment.2 + +2000-01-17 Kevin Dalley <kevind@rahul.net> + + * doc/find.texi (Multiple Files): placed missing xargs in examples + + * find/testsuite/find.gnu/depth.exp: added find tests to test + "-depth" bug. + + * doc/find.texi: include version.texi for automatic determination + of version number, update bug report email address to + bug-findutils@gnu.org. + (Combining Primaries With Operators): add indices for " ,", "()", + "-a", "-o", etc. + +2000-01-18 Kevin Dalley <kevind@rahul.net> + + * Version 4.1.2 + + * locate/Makefile.am: remove creation of updatedb, since it is now + made by configure + + * configure.in: updatedb is now created by configure. + + * xargs/Makefile.am: added testsuite to xargs directory + + * locate/updatedb.in: updatedb is now created by configure + + * locate/frcode.c, locate/code.c, locate/bigram.c: change return + from main to int. Replace getstr with getline, where possible. + + * locate/Makefile.am: place frcode, code, bigram in + libexec_PROGRAMS + + * lib/xstrdup.c, lib/xmalloc.c, lib/xgetcwd.c, lib/xalloc.h, + lib/strtol.c, lib/strstr.c, lib/strftime.c, lib/strdup.c, + lib/stpcpy.c, lib/stat.c, lib/savedir.h, lib/savedir.c, + lib/regex.h, lib/regex.c, lib/realloc.c, lib/pathmax.h, + lib/modechange.h, lib/modechange.c, lib/mktime.c, lib/memset.c, + lib/memcmp.c, lib/malloc.c, lib/lstat.c, lib/idcache.c, + lib/getopt1.c, lib/getopt.c, lib/getopt.h, lib/getline.c, + lib/getline.h, lib/fnmatch.c, lib/fnmatch.h, lib/filemode.c, + lib/filemode.h, lib/fileblocks.c, lib/error.c, lib/error.h, + lib/dirname.c, lib/alloca.c: updated to newer version of file from + fileutils. + + * find/version.c: version number is now automatically generated by + configure. + + * find/fstype.c (filesystem_type_uncached): fixes bug described as + follows: When 'find' looks for a fstype, it parses the /etc/mtab + until it finds the good line. But, if there is, before the good + line, a line whose mountpoint is unreachable, it fails. + + * doc/texinfo.tex: updated to newer version + + * doc/find.texi: added version.texi, fixed a few documentation bugs. + + * configure.in: new m4 features. + + * Makefile.am: moved testsuite to below corresponding directories + find and xargs. + + * acconfig.h: updated to match new m4 files. + + * m4: added m4 directory, largely borrowed from Jim Meyering's + fileutils. + +2000-01-22 Kevin Dalley <kevind@rahul.net> + + * added intl directory. + * created po directory and added existing po files from + http://www.iro.umontreal.ca/contrib/po/HTML + + * Added internationalization, only with slightly out of date po + files for many locales. + +2000-01-24 Kevin Dalley <kevind@rahul.net> + + * lib/xmalloc.c, lib/regex.c, lib/getopt.c: internationalization + works with current version of gettext. + + * lib/getline.h : added declaration of getstr. + * lib/Makefile.am (libfind_a_SOURCES): added getline.[ch] to + standard compilation. Added internationalization. + * find/Makefile.am (INCLUDES): corrected -I options for building + in other directories. + (LDADD): changes for internationalization. + + * configure.in (ALL_LINGUAS): added internationalization. + getline.c is always compiled and linked, because of getstr. + AM_GNU_GETTEXT + + * Makefile.am: + (DISTCLEANFILES): added intl/libintl.h + (AUTOMAKE_OPTIONS): added gnits to AUTOMAKE_OPTIONS + (SUBDIRS): added intl and po + + * acconfig.h: added internationalization values + + * THANKS: added thanks file for gnits compatibility. + +2000-01-26 Kevin Dalley <kevind@rahul.net> + + * po/POTFILES.in: added list of files with translatable strings. + + * de.po, es.po, fr.po, it.po, ko.po, nl.po, pl.po, pt_BR.po, + ru.po, sv.po: New, slightly out of date, files imported from the + Translation Project: http://www.iro.umontreal.ca/contrib/po/HTML/, + German, Spanish, French, Italian, Korean, Dutch, Polish, Brazilian + Portuguese. + + +2000-01-26 Kevin Dalley <kevind@rahul.net> + + * Version 4.1.3 + + * acconfig.h: added internationalization. + + * intl/*: copied from tar-1.13.17. + + * locate/Makefile.am, locate/locate.c, locate/code.c: + internationalized file. + + * locate/frcode.c, locate/bigram.c: include headers from ../lib + directory. + + * xargs/Makefile.am, xargs/xargs.c: internationalized directory. + +2000-02-12 Kevin Dalley <kevind@rahul.net> + + * lib/wait.h: updated address. + +2000-02-13 Kevin Dalley <kevind@rahul.net> + + * configure.in: removed AC_ARG_PROGRAM, which is already in + AM_INIT_AUTOMAKE. + + * locate/Makefile.am (updatedb), locate/updatedb.sh: add + transforms of find, frcode, bigram, and code back into + updatedb.sh, which were accidentally removed. + +2000-02-17 Kevin Dalley <kevind@rahul.net> + + * po/it.po: new version of Italian file. + + * locate/updatedb.sh (prunefs_exp): have sed statement use '*' + rather than the often unsupported '+'. + +2000-02-23 Kevin Dalley <kevind@rahul.net> + + * po/ChangeLog: removed, merged with top-level ChangeLog. + + * po/de.po: new version of German file. + + * po/gl.po, po/et.po: new languages, Estonian and Galician. + + * locate/updatedb.sh (PRUNEFS): enclose paths in quotes + +2000-02-26 Kevin Dalley <kevind@rahul.net> + + * Version 4.1.4 + + * lib/strtoul.c: added to distribution + + * configure.in: added strtoul to AC_REPLACE_FUNCS + + * configure.in: added jm_CHECK_ALL_TYPE + +2000-03-11 Kevin Dalley <kevind@rahul.net> + + * lib/basename.c: Add file from libit. + * lib/Makefile.am (libfind_a_SOURCES): add basename.c since it is + no longer replaceable. + + * find/util.c: Remove definition of basename, which is now in + lib/basename.c (as base_name). + * find/pred.c: Use base_name, not basename. + * find/defs.h: Likewise. + + * configure.in : Don't replace basename. Now we use only + base_name. + +2000-04-05 Kevin Dalley <kevind@rahul.net> + + * xargs/Makefile.am: add ansi2knr + + * xargs/xargs.c: add macros PARAMS rather than P_. Add + prototypes. + + * po/POTFILES: new file listing all POFILES. + + * m4/gl.po, m4/et.po: new files + + * m4/Makefile.am.in: updated file + + * m4: update directory + + * locate/Makefile.am: create updatedb from updatedb.sh + + * locate/updatedb.sh, locate/updatedb.in: removed file. Replaced + by updatedb.sh + + * locate/frcode.c, locate/code.c, locate/bigram.c: add macros + PARAMS rather than P_. Add prototypes. + + * lib/xstat.in: new file + + * lib/Makefile.am: update to latest versions of library files. + + * find/testsuite/Makefile.am: add CLEANFILES + + * find/util.c: remove definition of basename + + * find/util.c, find/tree.c, find/pred.c, find/parser.c, + find/fstype.c, find/find.c, find/defs.h: add macros PARAMS rather + than P_, for consistency, change to prototypes + + * find/Makefile.am: Add prototypes and ansi2knr + + * configure.in: add Galition and Estonian languages. + Miscellaneous other fixes. + + +2000-04-02 Paul Eggert <eggert@twinsun.com> + + Add support for large files, and port to Solaris 8 and earlier + versions. + + * lib/human.c (getenv): Depend on NEED_GETENV_DECL, not + HAVE_DECL_GETENV. + + * lib/strftime.c (my_strftime): Make sure we call the system + strftime, not ourselves, when invoking the underlying strftime. + + * m4/check-decl.m4 (jm_CHECK_DECLS): Remove memchr, nanosleep. + + * m4/jm-macros.m4 (jm_MACROS): Don't check for utime.h. Do not + require jm_BISON, jm_CHECK_TYPE_STRUCT_UTIMBUF, jm_FUNC_LCHOWN, + jm_FUNC_CHOWN, jm_FUNC_NANOSLEEP, jm_FUNC_GROUP_MEMBER, + jm_FUNC_PUTENV, jm_FUNC_GETGROUPS, AM_FUNC_GETLOADAVG, + jm_SYS_PROC_UPTIME, jm_FUNC_FTRUNCATE, jm_FUNC_UTIME. Do not + replace strcasecmp, dup2, gethostname, getusershell, stime, + strcspn, strpbrk, euidaccess, mkdir, rmdir, rpmatch, strndup, + strverscmp, memchr, memmove. Do not check for declaration of + lchown. Remove invocations of AM_FUNC_OBSTACK, AM_FUNC_STRTOD, + POW_LIBM, jm_LANGINFO_CODESET, jm_ICONV. Remove df tests. + (jm_CHECK_ALL_TYPES): Include <sys/stat.h> when checking for + struct stat.st_blksize. + + * m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Set environment variable + in shell rather than using putenv, which isn't portable. + + * COPYING, lib/alloca.c, lib/dirname.c, lib/error.c, + lib/savedir.c, lib/strstr.c, m4/check-decl.m4, m4/d-ino.m4, + m4/d-type.m4, m4/getline.m4, m4/jm-glibc-io.m4, m4/jm-macros.m4, + m4/jm-mktime.m4, m4/ls-mntd-fs.m4, m4/memcmp.m4, m4/prereq.m4, + m4/readdir.m4, m4/regex.m4, m4/strftime.m4, m4/uintmax_t.m4: Sync + to latest version from sh-utils-2.0g. + + * config.guess, config.sub, lib/argmatch.c, lib/argmatch.h, + lib/human.c, lib/human.h, lib/memcpy.c, lib/quotearg.c, + lib/quotearg.h, lib/strtoull.c, lib/strtoumax.c, + lib/xstrtoumax.c, m4/c-bs-a.m4, m4/gettext.m4, + m4/largefile.m4, m4/lcmessage.m4, m4/link-follow.m4, + m4/progtest.m4, m4/strerror_r.m4, m4/timespec.m4, + m4/xstrtoumax.m4: New files, taken from sh-utils-2.0g. + + * lib/ansi2knr.1, lib/ansi2knr.c, lib/basename.c, lib/getopt.h, + lib/fnmatch.c, lib/fnmatch.h, lib/modechange.c: Sync to latest + unreleased version of GNU tar (between 1.13.17 and 1.13.18). + + * lib/basename.h, lib/waitpid.c: New files, taken from same + version of GNU tar. + + * lib/regex.c, lib/regex.h: Sync to GNU grep 2.4.2. + + * lib/posix/Makefile.am, lib/posix/regex.h: New files, taken from + GNU grep 2.4.2. + + * lib/strftime.c: Sync to textutils 2.0e. + + * acconfig.h, depcomp, lib/strcasecmp.c, m4/check-type.m4, + m4/const.m4, m4/decl.m4, m4/lfs.m4, m4/mktime.m4, m4/perl.m4, + m4/putenv.m4, m4/uptime.m4, m4/utimbuf.m4, m4/utime.m4, + m4/utimes.m4: Remove these files; no longer needed. + + * configure.in (AC_CANONICAL_HOST, AC_SYS_LARGEFILE, + jm_AC_TYPE_UINTMAX_T): Add. + (CACHE_IDS, FSTYPE_STATVFS, FSTYPE_USG_STATFS, FSTYPE_AIX_STATFS, + FSTYPE_MNTENT, FSTYPE_STATFS, FSTYPE_GETMNT): Add comment, so that + we don't need acconfig.h. + (AC_CHECK_TYPE): Add ssize_t. + (AC_REPLACE_FUNCS): Add waitpid. + (AC_CHECK_FUNCS): Remove basename. + (AC_FUNC_MKTIME): Remove. + (LIBOBJS): Add no-ops to work around automake 1.4 bug. + (AC_OUTPUT): Add lib/posix/Makefile. + + * find/defs.h: Include <config.h>, <sys/types.h>, <sys/stat.h>, + <stdio.h>, <limits.h>, <inttypes.h>. All includers changed to not + include these files, and to include "defs.h" first (since config.h + must be included first). + (CHAR_BIT, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR, + S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, MOD_WXUSR, + MODE_R, MODE_RW, MODE_RWX, MODE_ALL): New macros. + (enum permissions_type): New enum. + (struct long_val.negative): New member. + (struct long_val.l_val): Now uintmax_t, not unsigned long. + (struct size_val.size): Likewise. + (struct perm_val): New type. + (struct predicate.perm): Now struct perm_val, not unsigned long. + (struct predicate.type): Now mode_t, not unsigned long. + (list_file): New parameters current_time, output_block_size. + All callers changed. + (savedir, basename): Remove decls. + (output_block_size, start_time): New extern vars. + + * find/find.c: Include <human.h>, <savedir.h>. + (output_block_size, start_time): New vars. + (main): Initialize them. No need to check for negative st_size, + since savedir now does it for us. + + * find/fstype.c: Include "dirname.h". + (xatoi): Remove. + (filesystem_type_uncached): Use xstrtoumax instead of xatoi. + + * find/parser.c: Include "xstrtol.h". + (get_num_days, get_num, parse_amin, parse_cmin, parse_mmin, + parse_size, parse_used, insert_time, insert_num): Compute using + uintmax_t, not unsigned long. + (parse_amin, parse_cmin, parse_mmin, parse_used, insert_time): + Keep track of whether time was negative before converting it to an + unsigned type. + (parse_daystart): Don't assume that localtime succeeds; e.g. it + can fail with 64-bit time_t and 32-bit tm_year. + (parse_perm, insert_type): Compute using mode_t, not unsigned + long. + (insert_type): Use symbolic constants like MODE_ALL instead of + traditional ones like 07777. Set new kind member to indicate + permissions type, instead of using unportable magic numbers. + (make_segment): We will use human_readable to convert most numeric + values, so simplify the cases. + (get_num_days): Write in terms of get_num, to avoid duplicated + code. + (insert_time, insert_num): When debugging, convert large values to + uintmax_t and output with %ju. + (get_num): Use xstrtoumax to do the real work. + + * find/pred.c: Include "basename.h", "human.h". + (DEV_BSIZE, ST_BLKSIZE, ST_NBLOCKSIZE): New macros, taken from + fileutils. + (ST_NBLOCKS): Replace with fileutils defn. + (MAX): New macro. + (ctime_format): New function. + (pred_fprintf, format_date): Use human_readable to output large + numbers portably. + (pred_fprintf): Use ctime_format to output ctime-style dates. Use + base_name to compute the base name of a path. With %m, output the + mode portably using traditional numbers, even if the host uses + some other numbering scheme. + (pred_iname, pred_name): basename -> base_name. + (pred_perm): Use new kind member to deduce permissions type, + instead of relying on magic numbers. + (pred_size): Compute using uintmax_t, not unsigned long. Avoid + overflow if file size is near the maximum. + (pred_type): Compute using mode_t, not unsigned long. + (launch): Use waitpid, not wait. Check for EINTR. + (format_date): Don't assume that localtime succeeds. + + * find/util.c (basename): Remove; we now use base_name. + + * lib/Makefile.am (SUBDIRS): New macro. + (libfind_a_SOURCES): Add argmatch.h, argmatch.c, basename.h, + basename.c, human.c, human.h, quotearg.c, quotearg.h, xstrtoumax.c. + Remove error.h, error.c, getline.c. + (EXTRA_DIST): Add mktime.c, regex.c. + + * lib/listfile.c: Include "human.h". + (alloca): Declare, or include appropriate files to declare. + (DEV_BSIZE, ST_NBLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE): New macros. + (convert_blocks): Remove. + (list_file): New current_time and output_block_size args. + Revamp quite a bit, to handle large numbers correctly + and to match GNU ls behavior more closely. + + * m4/Makefile.am (EXTRA_DIST): Add c-bs-a.m4, gettext.m4, + largefile.m4, lcmessage.m4, link-follow.m4, progtest.m4, + strerror_r.m4, xstrtoumax.m4. Remove check-type.m4, const.m4, + decl.m4, lfs.m4, mktime.m4, perl.m4, putenv.m4, timespec.m4, + uptime.m4, utimbuf.m4, utime.m4, utimes.m4. + + * xargs/xargs.c (wait_for_proc): Retry wait if it fails with + errno == EINTR. + +2000-04-12 Kevin Dalley <kevind@rahul.net> + + * doc/find.texi, doc/permi.texi: fix spellings, add LocalWords. + + * lib/Makefile.am: put getline.c back into libfind_a_SOURCES, + since getstr is needed. + + * Version 4.1.5 + + * po/POTFILES.in: updated list of files, updated po files. + + +2000-05-13 Kevin Dalley <kevind@rahul.net> + + * find/tree.c (opt_expr): move iname and ipath to the front of the + list of arguments. + + * doc/find.texi (Directories): changed wording for "-prune". + + * find/parser.c (parse_prune): set side_effects to true, to + prevent prune from being moved in opt_expr. + +2000-08-24 Kevin Dalley <kevind@rahul.net> + + * doc/find.texi (Invoking xargs): changed @var{-s} to @samp{-s}. + +2000-10-09 Kevin Dalley <kevind@rahul.net> + + * lib/fnmatch.c, lib/fnmatch.h: reverted to older version of + fnmatch which works with Solaris. + + * locate/testsuite/config/unix.exp: dejagnu unix.exp + + * xargs/testsuite/config/unix.exp: remove temporary file + + * xargs/xargs.c: spelling correction + + * m4/prereq.m4: updated and changed some macros + + * m4/jm-macros.m4: replaced jm_FUNC_FNMATCH with + kd_FUNC_FNMATCH_CASE_REPL + + * m4/timespec.m4, m4/strerror_r.m4, m4/mbstate_t.m4, + m4/largefile.m4, m4/gettext.m4, m4/fnmatchcase.m4, m4/d-type.m4, + m4/d-ino.m4, m4/c-bs-a.m4: new m4 macros. + + * m4/Makefile.am: add fnmatchcase.m4 and mbstate_t.m4 + + * locate/testsuite/locate.gnu/ignore_case3.xo, + locate/testsuite/locate.gnu/ignore_case3.exp, + locate/testsuite/locate.gnu/ignore_case2.xo, + locate/testsuite/locate.gnu/ignore_case2.exp, + locate/testsuite/locate.gnu/ignore_case1.xo, + locate/testsuite/locate.gnu/ignore_case1.exp, + locate/testsuite/config/unix.exp: tests related to "--ignore-case" + option. + + * locate/testsuite/locate.gnu: testsuite directory + + * locate/testsuite/Makefile.am (Repository): + + * locate/testsuite: add directory for locate testsuite + + * po/findutils.pot: updated file + + * po/sv.po, po/ru.po, po/pt_BR.po, po/pl.po, po/nl.po, po/ko.po, + po/it.po, po/gl.po, po/fr.po, po/et.po, po/es.po, po/de.po: + updated various po files. + + * locate/updatedb.sh: export TMPDIR, which is used by child + processes. + + * locate/locate.1, locate/locate.c: add "--ignore-case" option. + + * locate/Makefile.am: add testsuite subdirectory + + * find/testsuite/find.gnu/perm.xo, + find/testsuite/find.gnu/perm.exp, + find/testsuite/find.gnu/name-opt.xo, + find/testsuite/find.gnu/name-opt.exp: added test suites + + * configure.in: add locate/testsuite/Makefile + + * doc/find.info*: removed from repository + + * doc/find.texi: add documentation for "-i" option. + + * aclocal.m4: removed from repository, as it is generated. + + * find/pred.c: fixes problem with "find -perm -0100". + + * lib/lstat.c, lib/stat.c: removed from repository. These files + are generated from lib/xstat.in. + +2000-10-10 Kevin Dalley <kevind@rahul.net> + + * locate/testsuite/config/unix.exp (Repository): + + * po/POTFILES.in: added lib/rpmatch.c + +2000-10-10 Kevin Dalley <kevind@rahul.net> + + * locate/testsuite/Makefile.am: Added missing \ at end of + EXTRA_DIST lines. + + * locate/testsuite/locate.gnu/ignore_case3.xo, + locate/testsuite/locate.gnu/ignore_case3.exp, + locate/testsuite/locate.gnu/ignore_case2.exp, + locate/testsuite/locate.gnu/ignore_case1.xo, + locate/testsuite/locate.gnu/ignore_case1.exp: place locatedb + inside tmp directory, add subdir directory under tmp. + + * locate/testsuite/config/unix.exp: clean up tmp after test is + finished. + +2000-10-10 Bruno Haible <haible@ilog.fr> + + * lib/Makefile.am (libfind_a_SOURCES): added yesno.c + + * lib/yesno.c, lib/rpmatch.c: new files. + + * find/pred.c: use function yesno(). + +2000-10-11 Kevin Dalley <kevind@rahul.net> + + * Version 4.1.6 + + * locate/testsuite/config/unix.exp: set PRUNEFS to "" for the + testsuite. + +2000-10-13 Kevin Dalley <kevin@seti.org> + + * depcomp, lib/depcomp: depcomp moved from lib to . + + * po/sv.po, ru.po, pt_BR.po, pl.po, nl.po, ko.po, it.po, gl.po, + fr.po, findutils.pot, et.po, es.po, de.po: updated after addition + of lib/rpmatch.c + +2000-10-20 Kevin Dalley <kevin@seti.org> + + * xargs/xargs.c, locate/updatedb.sh, locate/locate.c (usage), + find/parser.c (parse_help): add bug reporting address to help + +2000-10-21 Paul Eggert <eggert@twinsun.com> + + If open + fchdir fails, fall back on xgetcwd + chdir. + The old code tested for this at compile-time, + but SunOS 4.1.4 fchdir can fail at run-time. + + * find/defs.h (fchdir): Define to -1 if not available. + * find/defs.h (starting_dir, starting_desc): + Always declare. starting_dir now points to const. + * find/find.c (starting_dir, starting_desc): Likewise. + * find/find.c (starting_dir): + Now "." if starting_desc is nonnegative, for benefit of diagnostics. + (main, process_top_path, process_dir): + If open + fchdir fails, fall back on xgetcwd + chdir. + * find/pred.c (launch): Likewise. + +2000-10-29 Bruno Haible <haible@ilog.fr> + + * locate/code.c (main), doc/find.texi: improve handling of + non-ASCII characters used old format. + +2001-01-20 Kevin Dalley <kevin@seti.org> + + * doc/find.texi (Adding Tests): Place space in "#! /bin/sh". + + * find/testsuite/find.gnu/prune-default-print.xo, + find/testsuite/find.gnu/prune-default-print.exp: test for "find + . -prune" which passes after changes. Also see name-opt.exp. + + * find/util.c (get_new_pred): + * find/tree.c (set_new_parent): + * find/parser.c (various parse functions): + * find/find.c (main): + (default_prints): new function + * find/defs.h (struct predicate): added no_default_print + side_effects are no separated from no_default_print. predicates + which cause side effects should not be reordered (optimized). + predicates which cause printing should have printing turned off. + Printing statements also cause side effects. + +2001-04-28 Kevin Dalley <kevind@rahul.net> + + * po/sv.po, ru.po, pt_BR.po, pl.po, nl.po, ko.po, it.po, gl.po, + fr.po, et.po, es.po, de.po, findutils.pot: new translations, and + new source code to translate. + + * po/da.po: new Danish translation. + +2001-05-02 Kevin Dalley <kevin@seti.org> + + * configure.in: Change AC_CHECK_MEMBERS to conform to new + autoconf. Add Danish. + +2001-05-20 Lionel CONS <lionel.cons@cern.ch> + + * find/find.c: Fixed security holes. 1. There is a race + condition between the lstat() to detect a symbolic link and the + actual chdir(). 2. An attacker can move directories while find + is _inside_ so that chdir(..) goes out of the intended file tree. + + * lib/modetype.h: support for Solaris door files is added. + + * lib/filemode.c: S_ISDOOR is undef'ed if STAT_MACROS_BROKEN + + * find/pred.c (pred_type): -D option (for Solaris door files) is + added. + + * find/parser.c (insert_type): -D option (for Solaris door files) + is added. + + * find/find.1: -D option (for Solaris door files) is documented + + * doc/find.texi (Type): -D option (for Solaris door files) is + documented + +2001-05-20 Kevin Dalley <kevin@seti.org> + + * Version 4.1.7 + + * lib/Makefile.am (EXTRA_DIST): add strcasecmp.c + + * find/testsuite/Makefile.am (EXTRA_DIST): new tests: + find.gnu/name-opt.exp find.gnu/perm.exp find.gnu/perm.xo + find.gnu/prune-default-print.exp find.gnu/prune-default-print.xo + + * configure.in: update to 4.1.7 + + * config.sub, config.guess: upgraded to recent versions of + config.sub and config.guess. + + * locate/updatedb.sh: Add space to "#! /bin/sh" + + * configure.in: Add id to ALL_LINGUAS + + * lib/Makefile.am (EXTRA_DIST): getline.[ch] added + (libfind_a_SOURCES): getline.[ch] removed since getline.c is not + always needed. + + * po/da.po, de.po, es.po, et.po, fr.po, gl.po, id.po, it.po, ko.po, + nl.po, pl.po, pt_BR.po, ru.po, sv.po: updated to reflect changes + in source code. + + * po/id.po: New translation for Indonesia. + +2001-06-01 gettextize <bug-gnu-utils@gnu.org> + + * Makefile.in.in: Upgrade to gettext-0.10.38. + * cat-id-tbl.c: Remove file. + * stamp-cat-id: Remove file. + +2001-06-04 Kevin Dalley <kevin@seti.org> + + * locate/testsuite/Makefile.am (DIST_SUBDIRS): remove second + instance of DIST_SUBDIRS. + + * locate/Makefile.am (install-data-hook): changed install target + to install-data-hook, which still installs other files. + + * doc/Makefile.am (MOSTLYCLEANFILES): added find.cps, which should + probably be handled by automake. + + * doc/mdate-sh: removed file in doc directory. It now exists only + in top_srcdir, but this changed required a patch to automake. + +2001-06-05 Kevin Dalley <kevin@seti.org> + + * locate/updatedb.sh: replace "whoami" with "id -u" when testing + for root. + +2001-06-09 Kevin Dalley <kevin@seti.org> + + * ABOUT-NLS: updated from gettext-0.10.38. + + * configure.in: add tr to ALL_LINGUAS. + + * doc/Makefile.am (MOSTLYCLEANFILES): add find.cps, which is + created by dvips. This should be taken care of by automake, but + the code is commented out. + + * po/stamp-cat-id: * stamp-cat-id: Remove file. + + * po/Makefile.in.in: * Makefile.in.in: Upgrade to gettext-0.10.38. + + * po/ChangeLog: * cat-id-tbl.c: Remove file. + + * po/de.po, es.po, et.po, fr.po: + * po/fr.po, et.po, es.po, de.po: updated translations to + findutils-4.1.7. + + * po/tr.po: * tr.po: New Turkish translation. + +2001-06-09 Kevin Dalley <kevin@seti.org> + + * intl/plural.c: + Changes the location of bison.simple after running bison on local + machine + + * ChangeLog: *** empty log message *** + + * Makefile.in, aclocal.m4, config.h.in, configure, + doc/Makefile.in, find/Makefile.in, find/testsuite/Makefile.in, + lib/Makefile.in, lib/posix/Makefile.in, locate/Makefile.in, + locate/testsuite/Makefile.in, m4/Makefile.in, xargs/Makefile.in, + xargs/testsuite/Makefile.in: Updates mostly from gettext-0.10.38 + + * ABOUT-NLS: * ABOUT-NLS: updated from gettext-0.10.38. + + * configure.in: * configure.in: add tr to ALL_LINGUAS. + + * intl/config.charset, intl/dcigettext.c, intl/dcngettext.c, + intl/dngettext.c, intl/libgnuintl.h, intl/localcharset.c, + intl/locale.alias, intl/ngettext.c, intl/plural.y, + intl/ref-add.sin, intl/ref-del.sin: updated from gettext-0.10.38 + + * intl/cat-compat.c, intl/linux-msg.sed, intl/po2tbl.sed.in, + intl/xopen-msg.sed, m4/ChangeLog: *** empty log message *** + + * m4/jm-macros.m4: + * jm-macros.m4 (jm_MACROS): remove jm_ICONV, which is replaced by + AM_ICONV, which is imported from gettext-0.10.38. removed + jm_GLIBC21, which is required in AM_GNU_GETTEXT, which is + imported from gettext-0.10.38. + + * po/stamp-cat-id: * stamp-cat-id: Remove file. + + * po/Makefile.in.in: * Makefile.in.in: Upgrade to gettext-0.10.38. + + * po/ChangeLog: * cat-id-tbl.c: Remove file. + + * po/de.po, po/es.po, po/et.po, po/fr.po: + * fr.po, et.po, es.po, de.po: updated translations to + findutils-4.1.7. + + * po/tr.po: * tr.po: New Turkish translation. + + * m4/ChangeLog: *** empty log message *** + + * intl/dgettext.c, intl/explodename.c, intl/finddomain.c, + intl/gettext.c, intl/gettext.h, intl/gettextP.h, + intl/hash-string.h, intl/intl-compat.c, intl/l10nflist.c, + intl/libgettext.h, intl/loadinfo.h, intl/loadmsgcat.c, + intl/localealias.c, intl/plural.c, intl/textdomain.c, + intl/ChangeLog, intl/Makefile.in, intl/VERSION, + intl/bindtextdom.c, intl/dcgettext.c: Updated from gettext-0.10.38 + + * m4/Makefile.am: + reflects addition of codeset.m4 from gettext-0.10.38, automatically + generated. + + * m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4, + m4/isc-posix.m4, m4/lcmessage.m4, m4/progtest.m4: * + progtest.m4, lcmessage.m4, isc-posix.m4, iconv.m4, + glibc21.m4, gettext.m4, codeset.m4: updated from + gettext-0.10.38. + + * ChangeLog: *** empty log message *** + + * THANKS: added "Gerrit P. Haase" <gerrit.haase@t-online.de> + + * m4/ChangeLog, locate/testsuite/.cvsignore, + xargs/testsuite/.cvsignore, config.h.in, configure, aclocal.m4, + doc/.cvsignore: *** empty log message *** + + * m4/jm-macros.m4: * jm-macros.m4 (jm_MACROS): add jm_FSTYPENAME + + * doc/Makefile.in: *** empty log message *** + + * doc/Makefile.am: + * doc/Makefile.am (MOSTLYCLEANFILES): add find.cps, which is + created by dvips. This should be taken care of by automake, but + the code is commented out. + +2003-05-24 James Youngman <jay@gnu.org> + + * po/da.po, de.po, es.po, et.po, findutils.pot, fr.po, gl.po, + id.po, it.po, ko.po, nl.po, pl.po, pt_BR.po, ru.po, sv.po, tr.po: + also need stpcpy (e.g. for Solaris) + + * po/POTFILES.in, da.po, de.po, es.po, et.po, findutils.pot, fr.po, + gl.po, id.po, it.po, ko.po, nl.po, pl.po, pt_BR.po, ru.po, sv.po, + tr.po: Updates to the i18n files to ensure that 'make dist' + succeeds + +2003-05-26 James Youngman <jay@gnu.org> + + * po/pl.po, pt_BR.po, ru.po, sv.po, tr.po, da.po, de.po, es.po, + et.po, findutils.pot, fr.po, gl.po, id.po, it.po, ko.po, nl.po: + Changes to allow compilation on non-GNU systems (i.e. for the + macros that gnulib decides to #define to be effective) + +2003-06-14 James Youngman <jay@gnu.org> + + * NEWS, configure.in: + Updated version number to 4.2.0-CVS [not ready for release yet] + + * configure.in, doc/.cvsignore, doc/Makefile.in, find/.cvsignore, find/Makefile.am, find/Makefile.in, find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/testsuite/.cvsignore, find/testsuite/Makefile.in, find/testsuite/config/unix.exp, find/tree.c, find/util.c, import-gnulib.sh, intl/bindtextdom.c, intl/dcgettext.c, intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c, intl/explodename.c, intl/finddomain.c, intl/gettext.c, intl/intl-compat.c, intl/l10nflist.c, intl/loadmsgcat.c, intl/localcharset.c, intl/localealias.c, intl/ngettext.c, intl/plural.y, intl/textdomain.c, lib/.cvsignore + also need stpcpy (e.g. for Solaris) + + * intl/dcigettext.c: + plural_lookup: don't use a variable called "index", because we may + have done "#define strchr index", in which case using a variable + called index will prevent us calling strchr(p, ch) in the same scope. + + * find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/testsuite/config/unix.exp, find/tree.c, find/util.c, import-gnulib.sh, lib/Makefile.am, lib/listfile.c, lib/modetype.h, lib/nextelem.c, locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, locate/locatedb.h, locate/testsuite/config/unix.exp, locate/updatedb.sh, xargs/testsuite/config/unix.exp, xargs/xargs.c: + Updated copyright years and the address of the FSF + + * aclocal.m4, config.h.in, configure: + Removed files that are generated from other files (e.g. configure) + + * NEWS: Updated NEWS file for 4.1.20. + + * configure.in, lib/Makefile.am, po/POTFILES.in, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po: + Updates to the i18n files to ensure that 'make dist' succeeds + + * lib/posix/.cvsignore, lib/posix/Makefile.am, + lib/posix/Makefile.in, lib/posix/regex.h, lib/strftime.c, + lib/strncasecmp.c, lib/strspn.c, lib/strstr.c, lib/strtol.c, + lib/strtoul.c, lib/strtoull.c, lib/strtoumax.c, lib/wait.h, + lib/waitpid.c, lib/xalloc.h, lib/xgetcwd.c, lib/xmalloc.c, + lib/xstat.in, lib/xstrdup.c, lib/xstrtol.c, lib/xstrtol.h, + lib/xstrtoul.c, lib/xstrtoul.h, lib/xstrtoumax.c, lib/yesno.c, + locate/Makefile.am, locate/Makefile.in, locate/locate.c, + locate/testsuite/Makefile.in, m4/.cvsignore, m4/ChangeLog, + m4/Makefile.am, m4/Makefile.am.in, m4/Makefile.in, m4/README, + m4/afs.m4, m4/assert.m4, m4/c-bs-a.m4, m4/check-decl.m4, + m4/codeset.m4, m4/d-ino.m4, m4/d-type.m4, m4/error.m4, + m4/fnmatch.m4, m4/fnmatchcase.m4, m4/fstypename.m4, m4/getline.m4, + m4/gettext.m4, m4/glibc.m4, m4/glibc21.m4, m4/iconv.m4, + m4/inttypes_h.m4, m4/isc-posix.m4, m4/jm-glibc-io.m4, + m4/jm-macros.m4, m4/jm-mktime.m4, m4/lcmessage.m4, m4/libintl.m4, + m4/link-follow.m4, m4/ls-mntd-fs.m4, m4/lstat-slash.m4, + m4/lstat.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/memcmp.m4, + m4/prereq.m4, m4/progtest.m4, m4/readdir.m4, m4/realloc.m4, + m4/regex.m4, m4/st_dm_mode.m4, m4/st_mtim.m4, m4/stat.m4, + m4/strerror_r.m4, m4/strftime.m4, m4/timespec.m4, m4/uintmax_t.m4, + m4/ulonglong.m4, m4/xstrtoumax.m4, xargs/Makefile.am, + xargs/Makefile.in, xargs/testsuite/Makefile.in, + find/testsuite/Makefile.in, lib/.cvsignore, lib/Makefile.am, + lib/Makefile.in, lib/alloca.c, lib/ansi2knr.1, lib/ansi2knr.c, + lib/argmatch.c, lib/argmatch.h, lib/basename.c, lib/basename.h, + lib/dirname.c, lib/dirname.h, lib/error.c, lib/error.h, + lib/fileblocks.c, lib/filemode.c, lib/filemode.h, lib/fnmatch.c, + lib/fnmatch.h, lib/getline.c, lib/getline.h, lib/getopt.c, + lib/getopt.h, lib/getopt1.c, lib/human.c, lib/human.h, + lib/idcache.c, lib/malloc.c, lib/memcmp.c, lib/memcpy.c, + lib/memset.c, lib/mktime.c, lib/modechange.c, lib/modechange.h, + lib/pathmax.h, lib/quotearg.c, lib/quotearg.h, lib/realloc.c, + lib/regex.c, lib/regex.h, lib/rpmatch.c, lib/savedir.c, + lib/savedir.h, lib/stpcpy.c, lib/strcasecmp.c, lib/strdup.c, + find/Makefile.am, find/Makefile.in, find/find.c, find/pred.c: + Updated to work with current version of gnulib + + * import-gnulib.sh: New file. + + * config.h.in, configure, configure.in, doc/Makefile.in, import-gnulib.sh: + Updated to work with current version of gnulib + + * README-CVS: New file. + + * Makefile.am, Makefile.in, README-CVS, aclocal.m4: + Updated to work with current version of gnulib + +2003-06-16 James Youngman <jay@gnu.org> + + * ChangeLog, find/find.1, locate/locate.1, locate/locatedb.5, locate/updatedb.1, xargs/xargs.1: + Added BUGS section to manual pages. This section includes information about known bugs and how to report new bugs. + + * AUTHORS: Identify the current maintainer. + + * TODO: Removed the TODO items which have now been done. + + * THANKS: Added Bruno Haible and Bob Proulx. + + * xargs/xargs.c: xargs/xargs.c (DO_MULTIBYTE): New macro. + (mbstrstr): New function. + (do_insert): Use it instead of strstr. + + * config.guess, config.sub: + Use config.guess and config.sub from automake + + * find/fstype.c: + Bruno Haible: (fstype_to_string) Don't define this function if + HAVE_F_FSTYPENAME_IN_STATFS is defined. + + * configure.in: + Bruno Haible: Prefer the 4.4BSD API (if present) to the 4.3BSD API, + because some 4.4BSD systems have <mntent.h> but no /etc/mtab file. + + * doc/find.texi, find/find.1: + Applied patch 1498 (documenting the backslash escape sequence) + + * locate/updatedb.sh: Applied (my own version of) Savannah patch 1601. + + * doc/find.texi: + Applied Savannah patch #1547 (document the fact that printf + field-width specifiers are supported). + + * xargs/xargs.c: + Applied Savannah patch #1499 (adds final newline to usage message). + +2003-06-18 James Youngman <jay@gnu.org> + + * find/find.1: + Indicate that -fls and friends always create their output file + +2003-06-21 James Youngman <jay@gnu.org> + + * doc/find.texi: + Indicate that xargs stops immediately if a command exits with status 255 + + * xargs/xargs.1: + Document the fact that xargs exits immediately with an error message + if the command it executes exits with a status of 255. + +2003-06-26 James Youngman <jay@gnu.org> + + * import-gnulib.sh: + Remove reference to nonexistent module "basename" ("dirname" exists + and we already use that). + +2003-08-02 James Youngman <jay@gnu.org> + + * find/find.1: + Explain that braces are not special when performing filename matching + with -name. + + * find/find.1: + added example of the use of -exec to the EXAMPLES section + + * find/fstype.c, locate/locate.c: + Savannah bug #4295 - implicit declarations of ctype.h functions + + * locate/locate.c: + Savannah bug #4279 - missing newline on locate help message + + * find/find.1, xargs/xargs.1: + Improved discussion of the -print0 option of find and the -0 option of xargs + +2003-08-08 James Youngman <jay@gnu.org> + + * find/find.1: + Documented the fact that -printf also supports the '\0' escape code. + Added "STANDARDS CONFORMANCE" section. + +2004-01-03 James Youngman <jay@gnu.org> + + * xargs/xargs.c: + Indicate that prep_child_for_exec() fixes Savannah bug #3992. + + * xargs/xargs.c: + Attach the stdin of xargs' child process to /dev/null so that if it + tries to read from its stdin it doesn't consume any of the list of + files that xargs is trying to use. + + * find/find.1: + Documented that the -regex option follows Gnulib's re_match() + implementation. + + * NEWS, locate/locate.c: Applied Savannah patch 2108 + + * xargs/xargs.c: Applied Savannah patch 1500 + + * find/find.1, doc/find.texi: + Improved the documentation for the %k and %b format specifiers to + -printf (Savannah bug #5034). Also pointed out that this handling is + different to that used by the "b" and "k" suffixes with "-size". + + * find/find.1: Improved the documentation for %k (Savannah bug #5034). + + * find/find.1: + Improved the documentation for -print0 in the manpage, fixing Debian + bug 111143. + + * README-CVS, find/pred.c, lib/listfile.c: + Brought up-to-date with change in gnulib's human.c - we no longer + use human_readable_inexact(), because it is no longer provided. + +2004-03-13 James Youngman <jay@gnu.org> + + * ChangeLog: Updated from checkin comments. + + * find/find.c: + Oops, there is no access to the predicate name table if DEBUG is + not #defined. + + * find/parser.c: + Detect arithmetic overflow (poorly) in insert_time(), which diagnoses + the failure to handle large arguments to -mtime. The existing code + does careful computation and then bungs the value into a time_t, which + ruins all our careful effort. The new code is not a great + improvement. We just check the result to detect overflow, rather than + actually avoiding the overflow. + + * find/find.c: + Fixed Debian bug #185202 by checking for any trailing predicates after + the top-level invocation of get_expr() has done its work. + + * locate/locate.1, xargs/xargs.1: + Fixed Debian bug 175372, inappropriate 'L' suffixes on manual + page section indicators + + * find/find.1: + Removed "L" suffixes from manual page section indicators, to fix + Debian bug 175372. + + * debian/updatedb.conf: + Updated with list of filesystems from current Debian release. This + includes devfs, for example. + + * xargs/xargs.1: + Modified documentation of "-s" option to take into account the fix for + Debian bug #176201. + + * xargs/xargs.c: + Fixed Debian bug #176201, "xargs environment size limited to 20k", by + reading a patch offered by Bob Proulx and implementing something + substantially similar myself. + +2004-04-13 James Youngman <jay@gnu.org> + + * doc/find.texi: + Actioned Savannah bug #8558 (find complains when it tries to recurse + into directories that it had removed). + +2004-04-24 James Youngman <jay@gnu.org> + + * README-CVS: Corrected the instructions for getting gnulib via CVS. + +2004-05-03 James Youngman <jay@gnu.org> + + * find/find.1: + document the various suffixes for -size and also the new + option -ignore_readdir_race + + * locate/locate.c: + Fixes Savannah bug #8623 (failure to check consistency of data + read from locate database) + + * locate/updatedb.sh: + Resolves Savannah bug 4380, that updatedb generates an empty + database if one of the commands fails + + * NEWS: Talk about -ignore_readdir_race + + * doc/find.texi: + Documented -ignore_readdir_race and -noignore_readdir_race + + * find/find.c: + -ignore_readdir_race should have no effect if the reason for the + failure of stat(2) was anything other than ENOENT. + + * find/defs.h, find/find.c, find/parser.c: + Fixed Savannah bug 4391 (readdir race condition leading to + spurious error messages) + +2004-08-08 James Youngman <jay@gnu.org> + + * locate/updatedb.sh: + cd to / to avoid inability to examine the current directory if we're + invoked via cron (and hence in root's home directory for example). + + * doc/find.texi, find/find.1: + Deprecate -path and -ipath in favour of -wholename and -iwholename + + * find/parser.c: + As per RMS's suggestion, deprecate -path and -ipath in favour of + -wholename and -iwholename. + + * locate/locate.c: + Fixed Savannah bug #9923, in which get_short() returns large positive + ints when it should be returning negative shorts. + + * xargs/xargs.1: + Applied documentation improvements suggested by Dan Jacobson + <jidanni@jidanni.org>. + + * xargs/xargs.c: + Don't check size_of_environment against arg_max since that causes the + test suite to fail. + + * xargs/xargs.1, xargs/xargs.c: Better documentation for the -i option + +2004-10-02 James Youngman <jay@gnu.org> + + * po/Makefile.in.in: + Search in $(top_srcdir) for mkinstalldirs, since that's where we keep it. + + * NEWS: Brought up to date, organised more clearly, and tidied up. + + * NEWS: brought up to date with recent changes + + * locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/ignore_case1.exp, locate/testsuite/locate.gnu/ignore_case3.exp, locate/updatedb.sh: + Added new option --changecwd to updatedb so that the 'cd /' which it does can be compatible with the requirements of the test suite. Specifically, the test suite relies on being able to use relative pathnames + + * find/pred.c: + Fixed usage of human_readable() in '%k' format specifier to fix a bug + reported by Dmitry V. Levin (arguments to human_readable() were + specified in the wrong order, which resulted in a floating-point + error). + +2004-10-16 James Youngman <jay@gnu.org> + + * import-gnulib.sh: + Switch to requirement for GNU fnmatch because it supports FNM_CASEFOLD. + + * locate/updatedb.sh: + Bug #9465: use of signal numbers for 'trap' is deprecated. Should use + names instead. See + http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html, + which indicates that support for signal numbers is optional, while + support for signal names is mandatory. + + * configure.in: + Indicate that this is the CVS version (once again) now that findutils + 4.2.0 has been released. + + * ChangeLog, configure.in, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po: + findutils 4.1.20 check-in for tagging + +2004-10-17 James Youngman <jay@gnu.org> + + * configure.in: + Define intmax_t if it is not already defined - allows parser.c to compile on AIX 4.3 + + * configure.in: + Adjust version number to indicate that this s/w has moved on since the + 4.2.1 release. + + * configure.in: preparing to release 4.2.1 + + * ChangeLog: updated with current changes + + * README-CVS: Updated to go with newer version of gnulib. + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po: + preparation for release + + * NEWS: Mention the changes to "trap". + + * NEWS: Brought up to date. + + * import-gnulib.sh: + Use xalloc-die module from gnulib, since that has now been split out + + * find/parser.c: + Check fnmatch() when other predicates that rely on fnmatch() are used. + + * find/parser.c: bug #10701: find needs fnmatch sanitycheck on startup + +2004-10-22 James Youngman <jay@gnu.org> + + * doc/find.texi: Syntax corrections. + + * doc/find.texi: Indicate that "-exec {}+" is not yet supported. + + * find/find.1: Indicate that "{}+" is not yet supported. + + * find/testsuite/find.gnu/name-period.xo, find/testsuite/find.gnu/name-period.exp, find/find.1, doc/find.texi: + The -name predicate must allow '*' to match '.foo' as demanded by IEEE + Std 1003.2-1992 Interpretation #126. + + * find/pred.c: + Remove use of FNM_PERIOD for -name as demanded by IEEE Std 1003.2-1992 + Interpretation #126 + + * find/parser.c: Fix for compilation (on AIX 4.3) with GCC 2.x. + + * xargs/xargs.c: + Changed the erorr message issued when there is an unmatched quote to + point out that the user might have wanted to use the -0 option instead. + +2004-10-24 James Youngman <jay@gnu.org> + + * ChangeLog: Prepared to release findutils-4.2.2. + + * ChangeLog, NEWS, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po: + Updates prior to release of 4.2.2 + + * NEWS: Updated with news for findutils-4.2.2. + + * find/testsuite/config/unix.exp, lib/forcefindlib.c, lib/listfile.c, lib/modetype.h, lib/nextelem.c, locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, locate/locatedb.h, locate/testsuite/config/unix.exp, locate/updatedb.sh, xargs/testsuite/config/unix.exp, xargs/xargs.c, NEWS, find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/tree.c, find/util.c, import-gnulib.sh: + Corrected typo in the address of the FSF office + + * lib/strspn.c: Updated FSF address. + + * m4/.cvsignore: 'cvs status' should ignore Makefile.in + + * m4/Makefile.am, Makefile.am, NEWS, README-CVS, configure.in, doc/texinfo.tex, find/defs.h, find/fstype.c, find/parser.c, find/pred.c, import-gnulib.sh, intl/bindtextdom.c, intl/dcgettext.c, intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c, intl/explodename.c, intl/finddomain.c, intl/gettext.c, intl/intl-compat.c, intl/l10nflist.c, intl/loadmsgcat.c, intl/localcharset.c, intl/localealias.c, intl/ngettext.c, intl/plural.y, intl/textdomain.c, lib/Makefile.am, lib/forcefindlib.c, lib/listfile.c, lib/nextelem.c, lib/strspn.c, lib/waitpid.c, locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, m4/findlib.m4, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po, xargs/xargs.c: + Use gnulib-tool --import to import the gnulib code, rather than the odd way we were doing it before + + * find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/tree.c, find/util.c, locate/code.c, locate/locate.c, xargs/xargs.c: + Work round an apparent compiler bug in HP-UX 11.23 for + ia64 + + * locate/locate.c: + Work around what appears to be a C compiler bug in HP-UX 11.23 for + ia64. + + * INSTALL, depcomp, install-sh, missing, mkinstalldirs: + Updated from automake + + * locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c, find/find.c: + Avoid use of exit() within main, to silence warnings about unreachable code + +2004-10-25 James Youngman <jay@gnu.org> + + * doc/find.texi, find/find.1, find/parser.c, find/pred.c: + Support -printf %D, which prints the device number of the containing filesystem + + * locate/updatedb.sh: + Avoid confusion between James Woods and James Youngman, by using the + disambiguating surname. + + * find/parser.c: Use RE_ICASE instead of re->translate. + + * configure.in, find/parser.c, find/pred.c, xargs/xargs.c: + No need to #define _GNU_SOURCE if we use gl_INIT. + +2004-10-30 James Youngman <jay@gnu.org> + + * .cvsignore, NEWS, doc/find.texi, find/defs.h, find/find.1, find/parser.c, find/pred.c: + Implemented the -quit action + + * NEWS, doc/find.texi, find/find.1, find/parser.c, find/pred.c: + Refactored time handling routines in preparation for support of absolute timestamp comparison predicates + + * locate/locate.c: + Applied Savannah patch #2952 ("getline off-by-one bugfix"). + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/parser.c, find/pred.c: + Added -delete action (Savannah patch #3454 with additions) + + * locate/locate.c: + Applied Savannah patch #2692 (allowing get_short to process negative integers). + + * find/find.c: + If we are iossuing an error message because $FIND_BLOCK_SIZE is set, + ignore the setting of errno. + + * find/parser.c: More fixes for pedantic compiler warnings + + * NEWS, find/parser.c, find/tree.c: Eliminated some compiler warnings + + * find/find.c, find/parser.c, find/pred.c: + Various fixes for compiler warninga sbout unreachable code or unused function arguments + + * intl/plural.y: Silence compiler warning about unused argument. + + * locate/testsuite/Makefile.am: + Subdirectory "inputs" does not exist, so remove it from DIST_SUBDIRS. + + * locate/locate.c: + Corrected the explanation of why we have to use no parentheses around + the String argument to the N_ macro in its expansion. + + * configure.in: Nextr release is 4.2.3. + + * configure.in: IOndicate this is no longer the pristine release. + + * NEWS: + Oops, comments for release 4.2.0 should have said 20480 bytes, not 2480. + + * lib/listfile.c: + The -ls predicate should not truncate usernames. Fixes Savannah bug #10800. + + * find/fstype.c, locate/locate.c: + Fixes for Savannah bug #3727 (Intel icc compilation errors). + +2004-10-31 James Youngman <jay@gnu.org> + + * find/find.1, find/parser.c: NetBSD also supports -d. + + * find/find.1, doc/find.texi: + Documented the behaviour of -daystart and -follow in more detail + + * find/parser.c: Corrected the usage message. + + * find/parser.c: + When deciding whether to issue a warning about options following + non-options, ignore any options whose position affects the tests + (i.e. -daystart and -follow). + + * find/parser.c: -daystart is a positional option like -follow. + + * find/parser.c: + Issue a warning message if an option is specified after a test or an + action (because the user might have believed that the behaviour of the + option is in some way conditional on the preceding tests). + + * locate/updatedb.sh: + Oops; removed some test code that I shouldn't have checked in. + + * locate/updatedb.sh: + Indicate that the old locate database format will shortly be unsupported. + + * doc/find.texi: + Use @direntry instead of hard-coding START-INFO-DIR-ENTRY inside @ifinfo. + + * locate/updatedb.1: Updated default location of locatedb file. + + * README-alpha: + Updated to give correct FTP location and to not talk about "test" + versions of automake, which are no longer required. + + * locate/updatedb.sh: + Incorporated the default list of filesystems to avoid from the Debian + package. Also added /afs and /sfs to the default pruned paths. + + * configure.in: Released findutils 4.2.3 + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po, po/tr.po: + did make distcheck, which updates these files + + * find/defs.h, find/fstype.c: + Use const qualifier in arguments to filesystem_type() to allow callers with const variables to use them + + * ChangeLog: Updated. + + * NEWS: Added new news. + + * find/find.c: + Extra diagnositcs for the case where we have the error "%s changed + during execution of %s" - that is when we chdir back to the parent + directory only to find that it has changed. + +2004-11-01 James Youngman <jay@gnu.org> + + * NEWS: Fixed "find -printf '%H\n'". + + * find/find.c: + Avoid segfault if -printf %H is used where the matched file was the default, unspecified starting point, the current directory + +2004-11-06 James Youngman <jay@gnu.org> + + * NEWS, doc/find.texi, locate/locate.1: + Documented --wholename and --basename and updated the NEWS file + + * README-CVS: + Give the autogen commands in a form that you can usefully cut and paste into a shell + + * NEWS: Options --null and --count) for locate + + * lib/nextelem.c: + Don't return '.' for an empty path element, because the path we are splitting may not be intended to contain directories + + * configure.in: we're working on findutils-4.2.4 now + + * locate/Makefile.am: Substitute @SORT_SUPPORTS_Z@ + + * doc/find.texi: + Documented new locate option --null and newline handling + + * locate/locate.1, locate/locate.c: + New locate options --null, --wholename, --basename, --count + + * locate/frcode.c, locate/updatedb.1, locate/updatedb.sh: + correctly handle newlines in the file names + + * configure.in: Determine if sort -z works + + * m4/nullsort.m4, m4/order-bad.bin, m4/order-good.bin: + jy_SORTZ: a macro to determine if the system has a sort command with a working -z option + +2004-11-07 James Youngman <jay@gnu.org> + + * m4/Makefile.am: + Added in the extra files we need to distribute, nullsort.m4 + order-bad.bin order-good.bin + + * doc/find.texi: Documented locate's --limit option + + * locate/locate.1, locate/locate.c: + Implmented --limit and corrected the implementation of the -i option. + +2004-11-08 James Youngman <jay@gnu.org> + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + distcheck changed the po files again + + * locate/Makefile.am: + Make install-data-hook honour the setting of DESTDIR so that "make + DESTDIR=/tmp/foo install" works and puts localstater in the right + place. + + * configure.in: We're now working on findutils-4.2.5. + + * doc/find.texi, xargs/xargs.1: + Point out that xargs -i only splits input items at newlines + + * ChangeLog: Indicate that we released 4.2.4. + + * ChangeLog: Updated for release 4.2.4 + + * NEWS, configure.in: Prepare for release of 4.2.4. + + * NEWS: Brought up to date with latest changes. + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c, po/da.po, po/de.po, po/es.po, po/findutils.pot, po/gl.po, po/id.po, po/ko.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sv.po: + Turn warning messages off by default if stdin is not a tty; allow these to be controlled explicitly by options -warn and -nowarn + + * po/et.po, po/it.po: Updated translation files + + * po/sk.po: New translation file + + * po/fr.po, po/nl.po, po/tr.po: Updated translation files + + * configure.in: Added Slovak (sk) language. + + * xargs/xargs.c: + Enforcing a lower limit on the value specified by -s makes the test + suite fail. Removed that lower limit. + + * locate/Makefile.am: Oops, multilocate doesn't exist yet. + + * NEWS: *** empty log message *** + + * doc/find.texi, locate/updatedb.1, locate/updatedb.sh: + Added option --findoptions to updatedb + + * locate/Makefile.am, locate/locatedb.5, locate/updatedb.1, xargs/xargs.1: + Fixed section numbers in manpage titles and cross-references + + * NEWS, doc/find.texi, xargs/xargs.1, xargs/xargs.c: + Increased the default argument length and improved POSIX compliance of the handling of out-of-range values for the -s option + +2004-11-10 James Youngman <jay@gnu.org> + + * doc/find.texi, find/find.1, find/parser.c, find/pred.c: + Implemented %M and %A+ format specifiers + + * doc/find.texi, find/find.1, find/parser.c, find/pred.c: + Documented the fact that only %d and %m format specifiers honour the various formatting flags + + * xargs/xargs.c: + Get the right number of bytes in a Kilobyte (hint: it's not 1048; that + was a typo, honest :) + + * po/pl.po: Applied Polish translations + +2004-11-11 James Youngman <jay@gnu.org> + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c: + Implemented -H and -L options. + + * find/util.c: Added in the -H and -L options on the usage message. + +2004-11-12 James Youngman <jay@gnu.org> + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c, find/pred.c, find/testsuite/find.gnu/posix-dflt.exp, find/testsuite/find.gnu/posix-dflt.xo, find/testsuite/find.gnu/posix-h.exp, find/testsuite/find.gnu/posix-h.xo, find/testsuite/find.gnu/posix-l.exp, find/testsuite/find.gnu/posix-l.xo, find/util.c: + Implemented BSD option -P and also the correct default behaviour of find with respect to symlinks if neither -L nor -H is specified [i.e. same as -P] + +2004-11-15 James Youngman <jay@gnu.org> + + * import-gnulib.sh: + Avoid test -e because not all systems are POSIX-compliant (bug + #11005). Also don't need regex module any more if we're not building + in intl. + + * Makefile.am, configure.in: + These days gnulib likes to include 'libintl.h' which our very old intl/ directory lacks. For the moment, disable use of the internal intl/ directory + + * doc/find.texi: + Use @ref not @xref for a reference at the beginning of a sentence. + + * intl/Makefile.in: + Make sure gnulib.lib is on the #include path (Savannah bug #11002) + + * locate/locate.c: + Use base_name instead of basename - fixes Savannah bug 11003. + + * configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, locate/bigram.c, locate/locate.c: + Don't need banner to emphasise the location of the call to jy_SORTZ + +2004-11-19 James Youngman <jay@gnu.org> + + * configure.in: releaseing findutils-4.2.5 + + * find/testsuite/Makefile.am, locate/testsuite/Makefile.am, xargs/testsuite/Makefile.am: + If a directory has no Makefile.am, omit it from the parent's DIST_SUBDIRS - automake-1.9 requires this + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + updated by make distcheck + + * ChangeLog, NEWS: Updated for release 4.2.5. + + * find/find.1, doc/find.texi: + Tell the reader that format flags may not work as they expect. + + * configure.in: + Use the correct name for the macro gl_AC_TYPE_LONG_LONG (not + jm_AC_TYPE_LONG_LONG). + +2004-11-21 James Youngman <jay@gnu.org> + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + Messages changed again + + * ChangeLog, configure.in: Preparing to release 4.2.7. + + * NEWS: Updated for release of 4.2.7. + + * import-gnulib.sh: Also need canonicalize module. + + * find/find.c: + When checking to see if a filesystem has changed state, use an + absolute pathname. + + * configure.in: + No need to pause to allow James to view his handiwork, it (allegedly) + works now. + + * configure.in: + Oops. Check for setlocale() to re-enable the i18n support which was + accidentally disabled in 4.2.5. + + * find/find.c: + Check to see if the new directory is a transitioned mount point by + using its ABSOLUTE name, if we can figure it out. + + * doc/find.texi: + Added guidance on some of the error messages. Not the most common + ones, but the ones where the user might most benefit from some handy + hints or an explanation of what is going on. + + * find/pred.c: + Actually emit an error message if we fail to stat a symlink (for + reasons other than nonexistence of the link and infinite loop). + + * doc/texinfo.tex: Updated texinfo.tex + + * NEWS, configure.in, find/find.c, find/fstype.c: + Enable the 'Warning: filesystem XXX has recently been mounted' check on Solaris, which prevents it exiting fatally when traversing an automount mount point + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + messages changed again + + * NEWS: Implemented xargs --arg-file. + + * doc/find.texi, xargs/xargs.1, xargs/xargs.c, NEWS: + Implemented xargs --arg-file + + * find/find.c: + Where a filesystem was recently (un)mounted, try togive its full name + + * configure.in: + Try to avoid requesting -lsun if we don't seem to need it (e.g. on + UNICOS where it is not present and trying to link against it produces + a warning). + + * find/defs.h, lib/modetype.h: Guard against multiple inclusion + + * find/fstype.c: + We now need <mntent.h> even if we are not using getmntent() to figure + out the type of a filesystem, because wd_sanity_check() needs to + enumerate the system mount points. + + * configure.in: Next release will be 4.2.7. + + * find/fstype.c: + get_mounted_filesystems() should use getmntent() if that function is + present, rather than just if configure didn't find anything better for + filesystem_type_uncached() to use than that. + + * find/parser.c: + If -delete is the only action on a file, don't assume the default + -print action too. + + * ChangeLog, configure.in, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + Preparation to release findutils-4.2.6. + + * find/Makefile.am, xargs/Makefile.am: + Enable checking of support for --version and --help + + * locate/Makefile.am: + Con't check command-line options for frcode, code or bigram + + * locate/code.c: Support --version and --help. + + * ChangeLog: *** empty log message *** + + * find/defs.h, find/find.c, find/fstype.c, lib/Makefile.am, lib/extendbuf.c, lib/extendbuf.h, NEWS: + Avoid fatal error if automount mounts a filesystem on a directory because we chdir()ed into it + + * configure.in: Next release will be 4.2.6. + + * find/find.1: + Indicate that the '-' flag does work for most fields. Also provide + an example of using the comma operator to traverse the filesystem just + once but search for more than one thing. + + * doc/find.texi: Indicate that the '-' flag does work for most fields. + +2004-11-24 James Youngman <jay@gnu.org> + + * doc/find.texi: + Updated the discussion of th error messages for findutils-4.2.8. + + * configure.in: Next version will be 4.2.9... + + * find/find.c: + Don't issue a warning if we notice the mounting of a filesystem that's + likely just to be an automounter. + + * doc/find.texi, find/find.1: + Explain how rounding is performed for -atime and friends. + + * xargs/xargs.c: + Once we collect enough arguments (for the value specified by the -n + option) to do an exec(), do it immediaely instead of waiting for the + next one to arrive. This fixes Savannah bug #7340. + + * ChangeLog, configure.in, NEWS: Prepare to release 4.2.8. + + * NEWS: Updates for 4.2.8. + + * configure.in: check for sys/types.h + + * find/find.c: + If wd_sanity_check() discovers that the mount table has changed, remember the updated device number and inode so that we also consider these to be valid on the way back up. + + * find/defs.h: + Declarations of xmalloc() and friends belong in xalloc.h, not in defs.h + + * find/parser.c: avoid signed/unsigned warning, and #include xalloc.h + + * find/fstype.c: + Changed to alloc get_mounted_devices() to compile on Solaris + + * README-CVS: + Automake requires GNU m4, so point out that the reader needs that. + + * find/defs.h, find/find.c, find/fstype.c: + When wd_sanity_check() fails, enumerate the mounted devices, rather than the mounted filesystem names + + * NEWS: prepare for 4.2.8 + + * configure.in: + Look for some Solaris headers which are used by get_mounted_devices() + + * lib/Makefile.am: don't build savedirtypes yet + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + updated po files + + * m4/nullsort.m4: + Avoid suprious output of the test data when the tests fail. + +2004-11-26 James Youngman <jay@gnu.org> + + * find/find.c: Removed some unused code. + + * Makefile.am: Don't do anything in the 'intl' subdirectory + + * find/find.c: + Enhanced safely_chdir() to the point where the test suite passes, and report infinite loops in the directory hierarchy + + * find/defs.h: + belt and braces; ensure that SYMLINK_NEVER_DEREF has value zero + + * find/find.1: + Describe our strategy for detecting and reporting infinite loops + +2004-11-27 James Youngman <jay@gnu.org> + + * find/find.c: + More use of safely_chdir(). Also bugfix: -L should imply -noleaf. Be more careful about when xstat should fall back on lstat() when stat() fails. + + * find/find.1: "necessary" only has one "C". + + * find/find.1: + If stat() fails with ELOOP, we issue a diagnostic message. + +2004-12-03 James Youngman <jay@gnu.org> + + * find/parser.c: + -xdev is an option, not a test. Fixes Savannah bug 11192. + + * find/find.1, xargs/xargs.1: + Escape dashes with a backslash (for fix Savannah bug 11189). + +2004-12-05 James Youngman <jay@gnu.org> + + * README, configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, find/tree.c: + Allow debug output to be turned on or off by saying --enable-debug on the configure command line + + * README: + Removed disparaging (it is now, it probably wasn't then) comment about + the production-readiness of Automake. + + * README: Qualify remarks about POSIX compliance. + + * NEWS, configure.in: Preparation for release 4.2.9 + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + distcheck + + * ChangeLog: Brought up to date. + + * find/find.c: + Avoid duplicate error message when we cannot chdir() into a subdirectory. + + * THANKS: Added recent thankees. + + * NEWS: + Brought up to date with respect to the current set of fixed bugs. + + * NEWS, xargs/xargs.1, xargs/xargs.c: + Implemented POSIX options -L, -I and -E + +2004-12-06 James Youngman <jay@gnu.org> + + * ChangeLog: Brought up to date. + + * NEWS, configure.in: releasing 4.2.10 + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + distcheck + + * ChangeLog: Updated prior to release of finsutils-4.2.10. + + * import-gnulib.sh, find/fstype.c: + Use gnulib's mountlist module instead of grokking it ourselves. + + * configure.in: + Removed all the out-of-date cruft for grokking getmntent(). + + * xargs/xargs.c: + Added the -I and -L options; also -E takes an argument which is not optional. + +2004-12-07 James Youngman <jay@gnu.org> + + * find/fstype.c: Use xstat() not stat() to examine things. + + * find/find.c: Explain why #ifdef EOVERFLOW. + + * find/find.c: EOVERFLOW is not defined on UNICOS. + + * NEWS: Corrected typo. + +2004-12-11 James Youngman <jay@gnu.org> + + * find/parser.c: Readability improvement to the usage message. + + * find/find.c: Oops. Fixed unmatched #endif. + + * find/testsuite/find.gnu/printf.exp, find/testsuite/find.gnu/printf.xo, THANKS, configure.in, find/testsuite/Makefile.am, find/testsuite/config/unix.exp: + Fixed Savannah bug #11280 + + * find/find.c: + Remember to set path_length and curdepth in process_top_path(). + +2004-12-12 James Youngman <jay@gnu.org> + + * NEWS: Added a summary of the changes so far. + + * find/tree.c: Made some of the error messages more self-explanatory + + * find/pred.c: Print pointers with %p, not %x. + + * find/find.c: Moved option data into struct options. + + * find/find.1: clarifications + + * find/testsuite/find.gnu/comma.exp: + Limit the amount of searching with maxdepth. + + * doc/find.texi: clearer description of how -prune works + + * ChangeLog: Removed duplicate entry. + + * configure.in, find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/tree.c, find/util.c: + Separated ariables representing current state from variable representing option information + +2004-12-19 James Youngman <jay@gnu.org> + + * doc/find.texi: + Indicate that "cd /; find tmp -wholename /tmp" will never match anything. + + * doc/find.texi: Documented locate --statistics. + + * locate/locate.1: Documented the --statistics option. + + * locate/locate.c: Added support for the -S option. + +2004-12-23 James Youngman <jay@gnu.org> + + * locate/locate.c: + Applied bugfixes from Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl>. + (lc_strcpy): Zero-terminate result. + (add_visitor): Update lastinspector. + (visit_substring_match_casefold): fix off-by-one error. + (new_locate): Move visit_exists down to improve performance. + (new_locate): Don't fold case when getting stats. + +2004-12-31 James Youngman <jay@gnu.org> + + * NEWS: Brought up to date with recent changes + + * doc/find.texi: + Don't need to nest the "race conditions with..." sections so deeply. + + * doc/find.texi: Corrected some spelling errors. + + * doc/find.texi: Added new "Security Considerations" chapter. + +2005-01-02 James Youngman <jay@gnu.org> + + * ChangeLog: Updated with recent changes. + + * NEWS: + Bas van Gompel: two-line patch to locate.c to make locate's -i and -w + options work if -e is in use. + + * THANKS: Added Bas van Gompel. + + * locate/locate.c: + Bas van Gompel: (visit_exists) when testing for the existence of the + file, check the real filename [printname], not the case-converted + filename [testname]. Really these argument names are badly chosen. + + * find/find.1, doc/find.texi: + Improved the documentation for -perm, with plenty of examples, + following a comment by Dan Jacobson that the comment "Symbolic modes + use mode 0 as a point of departure" is baffling and unhelpful. + + * locate/locate.c: + Suggestion and patch from Bas van Gompel: (new_locate): Fix display of + negative compression ratios. + +2005-01-03 James Youngman <jay@gnu.org> + + * doc/find.texi: + Oops. Had duplicated an entire section. Fortunately this was after + @bye, so there was no adverse effect. + + * NEWS: locate -b. + + * doc/find.texi, locate/locate.1: document locate -S + + * configure.in, doc/find.texi, locate/locate.1, locate/locate.c: + Support locate -b as a synonym for locate --basename + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + distcheck + + * find/testsuite/config/unix.exp: + Clean up (delete) find.out at at the end of the test. + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c, find/pred.c: + Implemented the -samefile test for find + +2005-01-05 James Youngman <jay@gnu.org> + + * find/parser.c: + Fixed Savannah bug 11495: fallthrough from -printf format processing + from 'n' case to 'd' case. + +2005-01-06 James Youngman <jay@gnu.org> + + * xargs/testsuite/inputs/lines.xi, xargs/testsuite/xargs.posix/l2.exp, xargs/testsuite/Makefile.am: + Tests for the -L option + + * xargs/testsuite/config/unix.exp: When a test fails, show the diffs + + * xargs/testsuite/xargs.posix/l2.exp, xargs/testsuite/xargs.posix/l2.xo: + tests for the -l option + + * xargs/testsuite/Makefile.am: Added extra test files + + * xargs/testsuite/xargs.sysv/trace.exp, xargs/testsuite/xargs.sysv/trace.xe, xargs/testsuite/xargs.sysv/trace.xo: + Added tests for the -t option + + * xargs/testsuite/config/unix.exp, xargs/testsuite/inputs/foobar.xi, xargs/testsuite/xargs.gnu/r.exp, xargs/testsuite/xargs.gnu/r.xo, xargs/xargs.1: + Use a blanks-only input file for cases where there is supposed to be no output + + * xargs/testsuite/inputs/blank.xi: Initial version. + + * xargs/xargs.1: + Corrected a typo; also indicate that it's impossible to use xargs + securely due to the race condition. + +2005-01-07 James Youngman <jay@gnu.org> + + * lib/Makefile.am, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c: + Refactored xargs to use an external library function from the new file buildcmd.c + + * configure.in: no longer the same as the released 4.2.11 version + +2005-01-08 James Youngman <jay@gnu.org> + + * find/find.c: Fixed typo in comment. + + * find/defs.h, find/find.c, find/parser.c, find/pred.c: + We now understand but do not implement -execdir (a *BSD invention, and a very useful security enhancement) and -okdir (the obvious companion to it) + + * locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c: + The GNU coding standard requires a space between the function name and + its parenthesised argument list. + + * find/defs.h: + Understand the -exec ... {} \+ construction (for multiple + replacement). No support yet. + + * locate/locate.1: + Indicate that empty elements in the dbpath are treated as synonyms for + the default database. + + * locate/locate.c: + Support empty elements in the dbpath as synonyms for the default + database. These colons can be leading, trailing or in the middle of + the string. We no longer com,plain if the user does this. + + * lib/nextelem.c: + If curdir_ok is 0 and an element is empty, return "" instead of NULL + so that the caller knows to keep calling us. + + * find/find.c, find/pred.c, import-gnulib.sh, locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c: + Savannah bug 11517: find, xargs, locate, etc. should not hide write failures; patch from Jim Meyering + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + changed .pot creation date + + * THANKS, AUTHORS: Take into account the FSF copyright-assignments list + + * doc/find.texi: + If -quit is used, the exit value can be nonzero if errors have occurred. + + * find/find.1: + Removed incorrect comment about -H, -P and -follow in HISTORY. + +2005-01-09 James Youngman <jay@gnu.org> + + * find/defs.h, find/find.c, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c: + Initial implementation of -exec ..{} +, but currently disabled since not yet working + +2005-01-15 James Youngman <jay@gnu.org> + + * find/testsuite/find.gnu/printf.exp, find/testsuite/find.gnu/printf.xo: + Added extra tests for more printf formats; patch by Andreas Metzler + + * locate/locate.c: + Ensure that the new long options have a relevang short option too. + Also bring usage message into line with the options actually + supported. Thanks to Bas van Gompel for noticing this defect. + + * locate/locate.1: + Escape "-" in SYNOPSIS. Thanks to Bas van Gompel for noticing this + defect. + + * ChangeLog: Fixed typos. + + * doc/find.texi: + Documented -execdir, and the "+" variants of -exec and -execdir. + + * find/find.1: Documented -execdir. + + * xargs/xargs.c: + Updated to bring into line with bc_*() interface changes + + * ChangeLog: Updated with recent changes. + + * find/defs.h, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h: + Implemented -execdir and -okdir + + * find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c: + First working version of -exec ...+ + +2005-01-16 James Youngman <jay@gnu.org> + + * find/find.c, find/pred.c: + When completing incomplete multiple execs, use 'eval_tree' not 'predicates' + + * lib/buildcmd.c: + Oops, initialise state->cmd_initial_argv_chars to zero. + + * find/find.1: + Document the way that -execdir and -okdir will refuse to wqork if ">" + is on $PATH. Also document -okdir in the manpage. + + * find/parser.c: + -execdir and -okdir are insecure if $PATH includes the current + directory, and so they refuse to work if the user has done that. + + * find/pred.c: + Oops; for -exec ... {} +, pass arguments to bc_push_arg() in the right + order. Problem spotted by Geoff Clare. + + * TODO: Removed items which have now been done. + + * lib/buildcmd.c: Tidied up formatting of arg list for bc_do_insert + +2005-01-17 James Youngman <jay@gnu.org> + + * ChangeLog: Brought up to date with recent changes. + + * NEWS: Documented the changes so far. + + * find/testsuite/find.gnu/exec-many-rtn-success.xo: + Expected output for exec-many-rtn-success.exp + + * find/find.1: + Indicate that -quit still ensures that pending commands are invoked + + * doc/find.texi: + Indicate that -quit still causes partial command lines to be invoked, + but there are some types of fatal error which leave such commands + uninvoked. + + * find/defs.h, find/find.c, find/pred.c, find/testsuite/Makefile.am, find/testsuite/config/unix.exp: + Fixed savannah bug #11625 Wrong return status for -exec ... \; when command fails; also execute any pending commands when doing -quit + + * find/testsuite/find.gnu/exec-many-rtn-failure.exp, find/testsuite/find.gnu/exec-many-rtn-failure.xo, find/testsuite/find.gnu/exec-many-rtn-success.exp, find/testsuite/find.gnu/exec-one-rtn-fail.exp, find/testsuite/find.gnu/exec-one-rtn-fail.xo, find/testsuite/find.gnu/exec-one-rtn-success.exp, find/testsuite/find.gnu/exec-one-rtn-success.xo: + Various test cases for succeeding and failing forms of -exec \; and -exec {} + + + * find/pred.c: "-exec ... {} +" always returns "true". + + * configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, find/tree.c, find/util.c: + Implemented d_type optimisation but not working correctly, so currently disabled + + * lib/savedirinfo.h, lib/savedirinfo.c: + Initial implementation (temporarily disabled). + + * lib/Makefile.am: Resolved merge conflict. + + * lib/Makefile.am: + Make sure nextelem.h is included in the list of sources. + + * find/parser.c, lib/nextelem.c, lib/nextelem.h, locate/locate.c: + Use prototypes for next_element() to make sure it is called correctly. + +2005-01-18 James Youngman <jay@gnu.org> + + * lib/savedirinfo.h: Added on d_type_optimisation also + + * lib/savedirinfo.c: Added on branch d_type_optimisation also. + + * find/pred.c: Added assert that we actually know the file type by + the time pred_type() is called + + * find/find.c: Always initialise state.have_stat = false when + starting to work with a new file + +2005-01-21 James Youngman <jay@gnu.org> + + * xargs/testsuite/Makefile.am: Added name of missing input file. + + * find/testsuite/Makefile.am: + Distribute a few files that we had forgotten about + + * xargs/testsuite/Makefile.am: Added some missing files. + + * lib/Makefile.am: Also need buildcmd.h. + + * xargs/testsuite/Makefile.am: Fixed a typo. + + * NEWS: Indicate the d_type performance improvement + +2005-01-22 James Youngman <jay@gnu.org> + + * NEWS, configure.in: Prepare for release of findutils-4.2.12 + + * ChangeLog: Brought up to date with recent changes. + + * Makefile.am, import-gnulib.sh, po/Makefile.in.in, po/Makevars, + po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, + po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, + po/pl.po, po/pt_BR.po, po/remove-potcdate.sin, po/ru.po, po/sk.po, + po/sv.po, po/tr.po: Switch to using the gnulib gettext module, to + ensure that 'make distcheck' works with current xgettext, + autoconf, etc. + + * find/testsuite/config/unix.exp: + Oops, we do need to clean up after all. + +2005-01-23 James Youngman <jay@gnu.org> + + * configure.in: + Invoke gl_INCLUDED_REGEX directly to ensure successful compilation on + systems like Solaris, which lacks those functions in libc (fixes GNU + Savannah bug #11710). + + * locate/locate.1: -S is a synonym for --statistics + + * doc/find.texi: Documented the new -H, -L and -P options. + + * locate/locate.1, locate/locate.c: Implement options -L + (default), -H and -P, which mean the same things as for find, + except for the fact that the default is -L rather than -P + + * find/find.1: Corrected definition of the exit status for -quit. + + * find/find.c, find/pred.c: If DEBUG_STAT is set, issue a debug + message when we call chdir() so that we can figure out what is + actually being stat()ed + + * locate/updatedb.sh: + Removed spurious newline from help message (bug report from Karl + Berry). + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, + po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, + po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po, + Makefile.am, NEWS, configure.in, find/defs.h, find/find.c, + find/parser.c, find/pred.c, find/tree.c, find/util.c, + import-gnulib.sh, lib/savedirinfo.c: Merged the d_type + optimisation code; this is disabled by default, and can be enabled + with 'configure --enable-d_type-optimisation' + + * NEWS: + Updated optimisation NEWS item to indicate the effect on runtime. + +2005-01-24 James Youngman <jay@gnu.org> + + * Makefile.am: Work around the fact that automake-1.7 actually + works, and correctly distributes regex.c; hence dist-hook should + only copy gnulib/lib/regex.c if this has not already been done. + + * find/defs.h, find/find.c, find/pred.c, + find/testsuite/Makefile.am, + find/testsuite/find.gnu/printf-symlink.exp, + find/testsuite/find.gnu/printf-symlink.xo, + find/testsuite/find.gnu/xtype-symlink.exp, + find/testsuite/find.gnu/xtype-symlink.xo: Fixes for -xtype and + -printf %Y, which had been the wrong way around. + + * NEWS: Avoid including the find.gnu subdirectory in the + distributed file more than once + + * locate/locate.c: + Move the printing of the statistics into a new function, print_stats() + + * find/testsuite/Makefile.am: Avoid including the find.gnu + subdirectory in the distributed file more than once + + * import-gnulib.sh: + We need the regex module anyway, to allow compilation on Solaris + +2005-01-25 James Youngman <jay@gnu.org> + + * NEWS, configure.in, po/da.po, po/de.po, po/es.po, po/et.po, + po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, + po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, + po/sv.po, po/tr.po: Preparing to release findutils-4.2.14 + +2005-01-25 James Youngman <jay@gnu.org> + + * configure.in: Bumped version no. + + * doc/find.texi: + Document --mmap and --stdio as being synonyms of -m and -s. + + * locate/locate.1: + Document --mmap and --stdio as synonyms of -m and -s. + + * locate/locate.c: + Document -m and -s (both no-ops) in the usage message. + + * doc/find.texi, locate/locate.1: Document -m and -s as no-ops. + + * ChangeLog: Updated for release of findutils-4.2.14. + + * NEWS, configure.in, po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po: + Preparing to release findutils-4.2.14 + +2005-01-27 James Youngman <jay@gnu.org> + + * doc/find.texi: Documented --regex. + + * NEWS, locate/locate.1, locate/locate.c, locate/testsuite/Makefile.am, locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/regex1.exp: + Implemented locate --regex - but needs documenting in Texinfo manual. + +2005-01-28 James Youngman <jay@gnu.org> + + * configure.in: + Make --enable-d_type-optimization and --enable-d_type-optimisation + both work. + + * configure.in: Assume --enable-d_type-optimisation by default + + * find/parser.c: Indicate which features are enabled/disabled + + * locate/testsuite/config/unix.exp: + Clean up the files left behind by the locate_textonly test + +2005-01-29 James Youngman <jay@gnu.org> + + * configure.in: No longer version 4.2.15 - we've changed the manual. + + * doc/find.texi: + Clarified the txt about adding extra tests with post-processing via + xargs, and recommend -execdir instead for security reasons. + + * doc/find.texi: Patch from Karl Berry: + - more entries for the dir file + - use @copying so the copyright ends up in the HTML etc. output. + (This is the only really important change.) + - put @contents after the title page, for conventional toc location. + - use @ifnottex to wrap the Top node instead of @ifinfo, for the sake of + HTML output, etc. + + * NEWS, configure.in, po/da.po, po/de.po, po/es.po, po/et.po, + po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po, + po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, + po/sv.po, po/tr.po: Prepared to release findutils-4.2.15 + + * ChangeLog: Updated from CVS log. + +2005-01-30 James Youngman <jay@gnu.org> + + * doc/Makefile.am: + Added rules for extra targets that we buld to update the web site. + +2005-01-31 James Youngman <jay@gnu.org> + + * find/find.c, lib/nextelem.c, lib/nextelem.h, locate/code.c, + locate/frcode.c, locate/testsuite/config/unix.exp, + xargs/testsuite/config/unix.exp, xargs/xargs.c: Updated/corrected + the email address for David MacKenzie, one of the original authors + of findutils + + * doc/Makefile.am: The HTML version of the manual generated for + the GNU project website has each node in a separate file, not each + chapter in a separate file; adjust filenames accordingly + + * find/parser.c, find/pred.c, lib/savedirinfo.c: + Removed some unused variables (patch from Dmitry V. Levin) + + * find/find.c: + Patch from Dmitry V. Levin <ldv@altlinux.org>: Add subfs to the list + of filesystems which are likely to be automounted. + + * m4/findlib.m4: Corrected typo (pointed out by Dmitry V. Levin). + + * find/testsuite/config/unix.exp, + find/testsuite/find.gnu/name-period.xo, + find/testsuite/find.gnu/posix-dflt.xo, + find/testsuite/find.gnu/posix-h.xo, + find/testsuite/find.gnu/posix-l.xo, + find/testsuite/find.gnu/printf.exp, + find/testsuite/find.gnu/printf.xo: Systems differ in the order in + which filenames are returned by readdir. Hence sort the output of + 'find' before comparing against the expected-output file. We + therefore also have the lines in the .xo files ready-sorted. + + * po/ca.po: Updated from Translation Project + + * po/ChangeLog: Updated from CVS logs. + + * po/de.po, es.po, et.po, fr.po, gl.po, id.po, it.po, ko.po, nl.po, + pl.po, pt_BR.po, ru.po, sk.po, sv.po, tr.po, da.po: Ran update-po + + * po/be.po, ca.po, el.po, eo.po, fi.po, hr.po, hu.po, ja.po, lg.po, + ms.po, ro.po, sl.po, sr.po, zh_CN.po: Added new translation files + from the Translation Project web site + + * po/da.po, de.po, es.po, et.po, fr.po, ga.po, gl.po, id.po, it.po, + ko.po, nl.po, pl.po, pt_BR.po, ru.po, sk.po, sv.po, tr.po: Updated + .po files from the Translation Project site + +2005-02-01 James Youngman <jay@gnu.org> + + * ChangeLog: Updated from CVS log. + +2005-02-02 James Youngman <jay@gnu.org> + + * find/pred.c: + To allow compilation on cygwin, use base_name(), not basename(). + + * po/tr.po: Updated Turkish translation from TP + + * po/ro.po: Updated Romanian translation from TP + + * po/da.po, po/et.po: Updated translations from MT project website + +2005-02-03 James Youngman <jay@gnu.org> + + * doc/find.texi, find/pred.c: When state.curdepth is 0, our + working directory is not the directory containing the file we are + processing. + +2005-02-05 James Youngman <jay@gnu.org> + + * THANKS: + Added thanks for Dimitry - has produced many patches, bugfixes and + suggestions. + + * find/pred.c: + Fixed Savannah bug #11866: typo in pred_okdir() renders it useless + + * find/pred.c: + Savannah bug #11861: undefined symbol 'basename' on IRIX 5.3 + + * NEWS, configure.in, po/be.po, po/ca.po, po/el.po, po/eo.po, + po/fi.po, po/ga.po, po/hr.po, po/hu.po, po/ja.po, po/lg.po, + po/ms.po, po/ro.po, po/sl.po, po/sr.po, po/zh_CN.po: Added new + translations + + * ChangeLog: Updated from CVS prior to release of 4.2.16. + + * po/ChangeLog: Updated from CVS. + + * NEWS, configure.in: Preparing to release 4.2.16 + + * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot, + po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po, + po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sl.po, po/sv.po, + po/tr.po: make update-po prior to 'make distcheck' + + * po/fetch-po-files: This is the first version we actually used. + + * find/find.c: process_top_path() fixed compilation warning. + + * find/find.c: process_top_path(): avoid processing this item if + we can't chdir to the basename of the named file. + + * lib/Makefile.am: Always build forcefindlib.c + + * locate/locate.c: Say 'base name' rather than 'basename' in comments + + * find/pred.c, find/find.c: process_top_path(): Proper bugfix for + correct handling of items at depth 0 (i.e. specified on the + command line) - do an extra chdir to ensure that we're in the + directory containing the item before calling process_path(). + Hnece also undo the previous 'quick fix' for the same problem + + * doc/find.texi: + -execdir no longer has to treat anything as special, even at depth 0. + +2005-02-05 Dmitry V. Levin <ldv@altlinux.org> + + * find/parser.c, find/pred.c: Additional tweaks for + -execdir/-okdir actions. + + * find/parser.c (new_insert_exec_ok): Disable ignore_readdir_race + for -execdir/-okdir. + + * find/pred.c (pred_execdir, pred_okdir): Use state.rel_pathname + instead of basename(pathname). Do not add "./" prefix for + absolute pathnames. + + * find/find.c (process_top_path): Treat "/" similarly to ".". + + * xargs/testsuite/xargs.posix/savannah-11865.exp, + xargs/testsuite/xargs.posix/savannah-11865.xo, xargs/xargs.c: + Fixed Savannah bug #11866 (not resetting number of used chars in + the command buffer) - reported by Dimitry V. Levin + +2005-02-06 James Youngman <jay@gnu.org> + + * doc/find.texi: + -size: Clarification - -size gives a result consistent with 'wc -c' + for example. + + * Makefile.am, find/testsuite/Makefile.am, + find/testsuite/find.gnu/execdir-root-only.exp, + find/testsuite/find.gnu/execdir-root-only.xo, + locate/testsuite/Makefile.am, xargs/testsuite/Makefile.am: + dist-hook: Ensure that we distribute all the .po files and all the + testsuite files + + * po/pl.po: Updated Polish translation from TP website + +2005-02-07 James Youngman <jay@gnu.org> + + * find/testsuite/Makefile.am: + New test, find/testsuite/find.gnu/follow-arg-parent-symlink.exp. + + * find/testsuite/find.gnu/follow-arg-parent-symlink.exp, + find/testsuite/find.gnu/follow-arg-parent-symlink.xo, find/find.c: + Fix for starting point /foo/bar/baz where bar is a symlink but baz + is not - we should chdir into bar there even if it is a symbolic + link + +2005-02-07 James Youngman <jay@gnu.org> + + * find/testsuite/config/unix.exp: Re-sort the .xo file using the + calling user's locale, because our 'pre-sorted' .so output file + may not be sorted with the same collating order as 'sort' used to + order the output of "find. Bug spotted by Vin Shelton and Dimitry + V. Levin. + + * find/testsuite/Makefile.am: + New test, find/testsuite/find.gnu/follow-arg-parent-symlink.exp. + + * find/testsuite/find.gnu/follow-arg-parent-symlink.exp, + find/testsuite/find.gnu/follow-arg-parent-symlink.xo, find/find.c: + Fix for starting point /foo/bar/baz where bar is a symlink but baz + is not - we should chdir into bar there even if it is a symbolic + link + +2005-02-08 James Youngman <jay@gnu.org> + + * xargs/testsuite/Makefile.am: Distribute the .xe files also. + + * Makefile.am: Check that we have the right number of .xe files in + the distribution also. + + * ChangeLog, NEWS, configure.in + Preparing to release findutils-4.2.17 + +2005-02-09 James Youngman <jay@gnu.org> + + * find/find.1: Indicate that $TZ affects from printf-format + results, and add extra cross-references in the SEE ALSO section. + +2005-02-10 James Youngman <jay@gnu.org> + + * doc/find.texi: Talk about the problem where find will not work + if you have a filesystem mounted from an unresponsive NFS server. + +2005-02-12 James Youngman <jay@gnu.org> + + * configure.in, doc/find.texi, find/defs.h, find/find.c, + find/parser.c: Fix for Savannah bug #11879, that + init_mounted_dev_list() causes find to hang on systems which are + clients to dead NFS servers + +2005-02-13 Dmitry V. Levin <ldv@altlinux.org> + + * find/find.c: remove test code snippet (time(NULL) was used to + place a marker for spotting with strace(), but was not actually + needed). + + * find/find.c (safely_chdir_nofollow): must not fall back on + safely_chdir_lstat() because that will expose it to race condition + exploits, making it pointless. + + * find/find.c (safely_chdir_lstat): Move + complete_pending_execdirs() up into safely_chdir(), because we + need to do that in either case. + +2005-02-13 James Youngman <jay@gnu.org> + + * find/find.1: Miscellaneous small clarifications and improvements. + + * doc/find.texi: Added Info nodes and menus under "Changing the + Current Working Directory" so that it doesn't generate such a huge + Info page. + + * find/find.c: Parenthesise #if defined(...). + +2005-02-15 Aaron Hawley <Aaron.Hawley@uvm.edu> + + * find/find.1: Notes about -H actually apply to -L. Said + paragraph is duplicated two paragraphs later. Also typos: nno, + ibmue, surrpounding + +2005-02-15 James Youngman <jay@gnu.org> + + * ChangeLog: Updated with recent changes + + * find/find.1: + Emphasise that -L causes find to recurse into subdirectories pointed + to by symbolic links. + + * find/find.1: + Patch to find.1 from Aaron Hawley <Aaron.Hawley@uvm.edu>: + + * Notes about -H actually apply to -L. + * Said paragraph is duplicated two paragraphs later. + * Typos: nno, ibmue, surrpounding + +2005-02-16 James Youngman <jay@gnu.org> + + * NEWS, configure.in: Prepared for release of 4.2.18. + + * ChangeLog: Updated prior to release of 4.2.18. + + * find/testsuite/Makefile.am: + Distribute the test cases for the recent "find -depth" bug. + + * find/testsuite/find.posix/depth1.exp, find/testsuite/find.posix/depth1.xo: + Added test case for find -depth bug reported by Joseph S. Myers + + * find/find.c: + If -depth is in effect, processing of the subdirectories invalidates + the information in 'state'. Therefore once we get around to + processing the predicates, restore the information that we keep in + 'state' and in 'stat_buf'. + +2005-02-19 James Youngman <jay@gnu.org> + + * NEWS: Corrected the summary of the "find -depth" bug. + +2005-02-20 James Youngman <jay@gnu.org> + + * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, + po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, + po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, + po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, + po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sr.po, + po/sv.po, po/tr.po, po/zh_CN.po: Updated italian translation + + * doc/find.texi: Corrected a typo. + + * find/find.c: + Read the mounted device list afer parsing the command line, so that + for example "find --version" still works (in response to Savannah bug + #12044). + + * configure.in: We've moved on from findutils-4.2.18. + +2005-02-21 James Youngman <jay@gnu.org> + + * find/find.c: Fixed accidental C99 dependency. + +2005-02-22 James Youngman <jay@gnu.org> + + * find/find.c: + Fixed Savannah bug #12099 (misinterpretation of system versions + leading to possible incorrect disabling of O_NOFOLLOW). Reported by + Dmitry V. Levin. + + * find/pred.c: + For the %h format, don't bail out early as the format might contain + something else too. + +2005-02-23 James Youngman <jay@gnu.org> + + * Makefile.am: Fix Savannah bug #12064 - 'make distclean' deletes + regex.c but should not. + + * find/testsuite/Makefile.am, + find/testsuite/find.gnu/printf-h.exp, + find/testsuite/find.gnu/printf-h.xo: Added test case for Savannah + bug #12085 (-printf %h). + + * NEWS, doc/find.texi, find/find.1, find/pred.c: + %h now expands to '.' instead of nothing. + +2005-02-25 James Youngman <jay@gnu.org> + + * po/ga.po: Updated Irish po file + +2005-02-26 James Youngman <jay@gnu.org> + + * po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, + po/zh_CN.po, po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, + po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, + po/fr.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, + po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, + po/pt_BR.po, po/ro.po, po/ru.po: Added new Vietnamese translation + + * configure.in: Added new Vietnamese translation. + +2005-02-27 James Youngman <jay@gnu.org> + + * README: Indicate how the reader can verify the release. + +2005-02-28 James Youngman <jay@gnu.org> + + * doc/find.texi: Typo: O_NOFOLLOW, not O_FOLLOW + + * import-gnulib.sh: + Suggestion from Martin Buchholz; unset CDPATH to prevent "cd" echoing + the new directory. + +2005-03-01 James Youngman <jay@gnu.org> + + * find/find.c, find/testsuite/find.posix/sv-bug-12181.exp, + find/testsuite/find.posix/sv-bug-12181.xo: Fixed SourceForge bug + 12181 (find -H symlink-to-dir reports 'Too many Symbolic links') + and bug 12044 (find still hangs on dead NFS filesystems on + Solaris) + +2005-03-03 James Youngman <jay@gnu.org> + + * find/find.c: + safely_chdir_lstat(): if we didn't end up in the right place, and then + fchdir() fails, we can't return to the directory we started in. + Therefore, issue a fatal error message and exit. + +2005-03-04 James Youngman <jay@gnu.org> + + * configure.in: Modernized the way we call AC_INIT and + AM_INIT_AUTOMAKE + + * locate/locate.c, find/pred.c, find/find.c: + Eliminated some compiler warnings + + * find/pred.c: Clarified the meaning of a comment. + + * find/testsuite/Makefile.am: Added sizes.exp, sizes.xo. + + * find/testsuite/find.posix/sizes.xo, + find/testsuite/find.posix/sizes.exp: Added tests for -size + predicate + +2005-03-06 James Youngman <jay@gnu.org> + + * ChangeLog: Added latest changes. + + * po/pt.po, configure.in: Added Portuguese translation + +2005-03-07 James Youngman <jay@gnu.org> + + * Released findutils-4.2.19. + + * find/testsuite/find.posix/sizes.exp: + Use 2>/dev/null instead of 2>&1, because Tcl understands the former + but not the latter. + + * find/testsuite/Makefile.am: Also distribute sv-bug-12181.xo. + + * find/testsuite/Makefile.am: Distribute sv-bug-12181. + + * find/testsuite/Makefile.am: Distribute sv-bug-12230. + + * NEWS: Updated with new news. + + * ChangeLog: Brought up to date. + + * lib/buildcmd.c, find/testsuite/find.gnu/sv-bug-12230.exp: Fixed + Savannah bug #12230, in which '-exec echo == {} +' is always run, + even if there were no matched files. + +2005-03-08 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * import-gnulib.sh: Re-enable creation of gnulib/m4/Makefile.am. + +2005-03-10 James Youngman <jay@gnu.org> + + * po/nl.po: Updated Dutch PO file + +2005-03-17 James Youngman <jay@gnu.org> + + * configure.in: Preprare for release of 4.2.20. + + * NEWS: Updated prior to release of 4.2.20. + + * ChangeLog: Updated with recent changes. + + * THANKS: Thank Bas van Gompel, but only once. + + * THANKS: Thank Bas van Gompel and Aaron S. Hawley. + + * po/vi.po: Updated Vietnamese PO file + +2005-03-22 James Youngman <jay@gnu.org> + + * import-gnulib.sh: Include the new gnulib module stat-macros + + * configure.in: + CVS code is (will shortly be) no longer identical to the 4.2.20 release + +2005-04-01 James Youngman <jay@gnu.org> + + * locate/locate.1, locate/updatedb.1, xargs/xargs.1: Trivial + change from A Costa <agcosta@gis.net>, fixing typos in manual + pages for xargs, locate and updatedb; fixes Savannah bug #12500, + Debian bug #301934 + +2005-04-04 James Youngman <jay@gnu.org> + + * configure.in, import-gnulib.sh: + We no longer need gnulib/m4/Makefile.am + + * po/vi.po: Updated Vietnamese translation + + * locate/updatedb.sh: + Savannah bug #12491: Only use the "-s" option to "su" if it is + supported. + +2005-04-18 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * doc/find.texi: Document locate --non-existing (-E). + * locate/locate.1: Ditto. + * locate/locate.c: Implement --non-existing (-E). + +2005-04-18 James Youngman <jay@gnu.org> + + * Added test suite tests for Bas van Gompel's changes. + +2005-05-03 Dmitry V. Levin + + * Added xargs test suite tests by Dmitry V. Levin, together with + bugfixes which ensure that the tests pass. + +2005-05-02 James Youngman <jay@gnu.org> + + * AUTHORS: + Added Dimitry (his new test suite contribution required a copyright + assignment). + +2005-05-09 James Youngman <jay@gnu.org> + + * find/parser.c: + The previous change fixed Savannah bug #12999. This change doesn't do + anything, it's only intended to be a place to record the Savannah bug + ID we've just fixed. + + * find/parser.c: + Oops. Initialise the variable which indicates which regex syntax to + use. We use POSIX basic regular expressions. + + * find/parser.c: + Suggestion by Ed Avis: point out that "-name foo/bar" will almost + always evaluate to false. Suggest to the user what alternatives they + might find useful. + +2005-05-16 James Youngman <jay@gnu.org> + + * find/find.c, find/parser.c, find/pred.c, find/tree.c: + Trivial change: don't use i18n support for debug-only messages + + * ChangeLog: Added ChangeLog entry crediting Dmitry + +2005-05-23 Paul Eggert <eggert@cs.ucla.edu> + + Adjust to recent gnulib changes. + * import-gnulib.sh: Get config.rpath from gnulib/build-aux, + not gnulib/config. + * find/parser.c (parse_perm): Ignore umask when parsing + symbolic permissions. Adjust to new modechange API. + +2005-05-29 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + Add a ``--print'' (``-p'') option. (to cancel side-effects of -c/-S) + Allow ``--statistics'' in combination with non-options. + * doc/find.texi: Add documentation for locate --print (-p), and the + use of non-options with --statistics. + * locate/locate.1: ditto. + * locate/locate.c: Read each database only once. + +2005-05-30 James Youngman <jay@gnu.org> + + * locate/locate.c: rename new_locate() to locate() since + old_locate() has gone the way of the dodo. + +2005-06-07 James Youngman <jay@gnu.org> + + * NEWS: Updated with recent changes. + + * mdate-sh: Use the mdate-sh from automake + + * find/parser.c, find/pred.c, find/tree.c, find/util.c, + lib/Makefile.am, lib/forcefindlib.c, lib/listfile.c, + lib/listfile.h, locate/code.c, locate/locate.c, find/defs.h, + find/find.c: Fix Savannah bug #13324: Fix compiler warnings for + GCC-3.4 + + * locate/locate.c: + Fixed Savannah bug #13325: Quoting of output filenames in locate + should match find. + + * find/parser.c: + Fixed Savannah bug #13319: C9X-ism in parser.c (declaration after + statements). + + * find/pred.c, lib/Makefile.am, lib/listfile.c, lib/nextelem.c, + lib/printquoted.c, lib/printquoted.h, lib/qmark.c, NEWS, + doc/find.texi, find/defs.h, find/find.1, find/parser.c: Fixed + Savannah bug #13303, find should filter out non-printable + characters if outputting to tty + +2005-06-07 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * locate/locate.c: Fold case once, only when needed. + +2005-06-07 James Youngman <jay@gnu.org> + + * COPYING, debian/copyright, depcomp, doc/texinfo.tex, + find/defs.h, find/find.c, find/fstype.c, find/parser.c, + find/pred.c, find/testsuite/config/unix.exp, find/tree.c, + find/util.c, import-gnulib.sh, intl/Makefile.in, + intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c, + intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, + intl/dngettext.c, intl/explodename.c, intl/finddomain.c, + intl/gettext.c, intl/gettext.h, intl/gettextP.h, + intl/hash-string.h, intl/intl-compat.c, intl/l10nflist.c, + intl/libgettext.h, intl/libgnuintl.h, intl/loadinfo.h, + intl/loadmsgcat.c, intl/localcharset.c, intl/locale.alias, + intl/localealias.c, intl/ngettext.c, intl/plural.c, intl/plural.y, + intl/ref-add.sin, intl/ref-del.sin, intl/textdomain.c, + lib/buildcmd.c, lib/buildcmd.h, lib/extendbuf.c, lib/extendbuf.h, + lib/forcefindlib.c, lib/listfile.c, lib/listfile.h, + lib/modetype.h, lib/nextelem.c, lib/nextelem.h, lib/printquoted.c, + lib/printquoted.h, lib/qmark.c, lib/savedirinfo.c, + lib/savedirinfo.h, lib/strspn.c, lib/wait.h, lib/waitpid.c, + locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, + locate/locatedb.h, locate/testsuite/config/unix.exp, + locate/updatedb.sh, missing, po/fetch-po-files, + xargs/testsuite/config/unix.exp, xargs/xargs.c: + Updated the FSF's postal address + + * ChangeLog: Corrected Bas's email address. + + * locate/locate.c: Updated copyright years. + +2005-06-08 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * NEWS, locate/locate.1, doc/find.texi: Document usage of `-' + to refer to stdin in database-path for locate. + * locate/locate.c: Change prototype for visitors and processors + throughout. Move reading the database and generating base_name + into visitors. Allow `-' to refer to stdin in database-path. + + * lib/printquoted.h: Include stdio.h. + +2005-06-07 James Youngman <jay@gnu.org> + + * ChangeLog, NEWS, configure.in: Updates prior to release + + * config.rpath: Added file required for 'make dist' + + * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, + po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, + po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, + po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, + po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, + po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po: + updated the po files for release + + * xargs/testsuite/Makefile.am: + Added in all the test files from Dmitry V. Levin. + +2005-06-08 James Youngman <jay@gnu.org> + + * ChangeLog, NEWS, configure.in: Updated for recent changes + + * doc/find.texi: + Explain that you should put the argument of -name in quotes. + + * find/find.1: + Added a new "NON-BUGS" section pointing out things that look like bugs + but are caused by mistakes or misunderstandings. + + * doc/find.texi, locate/locate.1: Applied Bas van Gompel's patch + which allows the database to be read from stdin. + + * locate/locate.c: + Read the database in by using the "visitor" pattern. Modified file + header comment to indicate that we no longer use the efficient + algorith described in ;login:. Emit an error message if the + LOCATE_PATH variable implies that we should read stdin twice. + Most of this code is from Bas van Gompel. + + * AUTHORS: Credit Bas van Gompel for his work on locate. + + * lib/printquoted.h: Appled patch from Bas - fixing compiler warning. + +2005-06-09 James Youngman <jay@gnu.org> + + * locate/testsuite/config/unix.exp: + Use the new normalize_dir procedure throughout. + + * locate/testsuite/config/unix.exp: Move the normalisation into a + procedure. Don't rely on the "file normalize" command being + available (it's new in Tcl 8.4). + +2005-06-10 James Youngman <jay@gnu.org> + + * find/find.c, lib/savedirinfo.c, lib/savedirinfo.h: Switch to a + new scheme for saving directory entry data which is extensible to + allow additional data to be saved. + +2005-06-11 James Youngman <jay@gnu.org> + + * find/find.1: Corrected spelling error 'writeable' to 'writable'. + + * find/find.1, locate/locate.1: + Fixed Savannah bug #13363, typos in manpages (tiny change) + +2005-06-12 James Youngman <jay@gnu.org> + + * find/find.c, NEWS: + Savannah bug #13381 (Debian bug 313081): if we have O_NOFOLLOW, + safely_chdir() does not need to call stat(). However, process_dir() + used to rely on using that stat information. To work around this + problem, there is now an output parameter in safely_chdir() which + indicates if the stat buffer is valid. + This bug has possible security implications. + + * find/find.1, doc/find.texi: + Applied patch from Andreas Metzler, improving the wording for the + documentation of the %k and %b format directives. This patch does + not require a copyright assignment as it consists of several + copies of the same small wording change. + +2005-06-12 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * locate/locate.c: Implement --all (-A). + + * NEWS, doc/find.texi, locate/locate.1: Document locate --all (-A) + +2005-06-18 Dmitry V. Levin <ldv@altlinux.org> + + Additional documentation tweaks for -execdir/-okdir actions. + * find/parser.c (parse_help): Mention -execdir and -ordir options. + * doc/find.texi, find/find.1: Additionally document new options. + +2005-06-18 Martin Buchholz (tiny change) + + * find/defs.h, find/find.c, find/parser.c, doc/find.texi: Fix + typos/spelling errors (mostly in source code comments). + +2005-06-18 James Youngman <jay@gnu.org> + + * po/ga.po, tr.po: Updated Irish and Turkish translations. + + * po/pl.po: Did update-po + + * po/pl.po: + Updated Polish translation file from the Translation Project + + * po/ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po, findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po, ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po, ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po, be.po: + Did update-po + +2005-06-19 James Youngman <jay@gnu.org> + + * ChangeLog: Indicate that we made (are making) a release. + + * ChangeLog, NEWS, configure.in: Preparing to release 4.2.23 + + * doc/find.texi: Fixed Texinfo syntax error in previous change + + * doc/find.texi, xargs/xargs.1: + Document the fact that the -i and -L options are currently + incompatible (Savannah bug 13041). + + * locate/updatedb.1, locate/updatedb.sh: Fix Savannah bug 13411 - + reject trailing slashes in updatedb's --prunepaths, bacsue these + will never be matched + + * NEWS: Released findutils-4.2.23. + + * doc/find.texi, xargs/xargs.1: + Document the fact that the -i and -L options are currently + incompatible (Savannah bug 13041). + + * locate/updatedb.1, locate/updatedb.sh: Fix Savannah bug 13411 - + reject trailing slashes in updatedb's --prunepaths, because these + will never be matched. + +2005-06-19 Dmitry V. Levin <ldv@altlinux.org> + + * lib/savedirinfo.c: Fix two compilation warnings (which would + prevent compilation if "-Wall -Werror" is in effect). + +2005-06-20 James Youngman <jay@gnu.org> + + * xargs/xargs.c: + Removed some code which had already been disabled via the preprocessor. + +2005-06-24 Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl> + + * locate/locate.c (visit_count, visit_limit): New functions. + (locate): Use visit_limit or visit_count. Simplify main loop. + (main) Bail out early when limit is reached. + +2005-06-27 James Youngman <jay@gnu.org> + + * ChangeLog, locate/locate.c: Applied patch from Bas Van Gompel to + move match counting into a (new) visitor function + + * NEWS, configure.in: No longer 4.2.23, as we're moving on now + +2005-06-29 James Youngman <jay@gnu.org> + + * doc/find.texi: Applied patch from Aaron Hawley (Savannah patch + #3751: Typos and small suggestions to find.texi) + +2005-07-01 James Youngman <jay@gnu.org> + + * doc/find.texi: + Aaron pointed out a potentially-confusing sentence. I fixed it. + + * find/defs.h, find/find.1, find/find.c, find/parser.c, + find/pred.c, find/util.c: Allow consistency-checking of the + predicates, checking for example that actions all have side + effects + +2005-07-01 Jim Meyering <jim@meyering.net> + + With `-fprint F' or `-fprintf F', don't write diagnostics + to F when stderr is closed. + + * find/parser.c: Include "stdio-safer.h". + (open_output_file): Use fopen_safer, not fopen. + * import-gnulib.sh (findutils_modules): Add stdio-safer. + +2005-07-02 James Youngman <jay@gnu.org> + + * configure.in, find/defs.h, find/fstype.c, find/parser.c, + intl/dcigettext.c, lib/buildcmd.c, lib/listfile.c, + lib/savedirinfo.c, locate/locate.c, xargs/xargs.c: Assume unistd.h + is present - avoid using HAVE_UNISTD_H + +2005-07-03 James Youngman <jay@gnu.org> + + * find/Makefile.am: Don't need regexprops.c really... + + * lib/regextype.c, lib/regextype.h: + New files for selecting regex type based on a keyword + + * locate/locate.1: Documented the fact that we now use Emacs-style + regexps, not POSIX EREs, for compatibility with find -regex. + + * lib/Makefile.am, locate/locate.c, doc/find.texi, + find/Makefile.am, find/defs.h, find/find.1, find/find.c, + find/parser.c: Fixed Savannah bug #13495: find now uses + Emacs-style regexps by default + +2005-07-04 James Youngman <jay@gnu.org> + + * NEWS: *** empty log message *** + + * doc/find.texi: + Added a "Worked Examples" section. It currently only contains a + (long) example about deleting files. + + * .cvsignore: Some extra stuff to ignore. + +2005-07-06 James Youngman <jay@gnu.org> + + * find/defs.h, find/find.c, find/parser.c, find/pred.c: + Fixed Savannah bug #13650; programs run by -exec cannot read stdin + +2005-07-10 James Youngman <jay@gnu.org> + + * doc/find.texi: + Applied several documentation improvement patches from Aaron Hawley + + * ChangeLog, NEWS: Updated with recent changes. + + * NEWS: Recent gnulib changed have fixed -iregex + + * doc/find.texi, xargs/xargs.1: + Tiny patch from Andreas Metzler: xargs -I is like xargs -i, but the latter is deprecated + +2005-07-14 James Youngman <jay@gnu.org> + + * NEWS, doc/Makefile.am, doc/find.texi, lib/Makefile.am, + lib/regexprops.c, lib/regextype.c, lib/regextype.h: Added + --regextype and -regextype options to locate and find + respectively, and documented these + + * doc/find.texi: We use GNU Emacs regexps by default now. + + * doc/find.texi: + We require GNU sort in order for locate to handle newlines correctly, + not just GNU find. + +2005-07-15 James Youngman <jay@gnu.org> + + * po/da.po: Updated Danish translation from translation project + +2005-07-16 James Youngman <jay@gnu.org> + + * doc/find.texi: Updates following comments by Dave Gilbert. + + * NEWS: Corrected a typo. + + * doc/find.texi: + Added in the example about updating an aggregate timestamp file. + +2005-07-17 James Youngman <jay@gnu.org> + + * find/find.1: (tiny change) Corrections by Greg Wooledge + +2005-07-22 James Youngman <jay@gnu.org> + + * xargs/testsuite/xargs.posix/childfail.exp, xargs/xargs.c: Fix + Savannah bug #13878, in which xargs deals incorrectly with child + failure, returning 0 when it should return 123 + +2005-07-24 James Youngman <jay@gnu.org> + + * doc/Makefile.am: If the regexprops program has changed we should + re-run it, since it will probably now produce different output + + * lib/regextype.h: + Allow the caller to detect if one regex type is identical to another. + + * configure.in: + Define the preprocessor macro FINDUTILS for that code int he lib/ + directory can be slightly more reusable. + + * lib/regextype.c: + Allow the caller to detect if one regex type is identical to another. + + * lib/regexprops.c: + Made Texinfo style corrections suggested by Karl Berry. + +2005-07-26 James Youngman <jay@gnu.org> + + * lib/regexprops.c: Further small corrections from Karl. + + * doc/find.texi: + Reordered the sections in the manual to put the "Common Tasks" and + "Worked Examples" chapters together. + + * configure.in, find/find.c: Allow the leaf optimisation to be + disabled by default with the configure option + --disable-leaf-optimisation + + * find/find.c: Removed old code for antuqie version of savedir(). + + * lib/regextype.c: Put the syntaxes in alphabetical order. + + * lib/regexprops.c: Karl made some more readability suggestions. + +2005-07-27 James Youngman <jay@gnu.org> + + * xargs/testsuite/Makefile.am: Added new test case 'childfail.exp'. + + * doc/find.texi: + Updated the description of the safe-dir-change operation to reflect + what find now does on systems that lack O_NOFOLLOW. + + * NEWS, find/parser.c: Indicate in the output of find --version if + the leaf optimisation is enabled or not + + * find/find.c: Fixed typo. + + * find/find.c: If the link count of a directory starts off less + than two, disable the leaf optimisation for this directory. + +2005-07-28 James Youngman <jay@gnu.org> + + * find/find.1: + Say "other users" rather than "rest of the world" when talking about + Unix permissions. Fixes Savannah bug #4246. + +2005-07-29 James Youngman <jay@gnu.org> + + * NEWS, configure.in + Prepared for the release of findutils-4.2.24 + + * ChangeLog: Updated with recent changes. + + * NEWS, find/find.1, doc/find.texi: + Indicate that -ok and -okdir redirect stdin from /dev/null. + + * NEWS: Explain the directory link count change more throroughly. + + * NEWS: Fixed bug #13973. + + * find/pred.c (pred_fprintf): Fix Savannah bug #13973: Modify the + handling of -printf %Y so that it no longer modifies stat_buf + + * find/testsuite/find.gnu/printf-symlink.exp, + find/testsuite/find.gnu/printf-symlink.xo: Detect Savannah bug + #13973: pollution of stat_buf by the %Y directive (trivial change + from Andreas Metzler) + + * INSTALL, depcomp, doc/texinfo.tex, install-sh, missing, mkinstalldirs: + Updated auxiliary files from the automake-1.9 distribution + + * configure.in: + Introduce new Automake conditional, CROSS_COMPILING, true when we are corss compiling + + * find/find.c: + If we decline to follow a symbolic link due to the safety check, issue a more self-explanatory warning message + + * lib/Makefile.am: Don't build regexprops if we are cross compiling + + * doc/Makefile.am: + Depend on the regex.h file rather than the 'regexprops' binary, + because the header file will always exist even if we are doing "make + dist". Otherwise "make distcheck" fails because it tries to rebuild + find.info while the source-directory is read-only. + +2005-07-30 James Youngman <jay@gnu.org> + + * find/finddata.c, find/ftsfind.c, find/parser.c, find/pred.c, + find/util.c, m4/Makefile.am, m4/withfts.m4: Initial attempt to + convert find to use gnulib's fts() + [this change is currently on a branch only] + + * find/finddata.c, find/ftsfind.c, m4/withfts.m4: New file. + [this change is currently on a branch only] + + * NEWS, configure.in, find/Makefile.am, find/defs.h, find/find.c, + import-gnulib.sh: Initial attempt to convert find to use gnulib's + fts() [this change is currently on a branch only] + +2005-07-31 James Youngman <jay@gnu.org> + + * find/testsuite/excuses.txt: We now have tests for -perm. + + * NEWS, configure.in, find/parser.c, + find/testsuite/find.gnu/perm-slash.exp, + find/testsuite/find.gnu/perm-slash.xo: Fixed bug which caused find + -perm /440 to be treated the same as find -perm 440 + + * find/testsuite/Makefile.am: + Generic tests for -perm -NNN and -perm NNN + + * find/testsuite/excuses.txt: New file - list of test cases that + still need to be written, along with excuses why they haven't been + done yet + + * find/testsuite/find.posix/perm-vanilla.exp, + find/testsuite/find.posix/perm-vanilla.xo: Generic tests for -perm + -NNN and -perm NNN + + * find/testsuite/find.gnu/inum.exp: + Ensure that the test would fail if -inum just always returned true + + * find/testsuite/Makefile.am, find/testsuite/find.gnu/ilname.exp, + find/testsuite/find.gnu/ilname.xo, + find/testsuite/find.gnu/inum.exp, find/testsuite/find.gnu/inum.xo, + find/testsuite/find.gnu/lname.exp, + find/testsuite/find.gnu/lname.xo, + find/testsuite/find.gnu/xtype.exp, + find/testsuite/find.gnu/xtype.xo, + find/testsuite/find.posix/links.exp, + find/testsuite/find.posix/links.xo: New test cases for -ilname, + -inum, -lname, -xtype + + * find/testsuite/Makefile.am, find/testsuite/find.gnu/delete.exp, + find/testsuite/find.gnu/delete.xo, + find/testsuite/find.gnu/iregex1.exp, + find/testsuite/find.gnu/iregex1.xo, + find/testsuite/find.gnu/regex1.exp, + find/testsuite/find.gnu/regex1.xo, + find/testsuite/find.gnu/regex2.exp, + find/testsuite/find.gnu/regex2.xo, + find/testsuite/find.gnu/samefile-copy.exp, + find/testsuite/find.gnu/samefile-copy.xo, + find/testsuite/find.gnu/samefile-link.exp, + find/testsuite/find.gnu/samefile-link.xo, + find/testsuite/find.gnu/samefile-same.exp, + find/testsuite/find.gnu/samefile-same.xo, + find/testsuite/find.gnu/samefile-symlink.exp, + find/testsuite/find.gnu/samefile-symlink.xo: Further test cases + + * find/find.1: Indicate that -delete implies -depth (find.texi + already mentioned this). + + * find/testsuite/Makefile.am: + Brought the list of .exp and .xo files in Makefile.am into sync with + the actual contents of the CVS repository. + + * find/testsuite/Makefile.am, find/testsuite/find.gnu/depth-d.exp, + find/testsuite/find.gnu/depth-d.xo, + find/testsuite/find.gnu/empty.exp, + find/testsuite/find.gnu/empty.xo, + find/testsuite/find.gnu/execdir-one.exp, + find/testsuite/find.gnu/execdir-one.xo, + find/testsuite/find.gnu/false.exp, + find/testsuite/find.gnu/false.xo, + find/testsuite/find.gnu/follow-basic.exp, + find/testsuite/find.gnu/follow-basic.xo, + find/testsuite/find.gnu/gnu-or.exp, + find/testsuite/find.gnu/gnu-or.xo, + find/testsuite/find.gnu/gnuand.exp, + find/testsuite/find.gnu/gnuand.xo, + find/testsuite/find.gnu/gnunot.exp, + find/testsuite/find.gnu/gnunot.xo, + find/testsuite/find.gnu/iname.exp, + find/testsuite/find.gnu/iname.xo, + find/testsuite/find.gnu/ipath.exp, + find/testsuite/find.gnu/ipath.xo, + find/testsuite/find.gnu/iwholename.exp, + find/testsuite/find.gnu/iwholename.xo, + find/testsuite/find.gnu/path.exp, find/testsuite/find.gnu/path.xo, + find/testsuite/find.gnu/print0.exp, + find/testsuite/find.gnu/print0.xo, + find/testsuite/find.gnu/quit.exp, find/testsuite/find.gnu/quit.xo, + find/testsuite/find.gnu/true.exp, find/testsuite/find.gnu/true.xo, + find/testsuite/find.gnu/wholename.exp, + find/testsuite/find.gnu/wholename.xo, + find/testsuite/find.posix/and.exp, + find/testsuite/find.posix/and.xo, + find/testsuite/find.posix/exec-one.exp, + find/testsuite/find.posix/exec-one.xo, + find/testsuite/find.posix/grouping.exp, + find/testsuite/find.posix/grouping.xo, + find/testsuite/find.posix/name.exp, + find/testsuite/find.posix/name.xo, + find/testsuite/find.posix/posixnot.exp, + find/testsuite/find.posix/posixnot.xo, + find/testsuite/find.posix/prune.exp, + find/testsuite/find.posix/prune.xo: Added new test cases for many + of the actions and tests of find + + * find/find.c (default_prints): + not a static function, so do not declare it as one. + + * m4/withfts.m4: Fixed underquoted definition of FIND_WITH_FTS. + [this change is currently on a branch only] + +2005-08-01 James Youngman <jay@gnu.org> + + * ABOUT-NLS, INSTALL, Makefile.am, configure.in, depcomp, + doc/texinfo.tex, install-sh, missing, mkinstalldirs: By adding the + missing AM_GNU_GETTEXT_VERSION call, allowed autopoint to update + those files of which it has updated copies. + + * po/Makevars.template, po/Makefile.in.in, po/findutils.pot: + Using AM_GNU_GETTEXT_VERSION, allowed gettext to update the infrastructure + + * po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed: + Files added by autopoint now that we are using AM_GNU_GETTEXT_VERSION + + * find/testsuite/Makefile.am: Added find.gnu./perm-slash.{exp,xo}. + + * po/nl.po: Updated Dutch translation from Translation Project + + * po/ga.po: Updated Irish translation from the Translation Project + + * po/da.po: Updated Danish translation from the Translation Project + + * po/ca.po: Updated Catalan translation from Translation Project + +2005-08-02 James Youngman <jay@gnu.org> + + * po/tr.po, vi.po: + Updated Vietnamese and Turkish translations from Translation Project + + * po/sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po, be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po, ja.po, ko.po, lg.po, ms.po, pl.po, pt.po, pt_BR.po, ru.po, rw.po: + Did update-po + + * po/et.po, sk.po, ro.po: + Updated Romanian, Slovak and Estonian translations from Translation Project + +2005-08-07 James Youngman <jay@gnu.org> + + * NEWS: Indicated that some test suite files have been renamed. + + * xargs/testsuite/Makefile.am, xargs/testsuite/inputs/eof.xi, + xargs/testsuite/inputs/eof1.xi, + xargs/testsuite/xargs.sysv/eof.exp, + xargs/testsuite/xargs.sysv/eof.xo, + xargs/testsuite/xargs.sysv/eof1.exp, + xargs/testsuite/xargs.sysv/eof1.xo, + xargs/testsuite/xargs.posix/lc_l2.exp, + xargs/testsuite/xargs.posix/lc_l2.xo, + xargs/testsuite/xargs.sysv/l2.exp, + xargs/testsuite/xargs.sysv/l2.xo, + xargs/testsuite/xargs.sysv/lc_l2.exp, + xargs/testsuite/xargs.sysv/lc_l2.xo, + xargs/testsuite/xargs.posix/L2.exp, + xargs/testsuite/xargs.posix/l2.exp, + xargs/testsuite/xargs.posix/L2.xo, + xargs/testsuite/xargs.posix/l2.xo, + xargs/testsuite/xargs.posix/uc_L2.exp, + xargs/testsuite/xargs.posix/uc_L2.xo: Work around problems with + CVS clients on case-insentitive operating systems + + * debian/Changelog: Removed Changelog file since changelog is the + one we should be using and having both files upsets Cygwin + systems which cannot tell the dirrerence between changelog and + Changelog + + * find/ftsfind.c: + If DEBUG is defined, show the symbolic names fro fts_info values. + + * find/ftsfind.c: Added additional diagnostics. + +2005-08-09 James Youngman <jay@gnu.org> + + * NEWS: Indicate that regexprops.texi is built on Cygin now that + Savannah bug #14025 has been fixed. + + * lib/Makefile.am, lib/regexprops.c: Fixed compilation failure on + Cygwin - Savannah Bug #14025 (tiny change, three lines), reported + and fixed by Eric Blake + + * find/testsuite/Makefile.am, + find/testsuite/find.posix/sv-bug-14070.exp, + find/testsuite/find.posix/sv-bug-14070.xo: Added new test case for + SourceForge bug #14070 + + * find/testsuite/find.posix/sv-bug-14070.exp, + find/testsuite/find.posix/sv-bug-14070.xo: New file. + + * find/defs.h, find/ftsfind.c, find/pred.c, find/util.c: + Ensure we can still build with --enable-debug + + * find/testsuite/config/unix.exp, + find/testsuite/find.gnu/execdir-one.exp, + find/testsuite/find.gnu/execdir-root-only.exp, + find/testsuite/find.gnu/sv-bug-12230.exp: If . is on $PATH, + indicate that the -execdir tests cannot be carried out, as opposed + to indicating that those tests fail + +2005-08-11 James Youngman <jay@gnu.org> + + * po/fr.po: Updated French translation and added new PO file zh_TW.po + for Chinese (traditional) + +2005-08-12 James Youngman <jay@gnu.org> + + * NEWS: Corrected typo. + +2005-08-13 James Youngman <jay@gnu.org> + + * find/find.1: Remind the user to quote the pattern argument to -iname. + +2005-08-24 James Youngman <jay@gnu.org> + + * po/sl.po: Updated from Translation Project + +2005-08-30 James Youngman <jay@gnu.org> + + * find/defs.h, find/find.c, find/fstype.c, find/pred.c: + Attempted fix for compilation when AFS is #defined + +2005-09-01 James Youngman <jay@gnu.org> + + * doc/find.texi: Typo fix from Jim Meyering (tiny change) + +2005-09-01 Jim Meyering <jim@meyering.net> + + * locate/locate.c (struct stringbuf) [soffs]: Remove unused member. + (locate): Remove initialization, too. + +2005-09-01 James Youngman <jay@gnu.org> + + * po/ChangeLog, ChangeLog: Updated with recent changes. + + * locate/locate.c: Removed unused struct stringbuf.soffs. + + * doc/find.texi: Typo fix from Jim Meyering (tiny change) + +2005-09-02 James Youngman <jay@gnu.org> + + * doc/find.texi, find/find.1: + Improved documentation in response to Savannah bug #14376 + +2005-09-03 James Youngman <jay@gnu.org> + + * find/testsuite/find.gnu/quit.exp: Fixed Savannah bug#14390, by + avoiding an accidental assumption in quit.exp that directory + entries are returned by readir() in any particular order + + * NEWS, configure.in, doc/find.texi, xargs/testsuite/Makefile.am, + xargs/testsuite/inputs/helloworld.xi, + xargs/testsuite/xargs.gnu/delim-o.exp, + xargs/testsuite/xargs.gnu/delim-o.xo, xargs/xargs.1, + xargs/xargs.c: Added the --delimiter option to xargs, resolving + Savannah support request sr #102914 + + * ChangeLog, NEWS, configure.in: Released findutils-4.2.25 + + * po/sr.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po, sl.po, be.po, + ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po, + findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po, + ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po, + ru.po, rw.po, sk.po: Did update-po + +2005-09-04 James Youngman <jay@gnu.org> + + * find/defs.h, find/find.c, find/parser.c, find/pred.c, + Work around compilation failure with GCC 4 and AIX 5.1, in which + open is #defined to open64 + + * po/be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po, + findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po, + ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po, + ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po, + zh_TW.po: Work around compilation failure with GCC 4 and AIX 5.1, + in which open is #defined to open64 + +2005-09-06 James Youngman <jay@gnu.org> + + * xargs/xargs.c: Typo in "IEEE" in a comment. + +2005-09-17 James Youngman <jay@gnu.org> + + * NEWS: Corrections for find manual page - symbolic permissions. + + * find/find.1: + Corrected an inaccuracy in the EXAMPLES section - in symbolic modes, + 'o' stands for 'others' and 'u' stands for 'user' (i.e. the owner). + +2005-09-17 A Costa <agcosta@gis.net> (tiny change) + + docs/find.texi: Fixed typo + find/find.1: Fixed typo + xargs/xargs.1: Fixed typo + +2005-09-17 James Youngman <jay@gnu.org> + + * xargs/xargs.c: + Fixed Savannah bug #14550 - if environment is too large to allow + exec() to work, we cannot even use "xargs --help". + + * find/find.1: + Avoid the use of -perm +mode, using -perm /mode instead. From comment + by Andreas Metzler (though I didn't read the patch). + + * ChangeLog, doc/find.texi, find/find.1, xargs/xargs.1: + Typo fix from A Costa (tiny change) + + * NEWS: Corrections for find manual page - symbolic permissions. + + * find/find.1: + Corrected an inaccuracy in the EXAMPLES section - in symbolic modes, + 'o' stands for 'others' and 'u' stands for 'user' (i.e. the owner). + +2005-09-20 James Youngman <jay@gnu.org> + + * NEWS, configure.in, doc/find.texi, xargs/xargs.1, xargs/xargs.c: + Documentation clarification: -L and -I take a mandatory argument; + -l and -i do not + +2005-09-21 James Youngman <jay@gnu.org> + + * xargs/xargs.1, xargs/xargs.c: Clarified the -E option + +2005-10-08 James Youngman <jay@gnu.org> + + * find/find.c, lib/regextype.c: Fixed Savannah bug #14616, which + was that c99 code had crept in and it didn't compile on c89 + compilers + + * doc/find.texi: Savannah patch #4371 from Andreas Metzler; the + argument of -I is mandatory + +2005-10-31 James Youngman <jay@gnu.org> + + * doc/find.texi: + Removed redundant additional description of "--regextype". + +2005-11-11 James Youngman <jay@gnu.org> + + * NEWS, find/find.c, find/fstype.c: Savannah bug #14922: if we need the + list of mounted filesystems but it is not available, exit fatally + with a message. If it is not available but we don't need it, + there is no need for an error. + + * po/ro.po, ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, + zh_CN.po, zh_TW.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, + pt_BR.po, be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, + fi.po, findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, + it.po, ja.po: Updated Polish translation + +2005-11-18 Jim Meyering <jim@meyering.net> (tiny change) + + * lib/buildcmd.c (bc_push_arg): When exec'ing, don't exceed + Linux's limit on the maximum number of command line arguments. + +2005-11-19 James Youngman <jay@gnu.org> + + * doc/find.texi, find/find.1: + Applied edited form of Andreas Metzler's -perm /mode documentation + patch resolving Savannah bug #14619. + + * lib/extendbuf.c: + In the success case, extendbuf() should preserve the previous value of + errno. Fixes Savannah bug #14842. + + * xargs/testsuite/Makefile.am: Added new test files + + * find/find.1: + Correctly indicate the default regular expression syntax (fixes + Savannah bug #14836). + + * NEWS, configure.in: Released findutils-4.2.26 + + * ChangeLog, NEWS, lib/buildcmd.c, + xargs/testsuite/inputs/16383-ys.xi, + xargs/testsuite/inputs/32767-ys.xi, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo: Applied + bugfix from Jim Meyering (tiny change), where many short arguments + would cause xargs (and probably find -exec .. {} +) to fail + because execve() returns E2BIG, which we should avoid + + * xargs/testsuite/inputs/16383-ys.xi, + xargs/testsuite/inputs/32767-ys.xi, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo: New file. + + * po/be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po, + findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po, + ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po, + ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po, + zh_TW.po: Updated Portuguese .po file and did update-po + +2005-11-20 James Youngman <jay@gnu.org> + + * locate/locate.1, xargs/xargs.1: Escape '-' as '\-' where appropriate. + + * find/find.1: + Escape '-' as '\-' where appropriate. Fixes last part of bug #14556. + +2005-11-21 James Youngman <jay@gnu.org> + + * locate/testsuite/config/unix.exp: + Even if we expect locate to return a nonzero status, the test should + still fail if updatedb fails! + + * locate/testsuite/locate.gnu/ignore_case2.exp: + Set the current directory for updatedb. This test case is supposed to + fail because the filename is not matched, not because updatedb fails! + + * locate/updatedb.sh: + Check the binaries actually exist in the place we expect. + +2005-11-22 James Youngman <jay@gnu.org> + + * ChangeLog: Updated with recent changes. + +2005-11-23 James Youngman <jay@gnu.org> + + * NEWS: Bug #14921 has been fixed. + + * find/fstype.c: + Savannah bug #14921: when a Linux bind filesystem is in use, find + would expand '-printf %F' to 'none' if a bind mount targeted the same + filesystem as the one containing the file to be described. + + * NEWS: Updated to describe recent changes + + * doc/find.texi, find/find.1: Documented find -printf %M + + * lib/buildcmd.c, xargs/testsuite/Makefile.am, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp, + xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo: + Ensure that the test suite still passes even if the current + system's value of ARG_MAX is different from the development/test + system + + * lib/buildcmd.c: reindent and untabify + + * configure.in: The CVS code is moving on from the previous release. + +2005-11-24 James Youngman <jay@gnu.org> + + * NEWS, lib/buildcmd.c, lib/buildcmd.h: Merge to trunk from 4.2.x fixes + + * lib/buildcmd.h: + Deleted inaccurate comment about the default value of ctl->args_per_exec. + + * NEWS, lib/buildcmd.c, lib/buildcmd.h: + Be more conservative about the total number of arguments we will + allow (to avoid exec limits on Linux/PPC) + +2005-11-29 James Youngman <jay@gnu.org> + + * xargs/xargs.c: + Typo "Ilegal"; change to "Invalid" since this is not really illegal! + Bug report by Primoz Peterlin. + + * lib/regexprops.c, xargs/xargs.c: + Prefer the word 'Invalid' or the phrase 'not allowed' over + 'Illegal', as per the GNU coding standards, and as per the + suggestion from Benno Schulenberg + +2005-11-30 James Youngman <jay@gnu.org> + + * xargs/xargs.c: + Typo correction from Benno Schulenberg <benno@nietvergeten.nl> + (tiny change) + +2005-12-04 James Youngman <jay@gnu.org> + + * doc/find.texi: Document --show-limits + + * xargs/xargs.c: + Correctly display the size of the argument buffer we really allocated. + + * doc/find.texi, find/find.1, find/parser.c, find/pred.c, NEWS: + Savannah bug #14748 (which this change does NOT fix): issue + warning of future changes in the behaviour of -perm /000 + +2005-12-05 James Youngman <jay@gnu.org> + + * doc/find.texi, find/find.1, locate/locate.1, xargs/xargs.1: + Savannah patch #3775 from Aaron Hawley: reconciling man pages + differences; did not apply the patch, but resolved all the + remaining issues manually by updating the documentation (mostly + the Texinfo documentation, which was missing a number of specific + technical statements about the behaviour of various options) + +2005-12-05 James Youngman <jay@gnu.org> + + * Released findutils-4.2.27 + +2005-12-08 James Youngman <jay@gnu.org> + + * doc/find.texi: Typo and spelling corrections from Aaron Hawley + +2005-12-10 Andreas Metzler <gnu@downhill.at.eu.org> + + * ChangeLog, NEWS, configure.in, find/defs.h, find/parser.c: + Applied patch from Andreas Metzler fixing Savannah bug #15181: + implicit declaration of parse_openparen + +2005-12-10 James Youngman <jay@gnu.org> + + * doc/perm.texi: + Aaron Hawley: Updated perm.texi from the coreutils distribution + + * find/parser.c: + Avoid using entries which have the same name as POSIX library + functions (fprintf, printf, exec) as the implementation is allowed to + #define these. That generates hard-to-grok compilation errors. + +2005-12-11 James Youngman <jay@gnu.org> + + * ChangeLog, THANKS, xargs/xargs.c: + Fixed spelling errors in Bob Proulx's name. Sorry, Bob. + +2005-12-12 James Youngman <jay@gnu.org> + + Release 4.3.0. + + * find/testsuite/find.gnu/access.exp: + Don't leave junk files lying around the place + + * README-CVS: Update the the instructions for getting gnulib; the + CVS arrangements at Savannah have changed. + + * ChangeLog, NEWS, doc/find.texi, doc/perm.texi, find/defs.h, find/parser.c: + Merged changes from 4.2.x branch again + + * NEWS, doc/find.texi, find/defs.h, find/find.c, find/ftsfind.c, + find/parser.c, find/pred.c, find/util.c, lib/listfile.c, + lib/listfile.h: Initial code to allow control over how -ls quote + (or does not quote) control characters; not enabled yet + +2005-12-16 James Youngman <jay@gnu.org> + + * xargs/xargs.1, xargs/xargs.c: Fixed bug# 15211, that xargs + --show-limits is not documented in the manpage or in the usage + message + +2005-12-19 Eric Blake <ebb9@byu.net> + + * find/testsuite/Makefile.am, + find/testsuite/find.posix/sv-bug-15235.xo, + find/testsuite/find.posix/sv-bug-15235.exp: New tests for Savannah + bug 15235. + + * NEWS, find/find.1, doc/find.texi (Invoking find): Document bug + fix for Savannah bug 15235. + +2005-12-19 James Youngman <jay@gnu.org> + + * find/testsuite/config/unix.exp: + Run every test twice, once with the old (non-fts) binary and once with + the new (fts-enabled) binary. + +2005-12-20 James Youngman <jay@gnu.org> + + * find/defs.h, find/find.c, find/ftsfind.c, + find/testsuite/find.posix/bracket-depth.exp, find/util.c: Further + fix to bug# 15235: a leading comma is a filename not an expression + + * find/defs.h, find/parser.c, find/testsuite/Makefile.am, + find/testsuite/find.posix/empty-parens.exp, find/tree.c: Accept + 'find ( -depth )' but reject 'find ( )' + + * find/testsuite/find.gnu/delete.exp: Use the new find program, + and the new way of locating it ($OLDFIND/$FTSFIND instead of $FIND) + + * find/testsuite/Makefile.am: Added bracket-depth.exp. + + * NEWS, configure.in: We have moved on from 4.3.0 + + * find/defs.h, find/find.c, find/ftsfind.c, + find/testsuite/Makefile.am, find/testsuite/find.gnu/delete.exp, + find/testsuite/find.posix/files-not-expressions1.exp, + find/testsuite/find.posix/files-not-expressions1.xo, + find/testsuite/find.posix/files-not-expressions2.exp, + find/testsuite/find.posix/files-not-expressions2.xo, + find/testsuite/find.posix/files-not-expressions3.exp, + find/testsuite/find.posix/files-not-expressions3.xo, find/util.c: + Avoid getting confused by filename arguments of which the first + character looks like a predicate, for example ',x' or '!x' or '(x' + (Savannah bug #15235). + +2005-12-20 James Youngman <jay@gnu.org> + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/ftsfind.c, find/testsuite/Makefile.am, find/testsuite/find.posix/sv-bug-15235.exp, find/testsuite/find.posix/sv-bug-15235.xo, find/tree.c, find/util.c: + Savannah bug #15195: more helpful error messages for 'find . ( )' or 'find . \!' + + * ChangeLog: Added entries for recent changes. + + * find/defs.h, find/find.c, find/ftsfind.c, find/testsuite/find.posix/bracket-depth.exp, find/util.c: + Further fix to bug# 15235: a leading comma is a filename not an expression + + * find/defs.h, find/parser.c, find/testsuite/Makefile.am, find/testsuite/find.posix/empty-parens.exp, find/tree.c: + Accept 'find ( -depth )' but reject 'find ( )' + + * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po: + did make dist + + * find/testsuite/find.gnu/delete.exp: + Use the new find program, and the new way of locating it (/ instead of ) + + * find/testsuite/Makefile.am: Added bracket-depth.exp. + + * NEWS, configure.in: We have moved on from 4.3.0 + + * find/defs.h, find/find.c, find/ftsfind.c, find/testsuite/Makefile.am, find/testsuite/find.gnu/delete.exp, find/testsuite/find.posix/files-not-expressions1.exp, find/testsuite/find.posix/files-not-expressions1.xo, find/testsuite/find.posix/files-not-expressions2.exp, find/testsuite/find.posix/files-not-expressions2.xo, find/testsuite/find.posix/files-not-expressions3.exp, find/testsuite/find.posix/files-not-expressions3.xo, find/util.c: + Avoid getting confused by filename arguments of which the first + character looks like a predicate, for example ',x' or '!x' or + '(x' (Savannah bug #15235). + +2005-12-23 James Youngman <jay@gnu.org> + + * find/parser.c: Refactor of parse_[acm]time + + * find/defs.h, find/find.c, find/finddata.c, find/ftsfind.c, find/tree.c, find/util.c: + last_pred can be a static in tree.c rather than a global variable + + * find/tree.c, find/finddata.c: + Moved some global data out of finddata.o and into static variables in tree.c + + * NEWS, find/find.c, find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h, lib/regexprops.c, lib/regextype.c, lib/regextype.h, lib/savedirinfo.c, locate/locate.c, xargs/xargs.c: + Fixed many compilation warnings + + * find/find.c, find/ftsfind.c, find/util.c: + Evaluating the predicates can change the contents of the data structure (for example to add another exec item) + + * find/defs.h, find/find.c, find/ftsfind.c, find/tree.c, find/util.c: + Re-factored a lot of common expression-handling code out of find.c and ftsfind.c, mainly into tree.c + + * find/find.c, find/ftsfind.c, find/tree.c: + Savannah bug #15271: more helpful error messages for cases where there is a missing expression + +2006-01-04 James Youngman <jay@gnu.org> + + * find/testsuite/find.posix/sizetype.exp, find/testsuite/find.posix/sizetype.xo, find/testsuite/find.posix/typesize.exp, find/testsuite/find.posix/typesize.xo: + Additional tests for -type -size and -size -type + + * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/ftsfind.c, find/parser.c, find/pred.c, find/testsuite/Makefile.am, find/testsuite/config/unix.exp, find/testsuite/find.gnu/depth-d.exp, find/tree.c, find/util.c, po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po: + Initial implementation of a cost-based optimiser + +2006-03-31 James Youngman <jay@gnu.org> + + * po/hu.po: Updated Hungarian translation + +2006-04-01 James Youngman <jay@gnu.org> + + * find/find.c: + Fixed Savannah bug #15800: "Hard link count is wrong" reports wrong + directory name. + +2006-06-14 James Youngman <jay@gnu.org> + + * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po: + Updated translation files ga pl sv tr nl ca vi bg fr + + * locate/updatedb.sh: + Fixed Savannah bug #16579 (su false should be su -c false) + +2006-06-15 James Youngman <jay@gnu.org> + + * NEWS: Described recent changes + + * configure.in: fix to how we invoke the gnulib regex module + + * find/find.1: + Savannah bug #16269: avoid confusion over what type of quotes to use + in an example. + + * find/parser.c: Option -nowarn should not itself produce a warning + + * find/defs.h: Remoevd useless declaration of last_pred + +2006-08-05 James Youngman <jay@gnu.org> + + * NEWS: Described more changes in 4.3.1. + + * locate/testsuite/config/unix.exp: + Set the environment variable so that updatedb knows where to find it; it's not in BINDIR yet during 'make check' + + * po/be.po, po/bg.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po: + Make dist changed all the po files again :) + + * po/et.po, po/vi.po: UPdated the Estonian and Vietnamese translations + + * NEWS, configure.in: Prepare for release of findutils-4.2.28 + + * po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po, po/be.po, po/bg.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po: + Make dist changed all the po files again :) + + * configure.in: Added Bulgarian translation. + + * po/bg.po: Include Bulgarian translation + + * configure.in: Added Bulgarian translation. + + * po/et.po, po/vi.po: Updated Estonian and Vietnamese translations + + * NEWS: Removed spurious comma. + + * NEWS: Listed the updated translations. + + * find/parser.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c: + Fixed Savannah bug#16738, find does not subtract environment size in find .. -exec {} + + + * NEWS: Updated the list of bugfixes etc. + +2006-08-06 James Youngman <jay@gnu.org> + + * locate/locate.c: Fixed a typo in a comment. + + * NEWS, configure.in: Moving on towards 4.3.2... + + Release 4.3.1. + + * find/testsuite/config/unix.exp: + Check that we can see the find.o file in the right position relative + to $base_dir to ensure that we are indeed testing the program we just built. + + * find/testsuite/config/unix.exp: + Be more paranoid about whether we're really checking the right version + of find. + + * NEWS, configure.in: Prepare for release of 4.3.1 + + * doc/find.texi: Document the -O and -D options + + * find/defs.h, find/find.1, find/util.c: + 'find -D help' now explains the available debugging options + + * po/be.po, po/bg.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po, po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po, po/zh_TW.po: + Make dist changed all the po files again + +2006-08-07 James Youngman <jay@gnu.org> + + * NEWS, locate/locate.c, locate/locatedb.h: + Added support for slocate database format + + * xargs/xargs.c: + Removed unused code (tivial patch from Miloslav Trmac). + + * xargs/xargs.c: Removed unused code. + + * doc/find.texi: + Clarify that the output format for locate -S differs from BSD's. + + * NEWS, find/find.1: + Savannah bug #15360: explain global vs. positional options more clearly in the manual page + + * NEWS: Typo in subsection header (* should be **). + + * NEWS, find/find.1: + Savannah bug #15360: explain global vs. positional options more clearly in the manual page + + * doc/find.texi: Fixed some clumsy phrasing + + * NEWS, configure.in: + Now diverging again from the released tarball, so change once more to -CVS version number suffixes + +2006-08-08 James Youngman <jay@gnu.org> + + * locate/locatedb.h: + Automatically verify (at compile time) that the frcode datastream + cannot get desynchronised. + + * find/ftsfind.c: + Fixed Savannah bug #10494 (-maxdepth does not yield the same stat savinf in ftsfind as oldfind) + + * find/ftsfind.c: display fts_level for find -D search + + * find/util.c: Support find -D search + + * locate/locate.c: + If the user specified -E but the database is an slocate database, do + not produce a list of files they cannot stat. Issue an error message + explaining the problem. + + * locate/locate.c: + Issue states messages in a way which indicates more clearly what's + happening when the numbers are reduced because not every filename + matched the pattern. + + * locate/locate.c: Better error checking in drop_privs(). + +2006-08-10 James Youngman <jay@gnu.org> + + * find/pred.c, import-gnulib.sh, lib/listfile.c: + Updated callers of the gnnulib filemode module so that they work with the 2006-07-09 version of gnulib + + * config.rpath: Updated config.rpath from autotools + +2006-08-11 James Youngman <jay@gnu.org> + + * locate/frcode.c: + Avoid producing an invalid database if the first item begins with a space + +2006-08-19 James Youngman <jay@gnu.org> + + * locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/bigprefix1.exp: + Explicit checks for parefixes which are within range of a short, but outside the one-byte range + + * locate/testsuite/locate.gnu/bigprefix1.exp, locate/testsuite/locate.gnu/exceedshort.exp, locate/testsuite/locate.gnu/space1st.exp: + New file. + + * locate/testsuite/Makefile.am, locate/testsuite/locate.gnu/exceedshort.exp, locate/testsuite/locate.gnu/space1st.exp: + Patch from Tavis Ormandy; check frcode handles initial space end encodes paths with more than 2^16 characters in the common prefix (tiny change) + + * locate/frcode.c: Changes to avoid overflows + +2006-08-19 Paul Eggert <eggert@cs.ucla.edu> + + Port to latest gnulib, and simplify the bootstrapping procedure. + * intl: Remove this directory and everything in it. + * depcomp, install-sh, missing, mkinstalldirs, doc/texinfo.tex: + Remove these files from CVS, as they are now gotten from gnulib. + * README-CVS: Don't recommend "autoreconf -i", as it doesn't work + for us. + * import-gnulib.sh (findutils_files): New var. Grab this stuff + from gnulib. + (findutils_modules): Add fopen-safer; remove stdio-safer. This + adjusts to latest gnulib. + (modules): Remove obsolete reference to intl_modules. + * .cvsignore: Remove stamp-h; add stamp-h1. + * doc/.cvsignore: Add regexprops.texi. + * find/.cvsignore: Add oldfind. + * lib/.cvsignore: Add .deps, regexprops. + * m4/.cvsignore: Add Makefile. + * po/.cvsignore: Add stamp-po. + +2006-08-20 Paul Eggert <eggert@cs.ucla.edu> + + Port recent fixes for symbolic modes involving X from gnulib, + and clarify the documentation in this area. + * doc/find.texi: Use "file mode bits" when talking about + all the file mode bits (including setuid, setgid, and sticky), + and "permissions" when talking only about permissions bits + (read, write, execute/search). Use "execute/search" to + talk about the x bit, since it means both. You do not need + permission to the linked-to file to follow a symlink for + syscalls like "stat", but you do need search permission for + the directories you traverse. Clarify the explanation of + -perm. Use "that" instead of "which" when "which" isn't + quite correct English. + (Mode Bits): Renamed from Permissions. All uses changed. + * doc/perm.texi: Sync from coreutils 6.0. + * find/defs.h (struct perm_val.val): Now an array of two items, + one for non-directories, and one for directories. This is + to handle symbolic modes like +X correctly. + * find/parser.c (parse_perm): Likewise. Also, adjust to + latest gnulib interface for mode_adjust. + * find/pred.c (pred_perm): Likewise. + * find/testsuite/Makefile.am (EXTRA_DIST_XO): Add find.posix/perm-X.xo. + (EXTRA_DIST_EXP): Add find.posix/perm-X.exp. + * find/testsuite/find.posix/perm-X.exp: New file. + * find/testsuite/find.posix/perm-X.so: New file. + +2006-08-20 James Youngman <jay@gnu.org> + + * find/parser.c: Merged the fix for the trailing % in "find -printf". + +2006-08-21 James Youngman <jay@gnu.org> + + * find/parser.c, find/testsuite/Makefile.am, find/testsuite/find.gnu/sv-bug-17490.exp: + Fixed Savannah bug #17490, which was a coiredump when -regex ZZZ was the final test on the command line + +2006-10-15 James Youngman <jay@gnu.org> + + * lib/buildcmd.c: Fixed Savannah bug #17782, in which "find + -execdir echo "foo {}" runs 'echo ./foo filename' instead of the + correct command 'echo foo ./filename'. + + * po/hu.po, po/sl.po: Updated Hungarian and Slovenian po files + +2006-11-08 James Youngman <jay@gnu.org> + + * find/testsuite/Makefile.am: + Oops, indicate the right directory for the new test files + + * ChangeLog, depcomp, doc/texinfo.tex, find/ftsfind.c, find/testsuite/Makefile.am, find/testsuite/find.gnu/sv-bug-18222.exp, find/testsuite/find.gnu/sv-bug-18222.xo, install-sh: + Savannah bug#18222 - test case + + * ChangeLog, lib/buildcmd.c: + Fixed Svannah bug #17782 ('./' prefix added at start of arg while it should be added at the start of the expansion of {}) + + * find/ftsfind.c (process_all_startpoints): Set + state.starting_path_length for every pathname argument. + This fixes Savannah bug #18222. + + * find/pred.c (pred_prune): -prune should have an effect only if we are + currently considering a directory (Savannah bug #15531). + +2006-11-20 James Youngman <jay@gnu.org> + + * po/et.po, po/bg.po, po/pl.po, po/nl.po, po/tr.po: Updated + translations for Bulgarian, Estonian, Dutch, Polish and Turkish. + +2006-11-25 James Youngman <jay@gnu.org> + + Release 4.3.2. + + * find/testsuite/Makefile.am: Added test case for Savannah bug #17782 + + * doc/textinfo.tex: Removed; we now use the version supplied + by automake. + + * m4/mkinstalldirs.m4: Added this file. It's an excerpt from an + old version of gnulib's m4/nls.po file. The current version of + gnulib does not expand MKINSTALLDIRS, but gettext-0.14.6's version + of po/Makefile.in.in expects it to be expanded. This m4 file + fills the gap. + +2006-12-01 James Youngman <jay@gnu.org> + + * NEWS, configure.in: Begin work on findutils 4.2.30 + + * find/find.c: + Fix compilation error for oldfind if --enable-debug was passed to configure + + * NEWS, configure.in: Prepare for work on findutils-4.3.3 + +2006-12-28 James Youngman <jay@gnu.org> + + * NEWS: Document addition of %S. + + * find/defs.h, find/find.1, find/parser.c, find/pred.c: + Implemented %S (sparseness) printf format, and general refactoring and cleanup of printf predicate + +2006-12-29 James Youngman <jay@gnu.org> + + * find/testsuite/config/unix.exp: + Verify that find_start is invoked with wither a p (pass) or an f + (fail) argument. + + * lib/listfile.c, lib/listfile.h: + define find_blocksize() and provide a declaration for get_link_name() + + * find/testsuite/config/unix.exp: Updated copyright years. + + * find/testsuite/find.gnu/execdir-one.exp, find/testsuite/find.gnu/execdir-root-only.exp, find/testsuite/find.gnu/sv-bug-12230.exp, find/testsuite/find.gnu/sv-bug-17782.exp, find/testsuite/config/unix.exp: + Avoid tests using -execdir if $PATH contains a relative directory + + * find/parser.c: + Also flag $PATH values containing relative directories as being dangerous. + + * find/parser.c, find/defs.h, find/util.c: + Instead of selecting the old or new exec handling code with the NEW_EXEC macro, just use the new code all the time + + * locate/testsuite/config/unix.exp: + Fixed Savannah bug #13252, test suite failure caused by the fact that 'file normalize' is not available in Tcl 8.3 + + * NEWS, find/pred.c: + Fixed Savannah bug #18433, compilation failure with configure --enable-debug + +2007-01-07 James Youngman <jay@gnu.org> + + * find/parser.c (parse_perm), find/testsuite/find.gnu/perm000.exp, + find/testsuite/find.gnu/perm000.xo: -perm /000 is now quivalent + to -perm -000, as dscussed in Savannah bug #14748. The warning + message we issue when the user does this now explains that the + definition changed as we promised it would in 2005. + + * xargs/xargs.c (read_line): Correctly handle quoted empty + arguments occurring first or last on a line (by adding an empty + argument to the output). Fixes Savannah bug #18713. + + * xargs/testsuite/xargs.sysv/sv-bug-18713.exp, + xargs/testsuite/xargs.sysv/sv-bug-18713.xo, + xargs/testsuite/input/empty.xi: Test case for Savannah bug #18713. + + +2007-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * doc/find.texi: Fix some typos. (tiny change) + +2007-01-13 James Youngman <jay@gnu.org> + + * lib/regexprops.c (describe_regex_syntax): fixed typo + + * xargs/xargs.c (read_line): Fixed Savannah bug# 18714; VT and FF + are not separators, according to POSIX (in the POSIX locale). + + * xargs/testsuite/Makefile.am, + xargs/testsuite/input/formfeeds.xi, + xargs/testsuite/input/verticaltabs.xi, + xargs/testsuite/xargs.posix/sv-bug-18714.exp, + xargs/testsuite/xargs.posix/sv-bug-18714.xo, + xargs/testsuite/xargs.posix/sv-bug-18714b.exp, + xargs/testsuite/xargs.posix/sv-bug-18714b.xo: Tests for Savannah + bug #18714. + + * xargs/xargs.c (usage): Removed suprious "[" in --help output + (fixes Savannah bug #18384). + + * locate/locate.c: Implement the option --max-database-age. + (main) Accept the option. + (set_max_db_age): Parse the argument. + + * locate/locate.c (dolocate): If the database is more than N days + old, indicate its actual age in the warning message we produce. + + * locate/locate.1, docs/find.texi: Document --max-database-age + + * THANKS: Thank Dean Gaudet for the idea of -sparse. + + * po/findutils.pot: Updated from Translation Project + + * po/ga.po, po/pl.po, po/nl.po, po/tr.po, po/hu.po: Updated from + the Translation Project + +2007-01-15 James Youngman <jay@gnu.org> + + * find/defs.h (time_val): define struct; use timespec to hold time + in the 'reftime' member. + (args): use struct timespec instead of time_t for predicates + -newer, -anewer, -cnewer. * find/parser.c (includes): include + stat-time.h. + (parse_anewer, parse_cnewer, parse_newer): use struct timespec to + hold timestamps. * find/pred.c (compare_ts): new function for + comparing timestamps in struct timespec. + (pred_anewer, pred_cnewer, pred_newer): use compare_ts() to + compare timestamps (hence takinng acoung of sub-second + granularity). + * find/ftsfind.c: Various improvements to comments. + (is_fts_enabled): Newline before function name to comply with GNU + coding standard. + +2007-01-16 James Youngman <jay@gnu.org> + + (ctime_format): format the time manually (rather than using ctime) + in order to include the sub-second part of the time. + (weekdays, months): new static variables used by ctime_format. + (format_date): append a the sub-second part of the timestamp to + the seconds part of date/time output. + +2007-01-22 James Youngman <jay@gnu.org> + + * .cvsignore (install-sh): Ignore, since the install-sh file is no + longer held in the findutils CVS repository. + + * find/testsuite/config/unix.exp (find_start): allow a test to be + skipped for either the old or the new find executable. + * find/testsuite/find.gnu/execdir-pwd.exp, + find/testsuite/Makefile.am: + New test, covering Savannah bug #18466. This test currently fails + for the ftsfind binary and passes for the oldfind binary. Due to + a limitation in the way that we perform the test, we can't tell + the test suite to expect a failure in the new binary but not the + old. Therefore we skip the test for the old binary. + + * lib/regeprops.c (describe_regex_syntax): fixed a typo in the text + * doc/find.texi (Multiple Files): fixed a typo + +2007-02-24 James Youngman <jay@gnu.org> + + * find/parser.c (pred_sanity_check): define this function even for + _NDEBUG, but do nothing in that case. + (estimate_timestamp_success_rate): correct (invert) the sense of + the subtraction used to find the file's age. + + * import-gnulib.sh (findutils_modules): Import Gnulib modules + xstrtod and timespec. + + * find/parser.c (get_comp_type): Refactored out of get_num. + (get_num): call get_comp_type to find the comparison type. + (get_relative_timestamp): new function replacing get_num_days. + (get_num_days): Remove. + (do_parse_xmin): Support fractional arguments and + nanosecond timestamps. + (parse_used): ditto + (parse_time): ditto + + * xargs/xargs.c (read_line): Give a warning message if a NUL is + found in the input (this function is called only when -0 is not in + effect). + + * xargs/xargs.c (nullwarning_given): New variable indicating if + the NULL character warning had already been issued. + + * doc/find.texi (Multiple Files): Describe how trailing blanks are + handled when -L is in effect. + + * xargs/xargs.c (read_line): Use an enum rather than + preprocessor macro values for the lexer state. + + * lib/savedirinfo.c (free_dirinfo): Fixed memory leak (trivial + patch from Supriya Kannery) + +2007-02-25 James Youngman <jay@gnu.org> + + * find/find.c (process_dir): Removed duplicated (shadow) + declaration of did_stat. Assert that we did not use subdirs_left + if subdirs_unreliable is true. + + * find/parser.c (parse_size): Removed unused variable rate. + (parse_time): Removed unused variable num_days_approx. + (get_num): Removed unused variables ok and suffixes. + + * find/pred.c (do_fprintf): Indicate that the function needs a + return value (referring to Savannah bug #19146). + + * find/tree.c (predlist_dump): Commented out unused function + (predlist_merge_nosort): Commented out unused function + (getrate): Returns type is float, so return 1.0f not 1.0. + (calculate_derived_rates): Removed unused variable rate. Use a + switch statement rater than ifs. + + * find/util.c (usage): Removed unused variable i. + + * lib/buildcmd.c (bc_do_insert): Removed unused variable + need_prefix. + (bc_init_controlinfo): annotate a line (with #warning) which is + probably a bug. + + * locate/locate.c: #include <grp.h> for the benefit of the + setgroups() call in drop_privs. + (slocate_db_pathname): Commented out unused variable. + (set_max_db_age): error command has no format directive, so + remove the unused extra argument. + (looking_at_slocate_db): Removed unused variables magic and + lenwanted. Fix bug where result is indeterminate (due to falling + off the end of the function) if the first character is a nondigit. + (search_one_database): Eliminate (spurious) compiler warning + rlating to possible use before initialisation of slocate_seclevel. + + * xargs/xargs.c (get_char_oct_or_hex_escape): Eliminate spurious + compiler warning on variable p. + (main): Removed unused varible env_too_big + + +2007-02-28 James Youngman <jay@gnu.org> + + * import-gnulib.config: New file. Specifies which version of + Gnulib we need to check out and build from. + + * import-gnulib.sh: Use import-gnulib.config. + + * README-CVS: Describe the new method of building from CVS. + + * lib/gnulib-version.h, lib/gnulib-version.sh: New files; code for + reporting which version of Gnulib we built findutils from. + + * lib/Makefile.am: Build gnulib-version.c out of + ./gnulib-version.config by using lib/gnulib-version.sh. + + * Makefile.am: Ship import-gnulib.config and import-gnulib.sh. + + * .cvsignore: Ignore gnulib-cvs + + * lib/.cvsignore: Ignore gnulib-version.c + + * find/parser.c, locate/code.c, locate/locate.c, xargs/xargs.c: + Report which version of Gnulib we were built from. + +2007-03-01 James Youngman <jay@gnu.org> + + * doc/find.texi (Multiple Files): Document the construct + -exec sh -c 'cmd "$@" final-args' {} + - fixing Savannah bug + #18554. + +2007-03-03 James Youngman <jay@gnu.org> + + * import-gnulib.sh: Pass --with-tests to gnulib-tool so that relevant + gnulib unit tests are built and are run for "make check". + + * configure.in (AC_CONFIG_FILES): Add tests/Makefile (the makefile + for the gnulib unit tests). + + * Makefile.am: Add 'tests' to SUBDIRS. + + * .cvsignore: Add 'tests'. + + * import-gnulib.config (modules): Also use Gnulib modules + mbscasestr and mbsstr in order to perform correct string searching + in multibyte strings, in order to fix Savannah bug #14535. + + * locate/testsuite/locate.gnu/sv-bug-14535.exp: new test case for + Savannah bug #14535. + + * locale/locate.c (visit_substring_match_nocasefold): Use mbsstr + rather than strstr, in order to correctly support multibyte + strings. + (visit_substring_match_casefold): Use mbscasestr rather than + strstr in order to correctly support case-folding in a multibyte + environment (e.g. with UTF-8 characters outside the normal ASCII + range). This fixes Savannah bug #14535. + (struct casefolder): No longer needed, removed + (visit_casefold): No longer needed, removed. + (lc_strcpy): No longer needed, removed. + (search_one_database): Removed redundant variable need_fold and + the code which used to set it. It had controlled the adding of + the visitor function visit_casefold, but that function itself is + no longer required. Also there is now no need to pass in a + lower-case argument to visit_substring_match_casefold, so don't + pass that in the context argument. + + * locate/locate.c (usage): Fixed typo. + +2007-03-07 James Youngman <jay@gnu.org> + + * import-gnulib.config: (gnulib_version): Use gnulib version + 2007-03-05 + (modules): Added getdate + + * find/Makefile.am (LDADD): Added @LIB_CLOCK_GETTIME@ for + clock_gettime(), if it is available. + + * find/defs.h: (enum xval): New enumeration, representing the + value of X used in the -newerXY test. It is stored in the reftime + member of 'union args'. + (struct predicate): reftime is also used by -newerXY. + (enum arg_type): Added ARG_SPECIAL_PARSE for -newerXY, because the + parsing function needs to look at the name of the test. + (struct options): start_time is now a struct timespec, not a + time_t. + + * find/parser.c: (parse_newerXY): New parsing function for + -newerXY, a feature copied from FreeBSD (also present other BSD + implementations too) + (get_stat_Ytime): New function; returns st_atime, st_mtime or + st_ctime from struct stat, as a timespec, as required according to + the value of Y in -newerXY. + (found_parser): Factored the tail out of find_parser. + (find_parser): Moved tail into found_parser. Add special handling + for -newerXY. + (do_parse_xmin): New argument xv, indicating the value to which + predicate->reftime.xval should be set. + (parse_amin): Pass XVAL_ATIME to do_parse_xmin. + (parse_cmin): Pass XVAL_CTIME to do_parse_xmin. + (parse_mmin): Pass XVAL_MTIME to do_parse_xmin. + (parse_newer): Set args.reftime.xval to XVAL_MTIME. + + * find/pred.c (pred_table): added pred_XY. + (pred_fls): options.start_time is now a struct timespec, so just + pass the tv_sec member to list_file. + (pred_ls): ditto + (pred_newerXY): New function, implementing -newerXY. + + * find/tree.c (costlookup): pred_newerXY needs stat information. + (build_expression_tree): For predicates of type ARG_SPECIAL_PARSE, + pass them in the name of the predicate (that is, don't advance + argc). + + * find/util.c (now): New function for setting options.start_time. + Use nanoseconds where it is available. + (set_option_defaults): Use now() rather than time(). + +2007-03-08 James Youngman <jay@gnu.org> + + * find/find.1 (TESTS): Document -newerXY, indicate that reference + files are only examined once. + (HISTORY): Indicate when various features were added + (BUGS): Indicate that -ok ignores LC_COLLATE. + +2007-03-13 James Youngman <jay@gnu.org> + + * find/parser.c (parse_quit): Estimated success rate of -quit is + 100%. + +2007-03-24 James Youngman <jay@gnu.org> + + * import-gnulib.sh: Added option -d, allowing the user to use a + local version of gnulib, perhaps because they have local changes. + +2007-03-25 James Youngman <jay@gnu.org> + + * xargs/xargs.c (main): For "xargs --show-limits" where stdin is a + terminal, warn the user that the program specified (or /bin/echo) + will be run at least once, if that is what will happen. + +2007-03-28 James Youngman <jay@gnu.org> + + * find/defs.h (set_stat_placeholders): utility function for + initialising the struct stat fields that NetBSD doesn't always set + (like st_birthtime where the file is on a filesystem not + supporting birthtime). + * find/util.c: set_stat_placeholders(): new function + (get_statinfo): Call set_stat_placeholders(). + (optionh_stat, optionl_stat, optionp_stat): ditto + * find/find.c (main, wd_sanity_check, safely_chdir_lstat, + process_dir): use set_stat_placeholders(). + * find/parser.c (parse_anewer, parse_cnewer, parse_newer, + parse_newerXY): ditto. + (get_stat_Ytime): Support birth time ('B'). + (parse_newerXY): Support st_birthtime. + * find/fstype.c (set_fstype_devno): Use set_stat_placeholders(). + * find/pred.c (pred_xtype): Use set_stat_placeholders(). + (pred_newerXY): Support birth time. + (pred_fprintf, format_date): ditto ("%Bx"). + +2007-03-31 James Youngman <jay@gnu.org> + + * find/tree.c (build_expression_tree): Issue more specific error + messages; distinguish the case where the predicate is invalid from + the cases where a required argument is missing, and a supplied + argument is invalid. + + * import-gnulib.config (gnulib_version): Update to 2007-03-30 + version of gnulib. + +2007-04-08 James Youngman <jay@gnu.org> + + * configure.in: Set @AUXDIR@ (to the location of the build-aux + directory). + * build-aux/check-testfiles.sh: New script, which checks that all + the DejaGnu test files have been included in the distribution and + (more helpfully) lists any that are missing. + * Makefile.am (findutils-check-testfiles): Use + build-aux/check-testfiles.sh. + * locate/testsuite/Makefile.am (EXTRA_DIST_EXP): distribute + locate/testsuite/locate.gnu/sv-bug-14535.exp. + + * config.rpath, depcomp, missing: Moved into build-aux/. + * configure.in(AC_CONFIG_AUX_DIR): Find aux files in $SRCDIR/build-aux, + not in $SRCDIR. + +2007-04-09 James Youngman <jay@gnu.org> + + * doc/find.texi: Change fully-specified @node directives to + single-argument @node directives in order to accommodate the + inclusion of getdate.texi. + + * doc/find.texi: Document -newerXY. + + * doc/find.texi (Security Considerations): updated to describe + differences in the fts-based implementation. + + * find/find.1: Indicate that testing the birth time where this is + not supported produces a negative result for files where the birth + time is not known (or a fatal error if the file of interest is a + reference file). + +2007-04-14 James Youngman <jay@gnu.org> + + * doc/.cvsignore: Ignore getdate.texi + + * find/defs.h: #include "buildcmd.h" near the top of the file, not + in the middle. + + * all: Pass O_LARGEFILE when opening directories. + + * all: Changes to allow us to use the FTS_CWDFD mode of fts(). + These are quite extensive changes, and are detailed below. + + * find/defs.h (struct exec_val): New member dirfd, the directory + in which the exec should take place. + (is_fts_enabled): Tell the caller which flags are passed to + fts_open(). + (get_start_dirfd): New function. Returns value of start_desc. + (get_current_dirfd): New function. Returns the fd of the + directory fts is currently traversing. If this is the current + directory, AT_FDCWD is returned. + (complete_pending_execdirs): takes a new argument, indicating + where the exec is to take place. Ugh. + (get_info): the file name is taken from state.rel_pathname, so + we don't need it as a function argument. + (enum DebugOption): Added DebugExec ("-D exec"). + (struct state): Added cwd_dir_fd, the directory we are examining + with fts(). If fts() is not in use, this is AT_FDCWD. Also added + execdirs_outstanding, which is a boolean which tells us if there + are any not-yet-execed -execdir or -okdir actions (with +). This + is not really used yet. + * find/ftsfind.c (set_close_on_exec): New function. + (get_current_dirfd): Return an fd open on the directory that fts() + is currently examining. + (left_dir): Signal that our previous ides of which dirctory fts is + searching is now out of date. + (inside_dir): Indicate which directory fts is now searching. + (complete_execdirs_cb): Callback for run_in_dir() to complete + pending execdirs in this directory. + (show_outstanding_execdirs): Supports "-D exec" + consider_visiting(): Do not allow building-up of pending execdirs, + as a workaround to Savannah bug #18466. + (ftsoptions): Make this a static module variable. + * find/parser.c (insert_exec_ok): New parameter describing which + directory the exec should occur in. + (parse_version): for FTS, add a list of options being used. + * find/pred.c (pred_and, pred_comma): No need to pass the relative + path name to get_info(), it can pull it from state.rel_pathname. + (pred_delete): use unlinkat(). + (pred_empty): use openat(). + (new_impl_pred_exec): Accept an fd parameter describing where the + exec is to take place. + (pred_executable, pred_writable, pred_readable): Use run_in_dir() + to ensure that access() is called in a working directory which is + suitable for the pathname we pass in. + (prep_child_for_exec): In the child process, change to the + appropriate directory becore the exec(). + * find/util.c (debugassoc): Support "-D exec". + (get_info): No longer need to pass the relative path to + get_statinfo(). + (do_complete_pending_execdirs): Refactored body of what used to be + complete_pending_execdirs(). + (complete_pending_execdirs): Pull body out into + do_complete_pending_execdirs() and call that only if there is work + to do. + (fallback_stat, optionh_stat, optionp_stat, optionl_stat): Use fstatat(). + (get_start_dirfd): New access function for starting_desc. + * find/testsuite/find.gnu/execdir-hier.exp: New test + * find/testsuite/find.gnu/execdir-hier.xo: Expected outut for new test + * lib/dircallback.c, lib/dircallback.h: New function, + run_in_dir(), which runs a callback function in a specified + directory. + * lib/listfile.c: Use run_in_dir() to call readlink() in the right + directory. + (get_link_name_at): Call get_link_name_cb via run_in_dir. + (get_link_name_cb): New callback function, wrappting + get_link_name(). + + * find/testsuite/find.gnu/execdir-pwd.exp: Since we have disabled + thebuilding-up of command lines for -execdir, Savannah bug #18466 + has been neutralised (but not fixed - we just don't allow the + problem circumstance to occur). + +2007-04-15 James Youngman <jay@gnu.org> + + Release 4.3.3. + + * find/find.1: "-printf %b": blocks are 512 bytes. Fixes + Savannah bug #19596. + + * doc/Makefile.am (regexprops.texi): Do not use $(RM) because many + versions od make do not set it, and so it expands to nothing. + This avoids suprious emission of the regexprops.texi file to stdout. + + * find/find.c (main, safely_chdir_lstat, safely_chdir_nofollow): + Only use O_LARGEFILE if it is #defined (NetBSD-3.1 does not define + it). + * find/ftsfind.c (main): ditto + * find/pred.c (pred_empty, prep_child_for_exec): ditto + + + * import-gnulib.config: Update to gnuliv 2007-04-14. + + * lib/Makefile.am, import-gnulib.sh: Create lib/gnulib-version.c + in import-gnulib.sh, not in lib/Makefile. + + * build-aux/Makefile.am: New file; distribute check-tstfiles.sh. + + * locate/Makefile.am: mkinstalldirs is now in build-aux. + + * doc/Makefile.am: We also need getdate.texi. + +2007-04-17 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Use the 2007-04-17 + version of gnulib to fix a compilation error on Cygwin. This + fixes Savannah bug #19619. + + * find/testsuite/find.posix/sv-bug-19605.exp: New test, for + Savannah bug #19605. + * find/testsuite/find.posix/sv-bug-19617.exp: New test, for + Savannah bug #19617. + * find/ftsfind.c (consider_visiting): if fts_read() returns + enf->fts_info==FTS_NS, check for and diagnose a symbolic link + loop. This fixes Savannah bugs #19605 and #19617. + + * find/find.c (process_path): collect the stat information for + directories even if we already have the mode information, because + we need to use the members st_nlink and st_rdev in for the leaf + optimisation and loop detection, respectively. This fixes + Savannah bug #19616. + + * find/ftsfind.c (is_fts_enabled): Return a copy of ftsoptions, + not a copy of the (uninitialised) input argument. This fixes + Savannah bug #19615. + + * find/ftsfind.c (consider_visiting): If fts_read() returned + FTS_NS, then remember that the stat information is not valid, and + therefore don't set state.have_type or state.have_stat. This + fixes Savannah bug #19613. + + * find/testsuite/find.posix/sv-bug-91613.exp, + * find/testsuite/find.posix/sv-bug-91613.xo: New test for Savannah + bug 19613 (assertion failure on symbolic link loop). + + * find/testsuite/config/unix.exp: Correctly diagnose a test case + which fails because find was expected to fail and instead + succeeded. + * find/testsuite/find.gnu/exec-many-rtn-failure.exp: The child + process in this test should return non-zero, not zero. Therefore + run "false" instead of "true". + +2007-04-19 James Youngman <jay@gnu.org> + + * locate/updatedb.1 (--help): Option name should be bold, not + italic. + + * find/testsuite/find.gnu/execdir-hier.exp: Avoid running + -execdir based tests if "." is on $PATH. Fixes Savannah bug + #19634. + * find/testsuite/find.gnu/execdir-in-unreadable.exp: ditto + + * find/testsuite/config/unix.exp (touch): New procedure touch, + replacing "exec touch" for greater efficiency. + * find/testsuite/find.posix/depth1.exp: Change "exec touch" to + "touch". + * find/testsuite/find.posix/files-not-expressions1.exp: ditto + * find/testsuite/find.posix/files-not-expressions2.exp: ditto + * find/testsuite/find.posix/files-not-expressions3.exp: ditto + * find/testsuite/find.posix/links.exp: ditto + * find/testsuite/find.posix/perm-vanilla.exp: ditto + * find/testsuite/find.posix/sv-bug-15235.exp: ditto + * /find/testsuite/find.posix/sv-bug-19613.exp: ditto + + * find/testsuite/find.gnu/access.exp: Fix savannah bug #18414 by + skipping the test if the user can read any file (e.g. is root or + is an Admin user under Cygwin). + +2007-04-19 Peter Breitenlohner <peb@mppmu.mpg.de> (tiny change) + + * locate/bigram.c (main): Set the initial pathname to the empty + string, to avoid decompression problems if the initial pathname + begins with a space. This fixes Savannah bug #19484. + * locate/code.c (main): ditto + +2007-04-20 Maxim V. Dziumanenko <dziumanenko@gmail.com> + + * po/uk.po: New Ukrainian translation. + * configure.in: Added "uk" for Ukranian. + +2007-04-21 James Youngman <jay@gnu.org> + + * find/testuite/Makefile.am (EXTRA_DIST_EXP): added + find/testsuite/find.posix/sv-bug-19617.exp + +2007-04-21 James Youngman <jay@gnu.org> + + Release 4.3.4. + + * find/locate/locatedb.5: Clarifications to the description of the + LOCATE02 format. Organised the material under a number of + headings. Documented the slocate database format. + +2007-04-22 James Youngman <jay@gnu.org> + + * doc/Makefile.am: When cross-compiling, 'make clean' should not + delete doc/regexprops.texi, becaue we can't regenerate it. Fixes + Savannah bug #19658. + + * locate/Makefile.am (BUILT_SOURCES): Automatically generate + dblocation.texi, which records the default database location. + * doc/find.texi: Collect the default database location from + ../locate/dblocation.texi, and use LOCATE_DB in various places. + Document the fact that updatedb can generate slocate-compatible + databases. Document the --dbformat option of updatedb. + * locate/frcode.c (main): Implemented the -S option which allows the + generation of an slocate secure database. + * locate/updatedb.sh: New option --dbformat which selects which + database format to use. + * locate/updatedb.1 (--dbformat): Document the new option. + + + * find/testsuite/find.gnu/access.exp: fixed a typo which prevented + the test correctly being skipped when run as root. This re-fixes + Savannah bug# 18414, I hope. + +2007-04-22 Eric Blake <ebb9@byu.net> + + * xargs/xargs.c (main): Don't assume LINE_MAX exists (i.e. is + #defined). + + * locate/updatedb.sh (PRUNEPATHS): Exclude /proc by default. + +2007-04-23 James Youngman <jay@gnu.org> + + * find/defs.h (struct predicate_performance_info): New data + structure for holding perofmance statistics. + (struct predicate: include predicate_performance_info + (apply_predicate): change from macro to function + (pred_is): new macro, for predicate identity testing + (enum DebugOption): Added DebugSuccessRates + * find/find.1: Document option "-D rates" which turns on + DebugSuccessRates. + * doc/find.texi: ditto + * find.c (main): Call show_success_rates() before exiting. + (apply_predicate): remove the macro defintion, declare equivalent + function in defs.h. + * find/ftsfind.c (main): Call show_success_rates() before + exiting. Use apply_predicate(). + (show_outstanding_execdirs): use pred_is(). + + + +2007-04-24 James Youngman <jay@gnu.org> + + * lib/buildcmd.c: Added some comments outlining how we might + change the implementation to support figuring out the real ARG_MAX + limit. + +2007-04-25 James Youngman <jay@gnu.org> + + * find/tree.c (predlist_dump, predlist_merge_nosort): These + functions were unused and commented out. Removed. + (mark_stat) No longer used. Removed. + (mark_type) No longer used. Removed. + + * find/parser.c (new_insert_exec_ok): When checking for {} in the + arguments to -exec..., use mbsstr() rather than strstr() in order + to cope bettwe with multibyte locales. + + * lib/buildcmd.c: Don't define mbsstr() locally. Instead, call + gnulib's mbsstr(). + +2007-04-28 James Youngman <jay@gnu.org> + + * find/testsuite/find.gnu/deletedir.exp, + find/testsuite/find.gnu/deletedir.xo: New test. + * find/testsuite/find.gnu/deletefile.exp, + find/testsuite/find.gnu/deletefile.xo: New test. + * find/testsuite/Makefile.am: Distribute the new tests + deletefile.exp and deletedir,exp, with their expected-output (.xo) + files too. + * find/testsuite/config/unix.exp (find_start): Add a new "setup" + parameter called just before each time find is invoked. This + allows last-minute tasks to be performed. This feature is + essential for find commands that modify the filesystem, since + otherwise we cannot use our strategy of invoking both binaries at + each optimisation level. + + * find/util.c (optionh_stat, optionp_stat, optionl_stat): Assert + that state.cwd_dir_fd is valid. + + * find/parser.c (parse_delete): Set need_stat to false, since we + don't need the stat information in pred_delete. + * find/pred.c (pred_delete): If unlinkat() with a zero flags + parameter fails with errno==EISDIR, just try again with + flags=AT_REMOVEDIR. That way we normally avoid the cost of a + stat. If we happen to have the stat information to hand anyway, + we make sure we get it right the first time. + + * lib/buildcmd.c (bc_init_controlinfo): Eliminate confusing extra + variable arg_max. Add return value + BC_INIT_CANNOT_ACCOMODATE_HEADROOM for the case where the + environment itself is not too large, but the required headroom + cannot also be accomodated. The caller now passes in the amount + of headroom required. + (bc_use_sensible_arg_max): Use the environment size consistently; + this is accounted for already in posix_arg_size_max, so there is + no need to re-measure the size of the environment. + * lib/buildcmd.h: Define BC_INIT_CANNOT_ACCOMODATE_HEADROOM and + add the headroom parameter to the prototype of bc_init_controlinfo(). + * xargs/xargs.c (main): Define XARGS_POSIX_HEADROOM as 2048 and + use that symbolic value. Pass XARGS_POSIX_HEADROOM to + bc_init_controlinfo(). Handle the case where + BC_INIT_CANNOT_ACCOMODATE_HEADROOM is returned by + bc_init_controlinfo(). + * find/parser.c (new_insert_exec_ok): Pass the required headroom to + bc_init_controlinfo() and handle the error return + BC_INIT_CANNOT_ACCOMODATE_HEADROOM. + + * xargs/xargs.1: Correct the description of the default value and + maximum value for the -s option of xargs. + + * xargs/xargs.c (main): Modify the assertions not to assume that + bc_ctl.arg_max is 2KiB less than ARG_MAX, since sysconfig() may + have returned a value for _SC_ARG_MAX which is greater. For + example, AIX 5.3 can do this. This should fix Savannah bug + #19391. + +2007-04-29 Michael Haubenwallner <michael.haubenwallner@salomon.at> (tiny change) + + * find/defs.h (pred_open) Rename to pred_openparen to avoid + problems with the macrtos which build the parser tabnles on + platforms where 'open' is in fact a macro which expands to + open64. The problem was that token pasting put pred_open64 into + the parser table, but the function was still defined as + parse_open. This fixes Savannah bug #19371. + (pred_close): ditto + * find/parser.c (parse_open, parse_close): ditto. Also change + repferences to pred_open and pred_close similarly. + * find/parser.c (parse_openparen, parse_closeparen): ditto + +2007-04-29 James Youngman <jay@gnu.org> + + * find/defs.h: Declare fatal_file_error(), a function for + reporting immediately-fatal file errors, which appropriately + quotes the file name. The function does not return. Also define + ATTRIBUTE_NORETURN. Record the currently-required quoting style + in struct options. + + * find/find.c, find/ftsfind.c, find/parser.c, find/pred.c, + find/util.c: Call fatal_file_error() for fatal file errors. Use + quotearg_n_style() to quote filenames which are used in error + message that aren't fatal. Use options.err_quoting_style as the + quoting style. This fixes Savannah bug #18203. + * locate/locate.c: ditto + * xargs/xargs.c: ditto + + * lib/listfile.c: To use alloca, just #include <alloca.h>. Gnulib + handles the rest. Also these days, <stdlib.h> and <string.h> can + just be included unconditionally. + * lib/qmark.c: Fixed comment on first line describing the module. + +2007-04-30 James Youngman <jay@gnu.org> + + * find/defs.h: Change all predicate functions to take a const + char* argument as the pathname, not a char*. Modify the parser + table definition accordingly. + * find/parser.c: Ditto + * find/pred.c: Ditto + * find/pred.c (do_fprintf): copy the pathname string for the %H + and %h cases, since we can no longer modify the string in place. + * lib/listfile.c (print_name, list_file, + print_name_without_quoting, print_name_with_quoting): Use const + char * param for pathname. + * lib/listfile.h (list_file): Use const char * param for + pathname. + +2007-05-01 James Youngman <jay@gnu.org> + + * find/find.c (wd_sanity_check): corrected the type of %ld fprintf + arguments in error messages. + * find/fstype.c: include "error.h" for the declaratio of error(). + * find/ftsfind.c: include "error.h" for the declaratio of + error(). Include dircallback.h for the correct declararion of + run_in_dir(). + * find/parser.c: include getdate.h (for declaration of getdate) + and error.h (for the declaration of error). + (find_parser): Removed unused variable p. + * find/pred.c (pred_timewindow): Removed unused variable delta. + (do_fprintf): Removed unused variable cc. + * find/tree.c: Include error.h (for the declaration of error()). + (build_expression_tree): removed sourious extra arguments in call + to error(). + * find/util.c: include error.h. + * lib/buildcmd.h (get_line_max): Comment out unused function. + * lib/listfile.c: Include dircallback.h. + * locate/code.c: Include errno.h, erorr.h, progname.h and + xlloc.h. + (inerr): New function for reporting read errors. + (outerr): New function for reporting output errors. + (main): Call inerror when fgets fails. Call outerr when fwrite + or putc or putw fails. + * locate/frcode.c (put_short): Return boolean value indicating + success. + (outerr): New function for reporting write errors. + (main): Call outerr if call to putc() or puts() or put_short() + fails. + * locate/locate.c (search_one_database): diagnose corruption if a + traditional-style database is too short to include a complete + bigram table. + +2007-05-05 James Youngman <jay@gnu.org> + + Release 4.3.5. + + * find/parser.c (parse_samefile): Hold a file descriptor open on + the reference file in order to prevent pred_samefile getting + fooled by inode reuse. Pay attention to race conditions on + systems lacking O_NOFOLLOW when the -P option is in force. This + fixes Savannah bug #19806. + + * find/defs.h (struct samefile_file_id): New struct, like dir_id + but including a file descriptor on the reference file. + + * find/pred.c (pred_type): -type should return false if the file + has mode 00000, as opposed to having an assertion failure. This + fixes Savannah bug #16378. + + * find/ftsfind.c (consider_visiting): Issue a warning message if + none of the mode bits are set for a file (i.e. st_mode==00000). + * find/util.c (get_statinfo): ditto + * find/util.c (hook_fstatat): Introduced debug code (normally + disabled) for testing Savannah bug #16378. + +2007-05-06 James Youngman <jay@gnu.org> + + * find/tree.c: (costlookup): Added pred_fls to the optimiser's + predicate cost lookup table. + + * lib/printquoted.c (print_quoted): Change return value from void + to int, to allow the caller to detect failures. + * lib/printquoted.h (print_quoted): Change declaration + accordingly. + + * find/defs.h (struct format_val): Incldue a 'filename' member so + that we can provide more useful error messages (e.g. when we fail + to flush or close an output file). + (nonfatal_file_error): declare new function. + + * find/util.c (traverse_tree): Utility function which calls a + callback on every node of the parse tree. + (flush_and_close_output_files): Flush all output streams. Close + all output files. Report any errors. + (cleanup): Use traverse_tree() to invoke + complete_pending_execdirs(). + (report_file_err): refactored error reporting function, extracted + from fatal_file_error. + (nonfatal_file_error): New function. + + * find/pred.c (checked_fprintf): New function, which performa an + fprinf(), and checkes the result. If the operation resulted in an + error, a nonfatal error message is issued. + (checked_print_quoted): Ditto, for print_quoted rather than + fprintf. + (checked_fwrite): Ditto for fwrite instead of fprintf. + (checked_fflush): Ditto for fflush + (do_fprintf): Use the checked_*() functions rather than their + direct counterparts, to ensure that I/O errors are detected. This + fixes Savannah bug #19416. + (pred_fls): Use args.printf_vec instead of args.stream, which has + now been removed. + (pred_ls): just call pred_fls. + (pred_fprint0): use args.printf_vec, instead of the now removed + args.stream. + (pred_print0): just call pred_fprint0 + + * find/parser.c: (insert_fprintf): Make the caller collect the + format argument from the argument list. + (open_output_file): Enhance to set up defaults in + our_pred->args.printf_vec as well as opening the output file. + Also record the filename for possible later use in an error + message. + (collect_arg): Convenience function for collecting an argument + from the argument list. + (insert_fls): Refactored the body of parse_fls out so that + parse_ls can use it. + (parse_fls): call insert_fls. + (parse_ls): ditto + (parse_fprint): Instead of setting up our_pred->args.printf_vec + manually, call open_output_file() to do it. + (parse_print): Same, but by calling open_stdout(). + (insert_fprint): Make the caller collect the filename argument, + and delegate the setup of our_pred->args.printf_vec to either + open_output_file() (for parse_fprint and parse_fprint0) or + open_stdout (parse_print0). + (parse_fprint0): Use collect_arg(). + (parse_print0): Use insert_fprint(), just like parse_fprint0. + (parse_printf): Use collect_arg(). + (parse_fprintf): Use collect_arg(). + +2007-05-08 James Youngman <jay@gnu.org> + + * find/defs.h (struct predicate.args): str is now const. + + * find/parser.c (get_comp_type): get_comp_type now takes a const + char* parameter. + (get_num): ditto + (get_relative_timestamp): ditto. Also use collect_arg(). + (collect_arg_stat_info): New function; collects a command-line + argument and returns its xstat information, in one go. + error(1,...) is called if the stat fails. + (parse_anewer): Use collect_arg(). + (parse_cnewer): ditto + (parse_fprint): ditto + (parse_fstype): ditto + (parse_group): ditto + (parse_ilname): ditto + (parse_iname): ditto + (parse_iwholename): ditto + (parse_lname): ditto + (insert_depthspec): ditto + (parse_name): ditto + (parse_newer): ditto + (parse_wholename): ditto + (parse_perm): ditto + (parse_regextype): ditto + (insert_regex): ditto + (parse_samefile): ditto + (parse_used): ditto + (parse_user): ditto + (insert_type): ditto + (parse_time): ditto + (parse_size): When the size argument is invalid but consists only + of a valid suffix char, avoid issuing an error message about a + blank argument. Append the suffix letter again. + (parse_xdev, parse_ignore_race, parse_noignore_race, parse_warn, + parse_xtype): Remove casts to void for some function parameters + that were, in fact, used. + + * find/testsuite/find.gnu/fprint-unwritable.exp: new test + * find/testsuite/find.gnu/fprint0_stdout.exp: new test + * find/testsuite/find.gnu/fprint0_stdout.xo: new test + * find/testsuite/find.gnu/mindepth-arg.exp: new test + * find/testsuite/find.gnu/mindepth-arg.xo: new test + * find/testsuite/find.gnu/mindepth-badarg.exp: new test + * find/testsuite/find.gnu/print_stdout.exp: new test + * find/testsuite/find.gnu/print_stdout.xo: new test + * find/testsuite/find.gnu/samefile-missing.exp: new test + * find/testsuite/find.gnu/samefile-p-brokenlink.exp: new test + * find/testsuite/find.gnu/samefile-p-brokenlink.xo: new test + * find/testsuite/find.gnu/used-invarg.exp: new test + * find/testsuite/find.gnu/used-missing.exp: new test + * find/testsuite/find.gnu/user-invalid.exp: new test + * find/testsuite/find.posix/group-empty.exp: new test + * find/testsuite/find.posix/group-missing.exp: new test + * find/testsuite/find.posix/name-missing.exp: new test + * find/testsuite/find.posix/size-invalid.exp: new test + * find/testsuite/find.posix/size-missing.exp: new test + * find/testsuite/find.posix/typearg.exp: new test + * find/testsuite/find.posix/user-empty.exp: new test + * find/testsuite/find.posix/user-missing.exp: new test + +2007-05-19 James Youngman <jay@gnu.org> + + * find/find.1: Spurious .R directives (.R is not a directive) + should be .B. This fixes Savannah bug #19871. + * build-aux/man-lint.sh: New file; verifies that the specified + manual pages do not provoke error messages from troff. This is + used to detect further occurrences of Savannah bug #19871. + * find/Makefile.am (dist-hook): Run findutils-check-manpages, + which invokes man-lint.sh. + * locate/Makefile.am (dist-hook): ditto + * xargs/Makefile.am (dist-hook): ditto + + * .cvsignore: Ignore ylwrap, which automake-1.10 wants us to have + a copy of for some reason + + * import-gnulib.sh (main): New option -a which just runs the + autotools without reimporting gnulib. + + * Makefile.am (jy-regex-fix): The previous explanatory comment + refers to the jy-regex-fix target, not to dist-hook, so it has + been moved. + +2007-05-21 James Youngman <jay@gnu.org> + + Release 4.3.6. + + * build-aux/Makefile.am (EXTRA_DIST): Added man-lint.sh. + + * locate/locate.c (drop_privs): pass the correct list of groups to + setgroups(). Previously, if root invoked locate, their group ID + would have been set to a random value. The same bug also caused + an array overrun past the end of the local array groups[]. The + variable which gets overwritten by the buffer overrun on x86 is + 'what'. The value of that variable is always changed before it is + used, and so I believe that this buffer overrun will not cause a + crash. The only effect of the bug therefore would be for locate + to change group to a random group ID since groups[0] is + uninitialised. On my test system this random group ID is 0 + anyway. The effect does not depend on any externally-controllable + information, so it is unlikely this is exploitable. This bug is + detailed as bug# 19923. + +2007-05-24 James Youngman <jay@gnu.org> + + * find/util.c (check_nofollow): If O_NOFOLLOW is defined but 0, + act as if it is undefined. This should prevent a runtime + assertion failure on IRIX 6.5. This fixes Savannah bug #19948, + reported by Nelson Beebe. + + * m4/noreturn.m4: New file, testing for support of __attribute__ + ((__noreturn__)). Defines jy_AC_ATTRIBUTE_NORETURN and sets + HAVE_ATTRIBUTE_NORETURN. + * configure.in: Call jy_AC_ATTRIBUTE_NORETURN. + * find/defs.h (ATTRIBUTE_NORETURN): Define to nothing if + HAVE_ATTRIBUTE_NORETURN is not set in config.h. This should fix a + compilation error with non-GCC compilers. This is Savannah bug + #19967, reported by Nelson Beebe. + + * configure.in (FINDLIBS): Update FINDLIBS to link against -lm for + modf. This fixed a link error on HP-UX. This fixes Savannah + bug #19966, reported by Nelson Beebe. + * find/Makefile.am (LDADD): Use @FINDLIBS@ + +2007-05-26 James Youngman <jay@gnu.org> + + Code refactoring in locate. + * locate/locate.c (visit): New function, into which we factor out + the traversal of the inspector list. + (process_simple): Use visit(). + (process_or): Use visit(). + (process_and): Use visit(). + + Speed improvements in locate for unibyte locales. + * locate/locate.c (visit_substring_match_nocasefold_wide): Renamed + from visit_substring_match_nocasefold. + (visit_substring_match_casefold_wide): Renamed from + visit_substring_match_casefold. + (visit_substring_match_casefold_narrow): Special case of + visit_substring_match_casefold_wide which we use for unibyte + locales; we use strcasestr() rather than mbscasestr(). + (visit_substring_match_nocasefold_narrow): Ditto, using strstr() + instead of mbsstr(). + + * find/parser.c (parse_gid): Return an explicit boolean constant + rather than automatically converting from a pointer, because the + gnulib substitute for bool (or _Bool) in c89 environments lacking + bool does not support that conversion. One affected system is Sun + WorkShop Compilers 5.0 98/12/15 C 5.0 on Solaris 7. This is + Savannah bug #19970, reported by Nelson Beebe. + (parse_inum): Ditto. + (parse_links): Ditto. + (parse_uid): Ditto. + (check_path_safety): declarations need to go before code, not + interspersed. Move declaration of char* s. + + * xargs/testsuite/xargs.posix/rc-125.exp: Explain Savannah bug + #19969. This bug is not yet fixed. + + * find/defs.h: #include <stdint_.h>, for uintmax_t. This should + fix a compilation error on DEC C V5.9-005 on Digital UNIX V4.0F + (Rev. 1229). This is Savannah bug #19965, reported by Nelson + Beebe. + + * find/defs.h: Don't include <errno.h>, since it is not needed in + the header file itself. The "extern int errno;" declaration is + now obsolete. + * find/parser.c: Include <errno.h> + * find/pred.c: Dito + * find/util.c: Ditto + +2007-05-27 James Youngman <jay@gnu.org> + + * import-gnulib.config (modules): Import sys_stat. + (gnulib_version): Update to 2007-05-26. This fixes a compilation + error in stdlib.h with the DEC C compiler. This fixes Savannah + bug# 19983. + + * find/parser.c (safe_atoi): New function, like atoi, but which + calls error(1, ...) when the argument is invalid or out of range. + (parse_group): Use safe_atoi. + (insert_depthspec): Use safe_atoi + (parse_user): Use safe_atoi + + * configure.in: Check for fabs in libm (fixing a compilation error + on Solaris). + + * import-gnulib.config (modules): Import the wcwidth module to + provide it on those systems (such as BeOS) which lack it. + + * find/pred.c (file_sparseness): If st_blocks is not present in + struct stat, the file has a sparseness of 1.0. + + * doc/find.texi (Size Directives): Document the %S format + directive for -printf. + + * find/pred.c (mode_to_filetype): Don't use S_IFSOCK on systems + which lack that macro. POSIX systems are allowed to lack + sockets (it's an XSI extension). + (file_sparseness): If struct stat lacks st_blocks, assume all + files have a spearseness of 1.0. + + * import-gnulib.config (modules): Import fchdir inorder to fix an + undefined-symbol error for fchdir on BeOS. + +2007-05-31 Jakub Bogusz <qboosh@pld-linux.org> (tiny change) + + * find/parser.c (parse_group): Correct typo in error message. + (check_path_safety): same + +2007-05-31 James Youngman <jay@gnu.org> + + * find/parser.c (parse_time): Once we have determined the + comparison type, restore the original time argument since + get_relative_timestamp() also wants to see it. This fixes + Savannah bug #20005. + + * po/findutils.pot, ga.po, pt.po, tr.po, pl.po: updated from the TP + website. + +2007-06-03 James Youngman <jay@gnu.org> + + * locate/locate.c (visit_old_format, extend, toolong): Extend the + buffer used to build the current pathname when reading an + old-format database. The new function extend is called to do + this. The new function toolong is called to report a fatal error + when the buffer size would otherwise exceed SIZE_MAX. This fixes + Savannah bug #20014, which is a security-related problem with the + CVE identifier CVE-2007-2452. + + * configure.in: Determine if the setgroups function is available, + and set HAVE_SETGROUPS if so. + * locate/locate.c (drop_privs): Call setgroups() only if + HAVE_SETGROUPS indicates that it is available. This fixes + Savannah bug #19981. + + * po/vi.po: Updated Vietnamese translation + +2007-06-04 James Youngman <jay@gnu.org> + + * locate/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP): + Added old_prefix.exp and old_prefix.xo, a new test case for long + shared rpefixes with the old database format. + + * locate/locate.c (visit_old_format): Use getword() from word_io.c + instead of getw(), because getw() is not in POSIX. + * locate/word_io.c: New file, providing replacement for getw(). + * locate/locatedb.h: Declare getword() + * locate/Makefile.am (locate_SOURCES): Added word_io.c + + * locate/testsuite/config/unix.exp (locate_start): Make the + failure messages slightly more explicit; indicate what went wrong + when a test fails. + +2007-06-05 James Youngman <jay@gnu.org> + + Guess the byte-order of old-format locate databases. + * locate/word_io.c (getword): Make the endian_state_flag parameter + an enum rather than an int. If we are in the initial ("don't + know") byte-order guessing state and the swapped value is out of + range, use this as evidence that the byte order is native. + * locate/locatedb.h: Declare getword accordingly. + * locate/locate.c (struct process_data): Added endian_state + member, which remembers for us what the big/little endian order + guessing state is when we read an old-format database. + (visit_old_format): Use the procdata.endian_state rather than a + local variable, so that the information can persist across calls. + (i_am_little_endian): Locate figures out if we needed to byteswap + the words in an old-format database, but that is an implementation + detail. Therefore we figure out our own byte order so that we can + produce a more relevant message for --statistics. The + i_am_little_endian() returns nonzero if the current host has + little-endian byte order. + (search_one_database): Report the byte-order of old-format + databases. + +2007-06-09 James Youngman <jay@gnu.org> + + Release 4.3.7. + + Check that we can correctly read old-format databases which are + big-endian or little endian. + * locate/testsuite/config/unix.exp (locate_from_db): New function; + supports testing locate against a provided database. + * locate/testsuite/locate.gnu/bigendian.exp: New test; make sure + we can read an old-format big-endian database. + * locate/testsuite/locate.gnu/bigendian.xo: Expected output from + bigendian.exp test. + * locate/testsuite/locate.gnu/littleendian.exp: New test; make sure + we can read an old-format little-endian database. + * locate/testsuite/locate.gnu/locateddb.old.powerpc.xi: Old format + big endian database file, for supporting bigendian.exp. + * locate/testsuite/locate.gnu/littleendian.xo: Expected output from + littleendian.exp test. + * locate/testsuite/locate.gnu/locateddb.old.x86.xi: Old format + little endian database file, for supporting littleendian.exp. + * locate/testsuite/Makefile.am: Distribute littleendian.exp, + bigendian.exp and related .xi and .xo files. + + + * doc/find.texi (Size Directives): Compare %b with %s/512, not + %s/1024. This fixes (again) Savannah bug #19596. + * NEWS: mention the fix. + + Avoid using the non-portable function putw(). + * locate/locatedb.h: Declare putword(). + * locate/frcode.c: Include <stdbool.h> as locatedb.h now requires + it. + * locate/code.c (main): Use putword() rather than putw(), because + the latter was removed from SUSv3. This fixes Savannah bug #19980. + Also include <stdbool.h> as locatedb.h now requires this. + * locate/word_io.c (putword): Define the new function putword. + + Ensure that <config.h> is included before any system header + * find/defs.h: Do not include <config.h> from "defs.h". Instead + just complain if it was not already included, since it needs to + be included first of all, even before system headers (in case + gnulib had replaced a system header). Check + ALREADY_INCLUDED_CONFIG_H to determine this. + * configure.in: Always define ALREADY_INCLUDED_CONFIG_H in + config.h. + * find/find.c: Include config.h before defs.h. + * find/finddata.c: ditto. + * find/fstfind.c: ditto. + * find/parser.c: ditto. + * find/pred.c: ditto. + * find/util.c: ditto + * find/tree.c: ditto (fixing Savannah bug #20128). + + * m4/noreturn.m4 (jy_AC_ATTRIBUTE_NORETURN): Use AC_LANG_PROGRAM + inside AC_COMPILE_IFELSE. + + * doc/find.texi (Security Considerations for locate): Discuss in + detail the buffer overrun when reading old-format locate + databases. This is CVE reference CVE-2007-2452. + +2007-06-12 James Youngman <jay@gnu.org> + + Make the test suite work when run as root. + * find/testsuite/config/unix.exp (fs_superuser): Abstract out the + check which discovers if we have superuser privileges on the + filesystem (taken from access.exp). + * find/testsuite/find.gnu/access.exp: Call fs_superuser. + * find/testsuite/find.gnu/fprint-unwritable.exp: Use fs_superuser. + + * po/vi.po, ga.po, nl.po: Updated translations + * po/findutils.pot: Updated template file + +2007-06-12 Nix <nix@esperi.org.uk> (tiny change) + + * locate/locate.c (drop_privs): Use groups[0] rather than + groups[1], since groups[] is a one-element array. This is a + buffer overrun affecting root only. In theory it could affect + setuid installations, but I (James Youngman) cannot find an explot + mechanism for it. This fixes Savannah bug#20157. + * NEWS: Mention this fix. + +2007-06-12 James Youngman <jay@gnu.org> + + Release 4.3.8. + + * find/find.1 (HISTORY): Document when the find tests -readable, + -writable, -executable and the option -regextype were introduced. + +2007-06-13 James Youngman <jay@gnu.org> + + * po/pl.po: Updated Polish translation. + +2007-06-14 James Youngman <jay@gnu.org> + + * find/parser.c (parse_time): Use the variable comp, which holds + the planned comparison type, rather than the structure tval, which + has not been initialised yet and contains a random value. This + fixes Savannah bug #20139. + * NEWS: Mention the bugfix. + +2007-06-19 Eric Blake <ebb9@byu.net> + + Fix compilation on cygwin, Savannah bug #20210. + * import-gnulib.config (gnulib_version): Import strcasestr and + updated canonicalize-lgpl-tests. + * lib/dircallback.c (includes): Track gnulib changes. + +2007-06-21 Eric Blake <ebb9@byu.net> + + * locate/.cvsignore: Ignore dblocation.texi. + * build-aux/.cvsignore: Ignore Makefile. + * locate/locate.c (set_max_db_age): Fix typo in error message. + +2007-06-22 James Youngman <jay@gnu.org> + + Better documentation for the fractional part of seconds fields for + -printf and similar actions. + * doc/find.texi (Time Components): Point out that the seconds + field of the timestamp is often printed out with a fractional part + of unspecified length and precision. The '%Tc' field has no + seconds part. + (Combined Time Formats): Point out the same thing for '%T@'. + * find/find.1 (%A): Point out the same thing. + * NEWS: Mention these changes. + + Fix various lint-type complaints taken from the rules in the + coreutils Makefile.maint file (see build-aux/src-sniff.py). + * xargs/xargs.c: Removed unnecessary parentheses in "#if defined" + checks. + (main): Don't cast the return value of xmalloc. + (add_proc): Don't cast the return value of xmalloc. + * lib/regextype.c: Don't include quotearg.h, we don't need it. + * lib/dircallback.c, lib/nextelem.c, lib/prontquoted.c, + lib/qmark.c, lib/strspn.c, lib/waitpid.c: Assume config.h is available. + * lib/extendbuf.c: Ditto + * lib/listfile.c: Ditto. Also removed unnecessary parentheses in + "#if defined" checks. + (get_link_name): Don't cast the result of xmalloc. + * lib/bigram.c: Removed unnecessary parentheses in "#if defined" + checks. + * lib/savedirinfo.c: Assume config.h is available. Also removed + unnecessary parentheses in "#if defined" checks. + * lib/buildcmd.c (bc_do_insert): Don'tcast the result of xmalloc(). + * find/tree.c (build_expression_tree): Don't cast the argument to free(). + * find/ftsfind.c (set_close_on_exec): Removed unnecessary + parentheses in "#if defined" checks. Also changed "filesystem" -> + "file system" + * find/util.c (check_nofollow): Removed unnecessary parentheses in + "#if defined" checks. + * find/parser.c (estimate_fstype_success_rate): ditto. + (insert_regex): Do not cast the result of xmaloc(). Removed unnecessary + parentheses in "#if defined" checks. Also changed "filesystem" -> + "file system" + * find/pred.c: ditto + * find/find.c: "the the" -> "the", "filesystem" -> "file system" + * find/fstype.c: "filesystem" -> "file system" (in comments and + static functions) + * locate/frcode.c: Removed unnecessary parentheses in "#if + defined" checks. + * locate/locate.c (search_one_database): Don't cast the return + value of xmalloc. + (dolocate): Mark error message for translation. + +2007-06-23 James Youngman <jay@gnu.org> + + * doc/find.texi (Introduction): Recommend that people check they + are using the latest version before reporting a bug. + +2007-06-24 James Youngman <jay@gnu.org> + + * build-aux/.gitignore, debian/.gitignore, doc/.gitignore, + find/.gitignore, find/testsuite/.gitignore, .gitignore, + lib/.gitignore, locate/.gitignore, locate/testsuite/.gitignore, + m4/.gitignore, po/.gitignore, xargs/.gitignore, + xargs/testsuite/.gitignore: New files to make it more painless to + track findutils sources with git. + + * NEWS: Mention the previous change to doc/find.texi. + +2007-06-25 James Youngman <jay@gnu.org> + + * po/sv.po: Updated Swedish translation. + +2007-06-26 James Youngman <jay@gnu.org> + + * README-alpha: Mention the findutils-patches mailng list and the + archives for findutils-patches and bug-findutils. + + * po/bg.po: Updated from Translation Project. + +2007-06-26 James Youngman <jay@gnu.org> + + * build-aux/src-sniff.py: Detect uses of struct stat where the + header file was not included. + * find/find.c: Fix this, and uses of assert without a following + space (the coding standard requires a space, but there are still + a number of cases where other functions are called with no + following space). + * find/fstype.c: Ditto. + * find/ftsfind.c: Ditto. + * find/parser.c: Ditto. + * find/pred.c: Ditto. + * find/tree.c: Ditto. + * find/util.c: Ditto. + * lib/buildcmd.c: Ditto. + * lib/buildcmd.h: Ditto. + * lib/extendbuf.c: Ditto. + * locate/frcode.c: Ditto. + * locate/locate.c: Ditto. + * locate/word_io.c: Ditto. + * xargs/xargs.c: Ditto. + + * find/tree.c (cost_table_comparison): Avoid < comparison between + function pointer types. Instead cast the function pointers to + (const void*). Both alternatives are undefined C, but the former + actually fails to compile on some systems. This fixes Savannah + bug #20263. + * NEWS: mention the fix + + * find/tree.c (calculate_derived_rates): Removed assignment to + rate variable following an assert(0) call, which had been added to + silence a "used before initialised" warning, and replace it with a + call to abort, which (a) correctly halts execution if _NDEBUG is + defined and (b) more accurately documents what's happening. + + * find/parser.c (get_stat_Ytime): Removed redundant call to abort. + + * find/util.c (debug_stat): For consistency, use assert (0) rather + than assert (false). + +2007-06-26 Eric Blake <ebb9@byu.net> + + * import-gnulib.config (modules): Allow ./configure + --disable-assert. + +2007-06-27 James Youngman <jay@gnu.org> + + Added a maintenance manual. + * doc/find-maint.texi: New file. + * doc/Makefile.am (info_TEXINFOS): Added doc/find-main.texi. + * doc/find.texi (Introduction): Fixed typo. + +2007-06-28 Eric Blake <ebb9@byu.net> + + * import-gnulib.sh (run_gnulib_tool): Speed operation when + updating an existing tree. + + Allow 'make check' to work without prior 'make all'. + * find/Makefile.am (SUBDIRS): Build in . before testsuite. + * locate/Makefile.am (SUBDIRS): Likewise. + * xargs/Makefile.am (SUBDIRS): Likewise. + + Fix Savannah bug #20273, xargs -E with seekable stdin. + * import-gnulib.config (modules): Sort, add closein. + * xargs/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO) + (EXTRA_DIST_XI): Add new test. + * xargs/testsuite/config/unix.exp (xargs_start): Support optional + argument to allow test to run a subshell. + * xargs/testsuite/inputs/sv-bug-20273.xi: New file. + * xargs/testsuite/xargs.posix/sv-bug-20273.xo: Likewise. + * xargs/testsuite/xargs.posix/sv-but-20273.exp: Likewise. + * xargs/xargs.c (main): Use close_stdin, not close_stdout. + * NEWS: Document the fix. + +2007-06-30 James Youngman <jay@gnu.org> + + * find/find.1 (EXAMPLES): Added an example of using find and cpio -p + to copy a directory tree, with pruning and omitted files. + + * find/pred.c (format_date): Use verify_true for constant + conditions rather than assert. + * xargs/xargs.c (main): Ditto. + + Enhancements to the code smell detector. + * Makefile.am (findutils-check-smells): Automate the calling of + build-aux/src-sniff.py. + * build-aux/src-sniff.py: Rework to use a list of regex-based + sniffers, to allow checking types of file other than C. Allow + file-based regex sniffers to give an indication of the line number + where they think the problem (or part of the problem) exists. + Added code smell detectors for a sample Bourne shell problem and + for out-of-date FSF addresses. + + * find/tree.c (get_pred_cost): Eliminate unused variable. + + Fix Savannah bug #20263 in a more portable way. + * find/tree.c (cost_table_comparison): Avoid casting function + pointers to poiter-to-object, since this is not portable (or + of course conforming). Instead, use memcmp(). + +2007-06-30 Eric Blake <ebb9@byu.net> + + * find/pred.c (pred_timewindow): Avoid gcc warnings. + (format_date): Likewise. + * find/tree.c (calculate_derived_rates): Likewise. + * locate/word_io.c (getword): Likewise. + +2007-07-02 James Youngman <jay@gnu.org> + + * import-gnulib.sh: (run_gnulib_tool): Don't pass --gpl3 to + gnulib-tool, since the program does not have that option (that was + a local change which proved not to be necessary). + + GPL3 migration. + * COPYING: Migrate to version 3 of the GNU General Public license. + * Makefile.am: ditto + * build-aux/check-testfiles.sh: ditto + * build-aux/src-sniff.py: ditto + * debian/copyright: ditto + * doc/find-maint.texi: ditto + * find/defs.h: ditto + * find/find.c: ditto + * find/finddata.c: ditto + * find/fstype.c: ditto + * find/ftsfind.c: ditto + * find/parser.c: ditto + * find/pred.c: ditto + * find/testsuite/config/unix.exp: ditto + * find/tree.c: ditto + * find/util.c: ditto + * import-gnulib.config: ditto + * import-gnulib.sh: ditto + * lib/buildcmd.c: ditto + * lib/buildcmd.h: ditto + * lib/dircallback.c: ditto + * lib/dircallback.h: ditto + * lib/extendbuf.c: ditto + * lib/extendbuf.h: ditto + * lib/forcefindlib.c: ditto + * lib/gnulib-version.h: ditto + * lib/listfile.c: ditto + * lib/listfile.h: ditto + * lib/modetype.h: ditto + * lib/nextelem.c: ditto + * lib/nextelem.h: ditto + * lib/printquoted.c: ditto + * lib/printquoted.h: ditto + * lib/qmark.c: ditto + * lib/regexprops.c: ditto + * lib/regextype.c: ditto + * lib/regextype.h: ditto + * lib/savedirinfo.c: ditto + * lib/savedirinfo.h: ditto + * lib/strspn.c: ditto + * lib/wait.h: ditto + * lib/waitpid.c: ditto + * locate/bigram.c: ditto + * locate/code.c: ditto + * locate/frcode.c: ditto + * locate/locate.c: ditto + * locate/locatedb.h: ditto + * locate/testsuite/config/unix.exp: ditto + * locate/updatedb.sh: ditto + * locate/word_io.c: ditto + * po/fetch-po-files: ditto + * xargs/testsuite/config/unix.exp: ditto + * xargs/xargs.c: ditto + + Typo fixes. + * doc/find.texi (Deleting Files): Fixed a typo. + (Deleting Files): Likewise. + + New worked example for find. + * doc/find.texi (Copying A Subset of Files): Added a new worked + example. + + * doc/find.texi (Updating A Timestamp File): Indicate that %A@ now + includes a sub-second part on many systems. + + Include <fcntl.h> unconditionally. + * import-gnulib.config (modules): Also use the fcntl module. + * find/find.c: #include <fcntl.h> unconditionally, since + gnulib provides it if it is absent. + * find/fstype.c: Likewise. + * find/ftsfind.c: Likewise. + * find/parser.c: Likewise. + * find/util.c: Likewise. + * locate/locate.c: Likewise. + +2007-07-03 James Youngman <jay@gnu.org> + + Fix Savannah bug #20310. + * m4/nullsort.m4: If we are cross compiling, assume "sort -z" does + not work on the target. + + Manpage improvements. + * find/find.1: More consistent use of quotation marks. + * locate/locate.1 (HISTORY): New section. + +2007-07-04 James Youngman <jay@gnu.org> + + * NEWS: Fixed typos in description of bugfix for bug #20310. + +2007-07-06 James Youngman <jay@gnu.org> + + * po/uk.po, po/nl.po, po/vi.po: Updated from Translation Project. + +2007-07-14 Eric Blake <ebb9@byu.net> + + * import-gnulib.config (gnulib_version): Bump date, to pick + up fix in canonicalize module testing. + +2007-07-17 Eric Blake <ebb9@byu.net> + + Ensure 'make distcheck' can pass on cygwin. + * configure.in: Rename... + * configure.ac: ...to this, to match automake recommendations. + * NEWS: Add release dates. + * doc/find-maint.texi: Remove trailing whitespace. + (Documentation): Document where release dates are usefully + recorded. + * locate/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Be + aware of .exe. + * .cvsignore: Ignore 'make dist' files. + * po/.cvsignore: Ignore remove-potcdate.sed. + +2007-07-19 Eric Blake <ebb9@byu.net> + + * po/POTFILES.in: Update to reflect current location of + translatable strings. + +2007-07-22 James Youngman <jay@gnu.org> + + * find/find.1: Corrected a number of typos and fixed up the + alphabetical section ordering. This fixes Savannah bug #20552. + + Version banners now comply with the GNU coding standard. + * find/parser.c (parse_version): Use display_findutils_version() + instead of printing the information manually. Don't include + gnulib-version.h since we no longer directly use that header. + * lib/findutils-version.c: Added + * lib/findutils-version.h: Added + * import-gnulib.config (modules): Added version-etc and + version-etc-fsf. + * lib/Makefile.am (libfind_a_SOURCES): added findutils-version.c. + * find/version.c: Removed + * find/Makefile.am: Remove version.c + * locate/Makefile.am: Don't link ../find/version.o + * xargs/Makefile.am: Ditto + * xargs/xargs.c (main): Use display_findutils_version() + * locate/code.c (main): Ditto + * locate/frcode.c (main): Ditto + * locate/locate.c (dolocate): Ditto + * locate/updatedb.sh (version): Display copyright information in + the right format. Also ensure that we exit with a nonzero status + if there was an output error for --help and --version. + * find/testsuite/config/unix.exp (find_version): Adjust for + --version format change + * locate/testsuite/config/unix.exp (locate_version): Ditto + * xargs/testsuite/config/unix.exp (xargs_version): Ditto + * NEWS: Mention the change + +2007-07-22 Eric Blake <ebb9@byu.net> + + * po/POTFILES.in: Add lib/findutils-version.c. + +2007-07-23 Eric Blake <ebb9@byu.net> + + * find/parser.c (parse_version): Avoid compiler warning. + * locate/code.c (includes): Likewise. + +2007-07-26 Eric Blake <ebb9@byu.net> + + * doc/.cvsignore: Ignore more generated documentation. + +2007-07-29 James Youngman <jay@gnu.org> + + * po/tr.po: Updated from Translation Project. + +2007-07-31 Eric Blake <ebb9@byu.net> + + Allow choice of default arg size, Savannah bug #20594. + * configure.ac (DEFAULT_ARG_SIZE): Check environment for a default + size override. + * lib/buildcmd.c (bc_use_sensible_arg_max): Use default size from + configure, if requested. + * README (DEFAULT_ARG_SIZE): Mention the ability to tune this at + configure time. + * NEWS: Document the change. + +2007-08-05 Eric Blake <ebb9@byu.net> + + Fix Savannah bugs #20662, #20688. + * find/find.c (at_top): Avoid memory leak. + * find/pred.c (do_fprintf, pred_iname, pred_name): Likewise. + (pred_name_common): New function, factored from pred_iname and + pred_name. + * find/parser.c (check_name_arg): Let -nowarn silence -name /. + * locate/locate.c (visit_basename): Avoid memory leak. + * NEWS: Document the changes. + * doc/find.texi (Warning Messages): Document -nowarn's effect on + -name and -iname. + * find/testsuite/find.gnu/name-slash.exp: New test, to ensure + 20662 doesn't regress on '-name /', and that 20688 silences the + warning. + * find/testsuite/find.gnu/printf-slash.exp: Likewise. + * find/testsuite/find.gnu/name-slash.xo: Expected results. + * find/testsuite/find.gnu/printf-slash.xo: Likewise. + * find/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP): + Distribute new tests. + +2007-08-18 Eric Blake <ebb9@byu.net> + + Fix Savannah bug #20751. + * lib/listfile.c (list_file): Accommodate gnulib change of 3 Jul + 2006. + * NEWS: Document this. + Reported by Nigel Stepp. + * THANKS: Sort and update. + * AUTHORS: Add myself. + +2007-08-20 James Youngman <jay@gnu.org> + + * doc/find.texi (Directories): Clarify that built commands which + have not been executed yet will be executed before find quits, + even with -quit. Also clarify the difference between -prune and + -quit. + +2007-08-20 Paul Eggert <eggert@cs.ucla.edu> + and Eric Blake <ebb9@byu.net> + + Improve translation of xstrtol messages. + * import-gnulib.config (destdir): Upgrade gnulib to 2007-08-11. + * locate/locate.c (dolocate): Adjust to API change of xstrtol + gnulib module. + * po/POTFILES.in: Likewise. + * NEWS: Document the enhancement. + +2007-08-21 Eric Blake <ebb9@byu.net> + + Fix for Savannah bug #20273, find -ok with seekable stdin. + * find/find.c (main): Use close_stdin, not close_stdout. + * import-gnulib.config (gnulib_version): Pick up yesno tests. + * NEWS: Document the change. + * build-aux/.cvsignore: Ignore compile. + +2007-08-22 Eric Blake <ebb9@byu.net> + + Fix Savannah bug #20871. + * find/find.c (main): Remove bogus assertion. + * NEWS: Document the fix. + + Update to recent gnulib addition of idcache.h. + * lib/listfile.c (getuser, getgroup): Use header rather than + declaring things ourself. + * po/POTFILES.in (locate/frcode.c): Add missing file. + +2007-08-22 James Youngman <jay@gnu.org> + + * find/parser.c (parse_path): This is the 'canonical' name once + again. + (parse_wholename): This is not. + (parse_ipath): No longer deprecated. + * NEWS: Mention this. + +2007-08-23 James Youngman <jay@gnu.org> + + * po/nl.po: Updated from Translation Project + + * find/parser.c (check_path_safety): Assume the path is safe is + $PATH is not set. This avoids a segfault in that situation + and thus fixes Savannah bug #20834. + +2007-08-23 Eric Blake <ebb9@byu.net> + + Pick up gnulib change to getline module. + * import-gnulib.config (gnulib_version): Bump date. + * locate/bigram.c: Use <stdio.h>, not getline.h. + * locate/code.c: Likewise. + * locate/frcode.c: Likewise. + * locate/locate.c: Likewise. + + * po/ChangeLog: Delete, merge into this file. + +2007-09-08 James Youngman <jay@gnu.org> + + Better documentation on $PATH security checks. + * doc/find.texi (Single File): Better explanation of what makes + certain values of $PATH insecure. This fixes Savannah bug + #20951. + * find/find.1 (-execdir): Likewise. + + Document interaction of -depth/-delete/-prune. + * doc/find.texi (Directories): Mention that "-prune ... -delete" + will not do what you want and will cause the deletion of more + files than you probably intended. + (Delete Files): Likewise, suggest using "-depth" when testing + command lines you plan to eventually add "-delete" to. + (Cleaning Up): Add -depth explicitly to an example which uses + -delete. + * find/find.1 (-depth): Mention that -delete also implies -depth. + (-delete): Warn against putting -delete first. + (-prune): Also warn against -prune ... -delete. + NEWS: Mention these changes. + +2007-11-11 James Youngman <jay@gnu.org> + + + * configure.ac: Prepared for release of findutils-4.3.9. + * NEWS: Likewise. + + * po/POTFILES.in: Use gnulib/lib/getdate.y rather than + gnulib/lib/getdate.c, because the former is the source file, and + because without this change the update-po target of po/Makefile + fails. + + * import-gnulib.config (gnulib_version): Move to gnulib + 2007-11-10. + + * po/hu.po, po/nl.po: Updated from Translation Project. + +2007-11-13 James Youngman <jay@gnu.org> + + * NEWS, configure.ac: Prepare for the release of findutils-4.3.10. + + * import-gnulib.sh (usage): If the existing CVS working tree for + gnulib in the source tree does not yet point at the + git-cvs-pserver repository, move the old gnulib working tree out + of the way and do a fresh checkout. This fixes Savannah bug + #21568. + +2007-11-22 James Youngman <jay@gnu.org> + + POSIXLY_CORRECT turns off warnings. + * find/defs.h (struct options): Added member posixly_correct. + This is set when the POSIXLY_CORRECT environment variable is set. + * find/util.c (set_option_defaults): Set options.posixly_correct + if the POSIXLY_CORRECT environment variable is set. + (set_option_defaults): Turn off warnings when POSIXLY_CORRECT is + in force. + * find/find.1: Document this. + (Environment Variables): Likewise. + (Warning Messages): Likewise. + + Non-POSIX compliant arguments to -perm generate an error when + POSIXLY_CORRECT is set. + * find/parser.c (parse_table): Indicate which primaries are + defined by POSIX. + (non_posix_mode): New function; issues an error message when a + non-POSIX-compliant argument to -perm is used (and POSIXLY_CORRECT + is in force). + (parse_perm): Call non_posix_mode when a non-POSIX-compliant mode + argument is seen. + * find/testsuite/find.gnu/posix-perminvalid.exp: New file; tests + invalid arguments to -perm. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add + posix-perminvalid.exp. + * find/find.1: Document this. + * doc/find.texi (Mode Bits): Likewise + (Environment Variables): Likewise + + + * xargs/xargs.1: Options should be bold, not italic; filenames + should also be italic. OPTIONS should be a section, not a + subsection. In the description of --max-lines, "max-args" was + corrected to "max-lines". Turn off hyphenation in the SYNOPSIS + section. This fixes Savannah bug #21270. + +2007-11-24 James Youngman <jay@gnu.org> + + * doc/find.texi (Mode Bits): Correct the warning about the change + in behaviour of -perm /000 to indicate that the change has + happened now. This fixes Savannah bug #21628. + * NEWS: Mention this. + +2007-11-25 James Youngman <jay@gnu.org> + + * Makefile.am (jy-regex-fix): Comment that the regex.c fix needs + to stay until we no longer support Automate-1.9. + + * doc/perm.texi (Mode Structure): Fix setgid/setuid typo. + +2007-11-26 James Youngman <jay@gnu.org> + + Fix Savannah bug #20970, handling of trailing slashes with -name. + * find/pred.c (pred_name_common): Strip trailing slashes from the + pathname before applying fnmatch() to it. This fixes Savannah bug + #20970. + * find/testsuite/find.posix/nameslash.exp: Test case for bug #20970. + * find/testsuite/find.posix/nameslash.xo: Expected output file for + same. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added nameslash.exp. + (EXTRA_DIST_XO): Added nameslash.xo. + + Fix Savannah bug #21634, No copy of FDL1.2 included in source + code. + * doc/find.texi: Change license to the GNU Free Documentation + License 1.2. + (GNU Free Documentation License): Include fdl.texi + * doc/find-maint.texi (GNU Free Documentation License): Include a + copy of the FDL (it was already under this license). + * doc/Makefile.am (find_maint_TEXINFOS): Include fdl.texi + (find_TEXINFOS): Include fdl.texi + * import-gnulib.config (modules): Include gpl-3.0 and fdl. + + * doc/perm.texi: Added copyright license, following the license of + the original source document (perm.texi from coreutils). + +2007-11-27 James Youngman <jay@gnu.org> + + * find/pred.c (pred_prune): Always return true. This fixes + Savannah bug #20803. + * doc/find.texi (Directories): Document the change to -prune. + * find/find.1: Document the change. + * NEWS: Mention the fix. + +2007-11-29 James Youngman <jay@gnu.org> + + Support the generation of regexprops-generic.texi. + * lib/regextype.h (get_regex_type_context): Used to indicate if a + particular type of regular expression is of interest for + regexprops.texi (which is findutils-specific) or + regexprops-generic.texi (which is not). The "context" is simply + a flag set in a word. + * lib/regextype.c (get_regex_type_context): Implement this. + (regex_map): Assign a context to each regular expression type. + * lib/regexprops.c: Use the context information from regextype.c + to decide which regular expression types to docuemnt in the + output. The selection is indicated on the command line; "generic" + and "findutils" are supported. + (copying): New function, which emits a copyright header into the + output. + (comment): New function for emitting a comment. + (ignore): New function which returns nonzero when the indicated + type of regular expression is not of interest for this version of + the document. + (menu): Miss out the non-interesteing regex types. + (get_next): Returns the regex type name for the "next" pointer, + taking into account which regex types are ignored. + (describe_all): Take into account which regex types are ignored, + and emit a copying header also. Include a comment indicating + which "context" was of interest when generating the output. + * doc/Makefile.am: Add regexprops-generic.texi. Generate this + file from regexprops.c. + + Check gnulib out with native git, rather than git-cvspserver. + This fixes Savannah bug #21568, for the second time. + * import-gnulib.config (gnulib_version): Switch to using a git + commit id and native git, since git-cvspserver silently fails to + support "cvs update -D". + * import-gnulib.sh (do_checkout): Check gnulib out with git rather + than CVS. + (main): Require 'git' to be available. + (move_cvsdir): Remove any pre-existing gnulib-cvs directory. + * doc/find-maint.texi (Using the GNU Portability Library): Desribe + how we now obtain gnulib. Update the instructions on how we patch + gnulib. + * .gitignore: Ignore gnulib-git, not gnulib-cvs + * .cvsignore: Ditto + * Makefile.am (findutils-check-smells): Change from gnulib-cvs to + gnulib-git. + * README-CVS: Mention the extra dependency on git. + * NEWS: Mention this change. + + Add test case for Savannah bug #20803 (-prune return value). + * find/testsuite/find.posix/prune-result.exp: New test for + Savannah bug #20803. + * find/testsuite/find.posix/prune-result.xo: Expected otuput for + new test prune-result.exp. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added + find.posix/prune-result.exp + (EXTRA_DIST_XO): Added find.posix/prune-result.xo + +2007-11-30 James Youngman <jay@gnu.org> + + Fix Savannah bug #20865 (-prune -delete without an explicit + -depth is now an error). + * find/parser.c (check_option_combinations): Diagnose the + situation where -delete and -prune are both used, because -delete + turns on -depth and -depth makes -prune do nothing. + * find/tree.c (build_expression_tree): call + check_option_combinations(). + * find/defs.h (struct options): Add new boolean field + explicit_depth. + Also declare check_option_combinations. + * find/util.c (set_option_defaults): Initialise explicit_depth. + * NEWS: Mention this fix. + +2007-12-02 James Youngman <jay@gnu.org> + + Fix Savannah bug #20802, find -delete anomalies + * find/pred.c (pred_delete): Set find's exit status to nonzero if + -delete fails. + * find/find.1 (-delete): Document this. + * doc/find.texi (Delete Files): Document this. + * NEWS: Mention the fix. + +2007-12-04 James Youngman <jay@gnu.org> + + Fix Savannah bug #15384, find misbehaves when parent directory is + not readable. + * find/testsuite/find.posix/parent.exp: New test + * find/testsuite/find.posix/parent.xo: New test + * find/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO): + Added parent.exp, parent.xo. + * find/find.c (safely_chdir): If safely_chdir_nofollow fails with + SafeChdirFailDestUnreadable, fall back on safely_chdir_lstat. + + * find/find.1: Formatting fixes; options should be in bold. + +2007-12-08 James Youngman <jay@gnu.org> + + * xargs/xargs.1: Added examples on stdin handling and more + efficient core file deletion. + * NEWS: Mention this. + + * doc/.cvsignore: Ignore regexprops-generic.texi. + * doc/.gitignore: ditto + +2007-12-09 James Youngman <jay@gnu.org> + + * doc/perm.texi: Updated from the upstream source. + + * po/nl.po, po/pt.po: Updated from the Translation Project. + +2007-12-13 Eric Blake <ebb9@byu.net> + + Allow bootstrapping with autoconf 2.61a. + * configure.ac (AC_AIX, AC_ISC_POSIX): Delete, now that gnulib + takes care of this. + (jy_AC_TYPE_INTMAX_T): Delete, now that gnulib stdint module takes + care of this. + +2007-12-19 James Youngman <jay@gnu.org> + + * po/nl.po: Updated Dutch translation from the Translation project. + * po/pl.po: Likewise for the Polish translation. + * po/sv.po: Likewise for the Swedish translation. + * po/vi.po: Likewise for the Vietnamese translation. + +2007-12-19 Benno Schulenberg <coordinator@translationproject.org> (tiny change) + + * find/find.1: Corrected two typos. + +2007-12-19 James Youngman <jay@gnu.org> + + * find/find.c (ngettext): Introduce a new macro to help with + internationalising plurals. Use it with positional parameters in + order to allow better translations of format strings. + * find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c, + find/tree.c, lib/regextype.c, locate/locate.c, xargs/xargs.c: Likewise. + +2007-12-20 James Youngman <jay@gnu.org> + + * configure.ac: Advance the version number, as we are moving on + from 4.3.12. + * NEWS: Likewise + +2007-12-20 Clytie Siddall <clytie@riverland.net.au> (tiny change) + + * find/find.c (wd_sanity_check): Corrected typo in the format + string for an error message, which might cause a crash in + "oldfind" if a directory we moved into turned out to be a symbolic + link that moved while we were trying to change directory. + +2007-12-20 Jakub Bogusz <qboosh@pld-linux.org> (tiny change) + + * xargs/xargs.c (parse_num): Corrected typo in format string + message. + +2007-12-20 James Youngman <jay@gnu.org> + + * find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c, + find/tree.c, lib/regextype.c, locate/locate.c, xargs/xargs.c, + find.c: Backed out positional paremeter change, as the use of + positional parameters was over-complex and unnecessary. We'll + re-apply the pluralisation support change soon, but without the + positional parameters. + +2008-01-07 James Youngman <jay@gnu.org> + + * xargs/xargs.c: (main): Standardise on "Warning" instead of + "warning" in messages. + + * xargs/xargs.c: (add_proc): Use x2nrealloc to extend the pids + array, rather than doubling the size of the buffer (since the old + aproach was vulnerable to overflow). + + Reap all available child processes before every fork. This fixes + Savannah bug #21960. + * xargs/xargs.c: (proc_max): since this is a non-negative + quantity, make it unsigned. + (procs_executing): Likewise. + (pids_alloc): Likewise (using size_t). + (procs_executed): In order to prevent possible overflow, make this + a boolean, not a count. We only cared if the previous counter was + zero or not, anwyay. + (add_proc): Set procs_executed to true rather than incrementing it. + (wait_for_proc): When called, always reap all available children. + Add an extra argument which is the minimum number of children we + must reap before returning. + (wait_for_proc_all): Pass the new extra argument. + (xargs_do_exec): Call wait_for_proc() to reap all available + children before forking a new child. Modify other calls to + wait_for_proc to pass the new extra argument. + * NEWS: Mention this change. + +2008-02-09 James Youngman <jay@gnu.org> + + * doc/find.texi (xargs options): Moved documentation of xargs' + options into this new section. + (Invoking the shell from xargs): New section providing examples + about "xargs sh -c '...'". + + * xargs/xargs.1: Indicate that the "sh -c" trick with xargs + achieves the same thing as BSD's "xargs -o", but in a more + flexible way. + + * locate/updatedb.sh: Actually rename the old database to the new + one atomically, instead of just claiming the rename is atomic in a + comment :) This fixes Savannah bug #22057. + + * find/find.c (ngettext): Introduce a new macro to help with + internationalising plurals. Use it to allow better + translations of format strings. + * locate/locate.c: Likewise. + +2008-02-12 James Youngman <jay@gnu.org> + + Updated translations: German, Irish, Dutch, Polish, Vietnamese. + * po/de.po, po/ga.po, po/nl.po, po/pl.po, po/vi.po: Updated from + the Translation Project. + + Fix Savannah bug #22056, -Xtime tests are off by one second. + * find/defs.h (struct options): Change cur_day_start from time_t + to strct timespec. + * find/util.c (set_option_defaults): Likewise. + * find/parser.c (get_relative_timestamp): Change the origin + argument from time_t to struct timespec. + (estimate_timestamp_success_rate): Ignore the nanoseconds field of + the timestamp when estimating the probable success rate. + (parse_daystart): Handle the nanoseconds field too. + (do_parse_xmin): The origin argument to get_relative_timestamp() + is of type struct timespec, not time_t. + (parse_used): Likewise. + (parse_time): Likewise. + * find/pred.c (pred_timewindow): in the COMP_EQ case, accept times + exactly at the end of the window and do not accept times exactly + at the start (reversing the previous treatment of the bounds). + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added test for + -mtime 0; find.posix/mtime0.{exp,xo}. + * NEWS: mention this bugfix. + +2008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change) + + * import-gnulib.config: Add progname. + + * lib/Makefile.am (LDADD): Use @LIBINTL@ instead of @INTLLIBS@. + + * xargs/xargs.1: Fix a couple of typos. + +2008-02-15 James Youngman <jay@gnu.org> + + * README-CVS: Explain how to update the translations from the + translation project. + + * NEWS, configure.ac: Change release number to 4.3.14-CVS. + +2008-02-15 Eric Blake <ebb9@byu.net> + + Avoid compiler warnings. + * find/pred.c (pred_name_common): Remove unused variable. + * locate/locate.c (print_stats): Avoid undefined format string. + +2008-03-08 Jim Meyering <meyering@redhat.com> + + Fix doc typos. + * doc/find-maint.texi (Security): s/ongest/longest/ + (Making Releases): s/the the/the/ + + Avoid link failure with gcc -fno-common. + * find.c (program_name, starting_desc): Declare "extern". + +2008-03-09 James Youngman <jay@gnu.org> + + Fix (documentation) bug #20873, / and . in file names for -path. + * doc/find.texi (Full Name Patterns): Mention that * in the "find + -path" pattern will match both / and leading dots. + +2008-03-10 Jim Meyering <meyering@redhat.com> + + Rename local and member "dirfd" to avoid shadowing the function. + This avoids many warnings from gcc -Wshadow: + * lib/buildcmd.h (struct buildcmd_state) [dir_fd]: Rename member + from dirfd. + * find/defs.h (struct exec_val) [dir_fd]: Likewise. + Rename parameter in prototype. + * find/ftsfind.c (inside_dir): Rename parameter: s/dirfd/dir_fd/ + * find/parser.c (new_insert_exec_ok, insert_exec_ok): Likewise. + * find/pred.c (new_impl_pred_exec, prep_child_for_exec, launch): + s/dirfd/dir_fd/ + * find/util.c (do_complete_pending_execdirs): Likewise. + (complete_pending_execdirs): Likewise + * lib/buildcmd.c (bc_init_state, bc_clear_args): Likewise. + * lib/dircallback.c (run_in_dir): Likewise. + * lib/dircallback.h (DIRCALLBACK_H): Likewise. + * lib/listfile.c (list_file, get_link_name_at): Likewise. + * lib/listfile.h (LISTFILE_H): Likewise. + + Avoid link failure with -fno-common. + * locate/code.c (program_name): Declare "extern". + +2008-03-10 Eric Blake <ebb9@byu.net> + + Don't truncate printed ino values. Fixes Savannah bug #15472. + * find/find.c (wd_sanity_check): Use PRIuMAX for platforms with + 64-bit ino_t. + * NEWS: Document this. + +2008-03-10 Justin Pryzby <justinpryzby@users.sourceforge.net> (tiny change) + + * doc/find.texi: Various typo corrections. + +2008-03-16 James Youngman <jay@gnu.org> + + Update gnulib. + * import-gnulib.config (gnulib_version): Update to a newer version + of gnulib. + + Find optimises at -O2 by default. + * find/util.c (set_option_defaults): Use a default optimisation + level of 2 rather than 0. + * NEWS: Mention this change. + + Begin work on findutils-4.5.x. + * configure.ac: We're now working on the 4.5.x release series, so + change the version number. + * NEWS: Likewise. + +2008-03-21 James Youngman <jay@gnu.org> + + * find/testsuite/find.gnu/xtype-symlink.exp: Removed unnecessary + test code which created a insecure tempfile. + +2008-04-25 Eric Blake <ebb9@byu.net> + + Support cygwin 1.7.0. + * find/parser.c (parse_newerXY) + [HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC]: Add support for another + form of birthtime. + * import-gnulib.config (gnulib_version): Update to pick up change + necessary for cygwin fstatat. + +2008-05-18 James Youngman <jay@gnu.org> + + Update gnulib. + * import-gnulib.config (gnulib_version): Update to current head + version of gnulib. + + Document effect of gnulib update, mainly on yesno(). + * doc/find.texi (Unusual Characters in File Names): Explain that + the LC_CTYPE variable affects which characters are considered to + be printable by -printf %p, -print and -fprint. + (Querying): Explain in more detail how environment variables + affect the interpretation of the response to -ok and -okdir. + (Regular Expressions): Indicate that the locale configuration + affects the interpretation of regular expressions. + (Environment Variables): Describe how LC_COLLATE and LC_CTYPE + affect the interpretation of regular expressions. Indicate that + LC_MESSAGES affects the interpretation of the response to -ok. + * find/find.1 (-ok): Describe the effect of POSIXLY_CORRECT, + LC_CTYPE and LC_COLLATE. + (-okdir): Likewise. + (UNUSUAL FILENAMES): Describe how LC_CTYPE affects -printf %p, + -print, -fprint. + (STANDARDS CONFORMANCE): -ok and -okdir now obey the system's + definition of yes/no if POSIXLY_CORRECT is set. In any case, + LC_CTYPE and LC_COLLATE may have some effect. Point out that + the setting of LC_MESSAGES deternmines what pattern is used to + interpret the user's response to -ok/-okdir. + * find/parser.c: Remove definition of ISUPPER, which we no longer + need. + * NEWS: mention these changes. + +2008-05-28 James Youngman <jay@gnu.org> + + Bugfix to the code that was previously supposed to fix bug #22662 + in 4.5.0. + * find/pred.c (scan_for_digit_differences): Remember that wesaw + the first differing digit and also get the order of the + subtractionoperands right. + (do_time_format): Off by one error on checking for a nondigit + after the sequence of changed digits. + * NEWS: Mention this change. + +2008-06-19 James Youngman <jay@gnu.org> + + * po/lt.po: New Lithuanian translation. + * NEWS: Mention this change. + * configure.ac: Add "lt" to ALL_LINGUAS. + +2008-06-19 Stepan Kasal <skasal@redhat.com> + + * doc/find.texi (Cleaning Up): Move the note about -depth up. + +2008-06-19 James Youngman <jay@gnu.org> + + * po/zh_CN.po: Updated the Chinese (simplified) translation. + * NEWS: Mention this change. + +2008-06-19 Per Starbäck <starback@stp.lingfil.uu.se> (tiny change) + + * doc/find.texi (Unusual characters in filenames): Directory + separator is the slash, not the backslash. + +2008-06-20 RB <aoz.syn@gmail.com> + + * doc/find.texi (Finding the Shallowest Instance): Add worked + example explaining how to efficiently locate the shallowest + instances of '.svn' or 'CVS' in a forest of project trees. + * find/find.1 (EXAMPLES): Add the same example here (with slightly + briefer wording). + +2008-06-21 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Updated to current HEAD + gnulib. + + Fix Savannah bug #23663, crash in some locales for %AX. + * find/pred.c (do_time_format): Fix off-by-one error in handling + of the buffer used to print timestamps. This caused a crash in + some locales when handling the %AX format specifier. + * NEWS: Mention this bugfix. + +2008-06-28 James Youngman <jay@gnu.org> + + Fix savannah bug #23070 (find.1 needs update for -perm /000) + * find/find.1 (-perm /mode): The all-bits-zero behaviour has + already changed. + * NEWS: Mention the fix. + +2008-08-04 James Youngman <jay@gnu.org> + + * find/find.1: correct typo seach->seach (reported by Bobby + R. Ward). + * locate/updatedb.1: correct typo Any -> any (reported by Reuben + Thomas). + +2008-08-31 James Youngman <jay@gnu.org> + + New Czech translation. + * po/cs.po: New Czech translation. + * configure.ac: Added cs (Czech) to ALL_LINGUAS. + + Fix Savannah bug #24169 (-neweraa without following arg coredumps). + * find/parser.c (parse_newerXY): Issue a fatal error message if + there is no following argument. + * find/testsuite/find.gnu/sv-bug-24169.exp: Test case for this + bug. + * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Also distribute + this new test file. + * NEWS: Mention this change. + +2008-09-07 James Youngman <jay@gnu.org> + + Fix bug #23996 (integer overflow when parsing "-used 3"). + * find/parser.c (get_relative_timestamp): Check for overflow after + the fact by comparing the relative sizes of the result and the + operands. This prevents an incorrect diagnosis of overflow when + the resulting tv_sec is correctly negative (as is normally the + case for -used). + +2008-11-08 Jim Meyering <meyering@redhat.com> + + * README-CVS: tiny typo fix (s/fileutils/findutils/). + +2008-11-08 James Youngman <jay@gnu.org> + + * import-gnulib.config (gnulib_version): Update version of gnulib, + mainly in order to pull in Jim Meyering's efficiency improvements + to fts. See http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=2f2978ede97205c49d3e568ccffa5a04fb53326b + * lib/dircallback.c: gnulib's lstat.h is now gone, instead it + provides <sys/stat.h> where that is needed. + +2008-11-30 Jim Meyering <meyering@redhat.com> + + Pass file type information in dirent.d_type from fts to find. + * find/ftsfind.c (consider_visiting): When fts provides usable + dirent.d_type information, and the only stat information required + by find's predicates is the file-type information normally found + in stat.st_mode (that is, not the permissions information), skip + the now-redundant stat calls. This change is useful only with the + very latest version of fts.c from gnulib. Requires gnulib version + d4b129b8e5f8a8d1198020fd6fc79310d305936c or later. + * find/ftsfind.c (find): Set state.have_type if fts returned type + information. + +2008-12-01 Geoff Gole <geoffgole@gmail.com> + + * xargs/xargs.1 (STANDARDS CONFORMANCE): Fix typo. + +2008-12-01 James Youngman <jay@gnu.org> + + * po/fr.po: Updated French translation. + + * po/id.po: Updated Indonesian translation. + +2008-12-21 James Youngman <jay@gnu.org> + + Fix Savannah bug #25144: Misleading message for find -user unknown. + * find/parser.c (parse_user): If there is no known group for the + specified user (and it does not appear to be a uid), issue a + fatal error message instead of returning false, because the error + message that results from a return of false is "invalid argument", + which is misleading in this case. Similarly for a missing or an + empty argument. + +2008-12-23 James Youngman <jay@gnu.org> + + Fix Savannah bug #25154: Failure to compile with GCC-2.95.4 + * find/parser.c (do_parse_xmin): Move declaration of struct + timespec origin before the statements; declarations after + statements are a GCC extension we were accidentally relying on. + +2008-12-26 Jim Meyering <meyering@redhat.com> + + find: avoid using undefined statbuf + * /ftsfind.c (consider_visiting): Use local variable, mode, + rather than possibly undefined statbuf.st_mode. + +2009-01-17 Thien-Thi Nguyen <ttn@gnuvola.org> + + find: Fix -regexptype parse specification bug: declare as POSOPT. + * find/parser.c (parse_table): Parse -regextype as POSOPT. + +1987-02-21 Eric B. Decker <cire@soe.ucsc.edu> + + * defs.h: added global convert_glob for name + + ----- + + Copyright (C) 1987, 1990, 1991, 1992, 1993, 1994, 1996, 1997, + 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without + modification, are permitted provided the copyright notice + and this notice are preserved. |