packaging: remove old options to find hidden files
[platform/upstream/findutils.git] / ChangeLog
1 2014-07-19  James Youngman  <jay@gnu.org>
2
3         Release findutils-4.5.14.
4         * configure.ac: Update version number to 4.5.14.
5         * NEWS: Likewise, and add today's date.
6         * po/*: Update with 'make dist'.
7
8         Standardize on "initialize".
9         * find/exec.c (initialise_wd_for_exec): rename to
10         initialize_wd_for_exec, since "initialize" is the preferred form
11         even in UK spelling (the OED says "initialise" is a variant).
12         Update callers (it's a static function).  Update spelling in
13         comments.
14         * find/find.c (main): Fix missing "to" in error message and update
15         "initialise" to "initialize".  Update comment too.
16         * find/ftsfind.c (main): Update spelling in error message.
17         * lib/listfile.c (print_name_with_quoting): spelling change in
18         comment.
19         * find/tree.c (init_pred_perf): Likewise.
20         * lib/extendbuf.c (extendbuf): Likewise.
21         * lib/splitstring.h: Likewise.
22         * find/print.c (format_date): Likewise.
23         * doc/find-maint.texi (Tools): Update spelling.
24
25         Bug #42793: mention the bugfix in NEWS.
26         * NEWS: mention the bugfix.
27
28         Fix bug #42793: "Failed to write output" with -ls.
29         * lib/listfile.c (print_name_with_quoting): Avoid using the
30         variable fprintf_result before it is initialised.  I hope this
31         fixes Savannah bug #42793.
32
33         Update the version number following the recent release.
34         * configure.ac: Move on from 4.5.13.
35         * NEWS: Move on from 4.5.13.
36
37 2014-07-16  James Youngman  <jay@gnu.org>
38
39         Prepare for release of 4.5.13.
40         * configure.ac: Change the version number to 4.5.13.
41         * NEWS: Mention some documentation bug fixes which have been
42         applied (ChangeLog entries already exist for these).  Change the
43         version number of the top section of the NEWS file.
44
45 2014-05-31  James Youngman  <jay@gnu.org>
46
47         Enable parallel tests.
48         * find/testsuite/Makefile.am (AUTOMAKE_OPTIONS): Enable
49         parallel-tests.  This will only include tests known directly via
50         $(TESTS), not DejaGnu tests.
51
52         Check there are no duplicate configuration entries for test files.
53         * find/testsuite/Makefile.am (EXTRA_DIST_XO): Remove duplicate items.
54         (EXTRA_DIST_EXP): Likewise.
55         (checklists): Run with the other checks, using check-local.  Don't
56         echo the full command, because it will make the summary of the
57         Automake-driven tests scroll offscreen.
58         (TEST_EXTENSIONS): Add .sh and .py.
59
60         Routinely check .xo and .exp test file lists in a clearer way.
61         * find/testsuite/checklists.py: Tiny program for checking that the
62         correct lists of .xo and .exp files exist in the Makefile.am file.
63         * Makefile.am (checklists): Update target to use the new program.
64         Make this target phony.
65
66 2014-05-25  Eric S. Raymond  <esr@thyrsus.com>
67
68         Fix errant backslash in find manpage.
69         * find/find.1 (UNUSUAL FILENAMES): Fix errant backslash.
70
71 2014-05-12  James Youngman  <jay@gnu.org>
72
73         Update German translation.
74         * po/de.po: Update German translation from the Translation
75         Project.
76
77         Several updates and clarifications to README-hacking.
78         * README-hacking: Explain that tool-versions.txt is not checked
79         into git.  The repository has grown from 14MB to 16MB.  Gnulib is
80         now a submodule and the directory we keep it in has changed.
81         Remove the suggestion to rsync the translations from the
82         translation project, since the files that fetches seem to be out
83         of date.  Move the instruction to update ChangeLog to a more
84         prominent place.  Mention that there is an electronic process for
85         assignments in some locations.  Update the copyright year.
86
87 2014-05-11  James Youngman  <jay@gnu.org>
88
89         * gnulib: Update submodule to current version at origin/master.
90
91         Fix inadequte quoting in AC_ARG_ENABLE usage.
92         * configure.ac: Quote second argument of AC_ARG_ENABLE.
93
94 2014-01-14  James Youngman  <jay@gnu.org>
95
96         Fix typo "ouptut".
97         * locate/locate.1 (OPTIONS): fix typo "ouptut" (from an anonymous
98         Savannah bug report #40804).
99
100 2014-01-12  James Youngman  <jay@gnu.org>
101
102         Add source files to po/POTFILES.in.
103         * po/POTFILES.in: Add some source file names which were missing.
104
105 2014-01-12  Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> (tiny change)
106
107         * po/POTFILES.in: mark strings from gnulib for translation.
108
109 2014-01-05  James Youngman  <jay@gnu.org>
110
111         Updated various translations from the Translation Project.
112         * po/ru.po: Updated Russian translation from the Translation
113         Project.
114         * po/fr.po: Updated French translation.
115         * po/pt_BR.po: Updated Brazilian Portuguese translation.
116         * po/it.po: Updated Italian translation.
117         * po/sr.po: Updated Serbian translation.
118         * po/eo.po: Updated Esperanto translation.
119         * po/tr.po: Updated Turkish translation.
120         * po/fi.po: Updated Finnish translation.
121         * po/el.po: Updated Greek translation.
122
123         Updated Slovenian translation.
124         * po/sl.po: Updated Slovenian translation from the Translation
125         Project.
126
127 2013-12-08  James Youngman  <jay@gnu.org>
128
129         Bug #35753: check the success/failure of material I/O operations.
130         * lib/listfile.c (list_file): Check the result of fprintf to
131         determine if there was an I/O error on output.  Return false (bool
132         instead of void) if so.
133         (print_name_without_quoting): Likewise.
134         (print_name_with_quoting): Likewise.
135         (print_name): Propagate the result of print_name_without_quoting
136         or print_name_with_quoting (and make all three functions return bool).
137         * find/pred.c (is_ok): Check the result of fprintf to
138         determine if there was an I/O error on output.  Exit fatally if
139         there was a problem (since we cannot expect the user to say "yes"
140         or "no" to a prompt they will not have seen).
141         * xargs/xargs.c (print_args): Check the result of fprintf and
142         fflush to determine if there was an I/O error on output.  Exit
143         fatally for the same reason as above if there is a problem.
144         * NEWS: Mention this bugfix (now that it is fully fixed).
145
146         Fix some signed/unsigned problems.
147         * find/util.c (show_valid_debug_options): change type of array
148         subscript to size_t to avoid signed/unsigned problems.
149         (set_stat_placeholders): Silence unuseful compiler warning about
150         unused parameter.
151         * find/ftsfind.c (show_outstanding_execdirs): change type of array
152         subscript to size_t to avoid signed/unsizned problems.
153
154         Fix format specifier in safe_read error message.
155         * xargs/xargs.c (xargs_do_exec): print size_t values with %zu, not
156         %d (since size_t is not and never can be the same type as int).
157
158         Bug #35753: detect failure of the atexit library function.
159         * find/find.c (main): Issue a fatal error message if atexit fails.
160         * xargs/xargs.c (main): Likewise.
161         * find/ftsfind.c (main): Likewise.
162         * locate/code.c (main): Likewise.
163         * locate/frcode.c (main): Likewise.
164         * locate/locate.c (dolocate): Likewise.
165         * locate/bigram.c (main): Likewise; also include <errno.h>.
166
167 2013-10-27  James Youngman  <jay@gnu.org>
168
169         * THANKS: Add Eric S. Raymond.
170
171 2013-10-27  Eric S. Raymond  <esr@thyrsus.com>
172
173         Add bracket missing from synopsis in locate manpage.
174         * locate/locate.1 (SYNOPSIS): Add missing bracket.
175
176 2013-10-26  James Youngman  <jay@gnu.org>
177
178         Clearly explain the result of -exec/-execdir ... +
179         * doc/find.texi (Single File): Explain that "-exec command ;"
180         returns true of the command exited with a status of 0.
181         (Multiple Files): Explain that "-execdir command +" always returns
182         true.  Likewise for "-exec command +".
183         * find/find.1: similar changes.
184
185 2013-09-24  James Youngman  <jay@gnu.org>
186
187         Fix bug #40094: minor inconsistencies in xargs option descriptions.
188         * xargs/xargs.1: Update the description of -e option to emphasize
189         that the argument must follow the option letter immediately (in
190         other words, that it may not appear in the next program argument).
191         Likewise for the the -i and -l (lower-case L) options.
192         * xargs/xargs.c (usage): Minor consistency improvements to help
193         text.
194
195         Update Vietnamese, Czech and Dutch translations.
196         * po/nl.po: Update Dutch translation.
197         * po/cs.po: Update Czech translation.
198         * po/vi.po: Update Vietnamese translation.
199
200 2013-09-23  James Youngman  <jay@gnu.org>
201
202         Fix bug #39162: -printf reads beyond arguments terminated by \
203         * find/print.c (insert_fprintf): If a \ is found at the end of a
204         format string, issue a warning (and render it as-is).
205         * NEWS: Mention this bugfix.
206
207         Update version number to 4.5.13-git.
208         * configure.ac: Update version number to 4.5.13-git.
209         * NEWS: Likewise.
210
211         Updated Estonian, Polish, Ukrainian translations.
212         * po/et.po: Updated the Estonian translation from the Translation
213         Project.
214         * po/pl.po: Updated the Polish translation.
215         * po/uk.po: Updated the Ukrainian translation.
216         * NEWS: Mention these updates.
217
218 2013-09-22  James Youngman  <jay@gnu.org>
219
220         Release findutils-4.5.12.
221         * configure.ac (AC_INIT): Change version number to 4.5.12.
222         * NEWS: Change version number of most recent release to 4.5.12.
223
224         Issue an error message when fts_read fails. Fixes bug #39324.
225         * find/ftsfind.c (find): when fts_read fails, issue an error
226         message, set the exit status to zero and stop.  Previously the
227         program would just stop (i.e. it failed to distinguish "done" from
228         "failed").
229         * find/find.1 (-exec): explain that on failure, some pending
230         command launches may not happen.  The Texinfo documentation
231         already pointed this out, so that didn't need to be changed.
232         * NEWS: Mention this bugfix.
233
234         Add a bug number for bug #40088.
235         * NEWS: Add a bug number for bug #40088: potential buffer overflow
236         in -execdir and -okdir.  Re-order the bugs listed to be
237         decreasing numerically by ID.
238
239 2013-09-21  James Youngman  <jay@gnu.org>
240
241         find: state that -execdir command is run locally to the matched file.
242         * doc/find.texi (Single File): Correct the description of what the
243         current directory will be when the command specified by -execdir
244         gets run.  This fixes a documentation but reported by Eric
245         Hanchrow.
246         * NEWS: Mention this fix.
247
248 2013-09-21  Bernhard Voelker  <mail@bernhard-voelker.de>
249
250         xargs: wait for process before prompting in interactive mode (-p)
251         * xargs/xargs.c (xargs_do_exec): Move the code for waiting for
252         forked processes up, so that the child process terminates before
253         we prompt for the next command.
254         * NEWS: Mention the fix.
255
256 2013-09-21  Dmitry V. Levin  <ldv@altlinux.org>
257
258         find: fix potential buffer overflow in -execdir and -okdir.
259         * lib/buildcmd.c (bc_push_arg): Take prefix length into account
260         to avoid state->argbuf overflow.
261         * NEWS: Mention this fix.
262
263 2013-09-21  James Youngman  <jay@gnu.org>
264
265         Make sv-34976-execdir-fd-leak.sh test more POSIX-compliant.
266         * find/testsuite/sv-34976-execdir-fd-leak.sh: Avoid using seq;
267         instead, use pre-generated lists of test file names.  Also avoid
268         using file descriptors 0, 1, 2 in the test.
269
270         Fix typo "sturct".
271         * find/exec.c (impl_pred_exec): Typo fix: struct/struct.
272         * ChangeLog (2007-03-28): Likewise.
273
274 2013-09-20  Bernhard Voelker  <mail@bernhard-voelker.de>
275
276         find: fix fd leak with --execdir option (bug#34976)
277         * find/exec.c (impl_pred_exec): Free the working directory if find
278         executes the command in the local dir, i.e. if it has been saved
279         by record_exec_dir().  Re-indent code.
280         * find/testsuite/sv-34976-execdir-fd-leak.sh: Add test.
281         * find/testsuite/Makefile.am (test_shell_progs): Mention the test.
282         * NEWS: Mention the fix.
283
284 2013-09-20  James Youngman  <jay@gnu.org>
285
286         Updated Greek translation.
287         * po/el.po: Updated Greek translation from the Translation
288         Project.
289
290 2013-09-20  Bernhard Voelker  <mail@bernhard-voelker.de>
291
292         xargs: Fix integer overflow in implicit conversion in do_exec.
293         * xargs/xargs.c (xargs_do_exec): Change type of r from int to
294         size_t, since that is the type that safe_read actually returns.
295
296 2013-09-20  James Youngman  <jay@gnu.org>
297
298         Add Bernhard Voelker to AUTHORS.
299         * AUTHORS: Add Bernhard Voelker.
300
301         * configure.ac: Check for prefixed versions of ranlib, too.
302
303 2013-09-20  Benedikt Morbach  <benedikt.morbach@googlemail.com> (tiny change)
304
305         Check for both prefixed and unprefixed versions of "ar".
306         * configure.ac: Look for '${host}-ar' as set by AC_CANONICAL_HOST
307         before looking for the unprefixed 'ar'.  This is useful when
308         cross-compiling when all your binutils are prefixed.
309
310 2013-09-20  James Youngman  <jay@gnu.org>
311
312         Fix compilation error where struct dirent lacks a d_ino member.
313         * find/find.c (NOT_AN_INODE_NUMBER): Add missing identifier which
314         (when missing) caused a compilation error on system where struct
315         dirent lacks a d_ino member.
316
317         Be consistent about what we call the places the search starts.
318         * find/find.1: Consistently describe the paths at which the search
319         begins as "satrting points".
320
321         Refer to the info manual in a clearer and more explicit way.
322         * find/find.1 (SEE ALSO): Explain how to invoke info to read the
323         Texinfo manual.
324         * locate/locate.1 (SEE ALSO): Likewise.
325         * locate/updatedb.1 (SEE ALSO): Likewise.
326         * xargs/xargs.1 (SEE ALSO): Likewise.
327
328 2013-06-02  James Youngman  <jay@gnu.org>
329
330         Add unlinkat moduile.
331         * import-gnulib.config (modules): Add unlinkat module, following
332         bug report from Martin von Gagern.
333
334 2013-04-22  Paul Eggert  <eggert@cs.ucla.edu>
335
336         More removal of support for -perm +MODE.
337         * find/parser.c (parse_perm): Remove no-longer-needed local var
338         and associated code.  Reported by Eric Blake in
339         <http://savannah.gnu.org/bugs/?38474#comment9>.
340
341 2013-04-21  Paul Eggert  <eggert@cs.ucla.edu>
342
343         Remove support for obsolete -perm +MODE syntax.
344         Also, do not reject -perm /MODE merely because of POSIXLY_CORRECT.
345         Problem reported in <https://savannah.gnu.org/bugs/?38474>.
346         * NEWS:
347         * doc/find.texi (Mode Bits): Document this.
348         (Environment Variables): POSIXLY_CORRECT does not affect -perm.
349         * find/parser.c (parse_help): Mention /MODE, not +MODE.
350         (non_posix_mode): Remove.
351         (parse_perm): Remove support for -perm +MODE.
352         Do not reject -perm /MODE merely because POSIXLY_CORRECT is set;
353         POSIXLY_CORRECT is not supposed to be for pedantic checking.
354         * find/find.1 (-perm): describe this change.
355         (HISTORY): update the existing statement about the deprecation of
356         +MODE to explain that support has now been removed.
357
358 2013-04-22  James Youngman  <jay@gnu.org>
359
360         Fix documentation typo.
361         * doc/find.texi (Mode Bits): Fix typo "it set" -> "is set".
362
363 2013-04-20  Paul Eggert  <eggert@cs.ucla.edu>
364
365         doc: fix typos uncovered by texinfo 5.0
366         * doc/find-maint.texi: Fix typos that cause 'make' to fail
367         if texinfo 5.0 is installed.
368
369 2013-04-22  James Youngman  <jay@gnu.org>
370
371         Enable assertions in locate.
372         * locate/locate.c: Don't #define NDEBUG.
373
374 2013-04-21  James Youngman  <jay@gnu.org>
375
376         * find/find.1 (-size): explain the rounding-up semantics more
377         clearly.
378
379         Add example for find -printf.
380         * doc/find.texi (Print File Information): Add an example for "find
381         -printf" suggested by Karl Berry.
382
383 2011-12-31  Karl Berry  <karl@gnu.org>
384
385         Further documentation improvements.
386         * doc/find.texi: use @code for environment variable names, and
387         other improvements.
388
389 2009-08-03  Peter Breitenlohner  <peb@mppmu.mpg.de>
390
391         * locate/locate.c: Simplify handling of slocate databases.
392         Fix the bug assuming second path extends the first one.
393         * locate/testsuite/locate.gnu/slocate.{exp,xo}: New testcase
394         for slocate databse, exposing this bug.
395         * locate/testsuite/Makefile.am: Add new test case.
396
397 2009-08-03  Peter Breitenlohner  <peb@mppmu.mpg.de>
398
399         * locate/locate.c: Enable assertions and fix the off-by-one
400         bugs that prevented this.
401
402 2009-08-03  Peter Breitenlohner  <peb@mppmu.mpg.de>
403
404         * doc/find.texi: Remove duplicate paragraph and fix a typo.
405
406 2013-03-31  James Youngman  <jay@gnu.org>
407
408         Don't use reserved identifiers in macro names; fix other code smells.
409         * build-aux/src-sniff.py (checkers): Check for #define directives
410         which use a macro name which is reserved.
411         (MakefileRegexChecker): New class which performs regex checks on
412         makefiles; this ensures that we don't check Makefile.in if we're
413         going to check Makefile.am anyway.
414         * lib/unused-result.h: Don't use a reserved identifier in the
415         macro name defined as the #include guard.
416         * locate/locatedb.h: Likewise.
417         * Makefile.am (findutils-check-smells): Don't check gnulib code.
418         * import-gnulib.sh (hack_gnulib_tool_output): Move the 'do' of a
419         for loop onto the line following the 'for' (instead of the same
420         line).
421
422 2013-03-29  James Youngman  <jay@gnu.org>
423
424         Document that -0/-d turns off logical end-of-file processing.
425         * doc/find.texi (xargs options): Explain that the logical end of
426         file marker string set with -E is not special if -d or -0 was
427         specified.
428         * xargs/xargs.c (usage): Mention this in the --help output.
429         (read_string): Correct the function header comment to point out
430         that there is no logical end-of-file processing for this case.
431         Also point out that the delimiter may not always be NUL.
432         This documentation update fixes Savannah bug #36652.
433         (main): Emit a warning message if -0/-d is specified and -E was
434         also used.
435         * xargs/testsuite/xargs.gnu/E_-0.exp: Don't compare stderr output,
436         since for this case xargs now emits a warning message.
437         * NEWS: Mention this change.
438
439 2013-03-29  James Youngman  <jay@gnu.org>
440
441         Updated the Galician translation.
442         * gl.po: Updated Galician translation.
443
444 2013-03-26  James Youngman  <jay@gnu.org>
445
446         Updated a number of translations.
447         * cs.po: Updated Czech translation.
448         * et.po: Updated Estonian translation.
449         * fi.po: Updated Finnish translation.
450         * fr.po: Updated French translation.
451         * nl.po: Updated Dutch translation.
452         * pl.po: Updated Polish translation.
453         * ru.po: Updated Russian translation.
454         * uk.po: Updated Ukrainian translation.
455         * vi.po: Updated Vietnamese translation.
456         * zh_CN.po: Updated Chinese (simplified) translation.
457
458 2013-03-26  Kamil Dudka  <kdudka@redhat.com>
459
460         Fix compile-time warnings.
461         * find/defs.h (struct predicate): Add a missing const modifier.
462         * find/find.c (wd_sanity_check): Suppress a warning in #else branch.
463         (process_dir): Remove an unused variables and statements.
464         * find/pred.c (pred_context): Use const modifier in the prototype.
465         * lib/buildcmd.{c,h} (bc_args_exceed_testing_limit): Remove a const
466         modifier causing unnecessary warnings.
467         * xargs/xargs.c (main): Add explicit type-casts.
468
469 2013-03-24  James Youngman  <jay@gnu.org>
470
471         Expand on warning about xargs -P and stdout, including in Info.
472         * xargs/xargs.1: Expand on the warning about sharing stdout for
473         "xargs -P".
474         * doc/find.texi (Controlling Parallelism): Add a suitable warning
475         about sharing resources here, too.
476         * NEWS: Mention that all relevant documentation was updated with
477         this warning.
478
479 2013-03-24  Bernhard Voelker  <mail@bernhard-voelker.de>
480
481         Improve error message for find -type X (X = an unknown file type).
482         * find/parser.c (insert_type): Give a more comprehensible error
483         message when the type letter following -type or -xtype corresponds
484         to a type of file which was unknown on the system which compiled
485         the find binary.
486         * NEWS: Mention this improvement.
487
488         xargs: split usage text to help translators, and clarify it.
489         * xargs/xargs.c (usage):  Define HTL macro to print one help text
490         line (or entry).  Split the option descriptions up by using the
491         above macro.  Refine the messages to adapt to the common way:
492         change the start of each option's description to lower case, do
493         not use periods at the end, use semicolons where needed, indent
494         secondary lines, several other minor improvements.
495         * NEWS: Mention this improvement.
496
497         * xargs/xargs.1: Add note for -P suggesting the use of a locking
498         system to avoid corrupted stdout.
499
500 2013-03-24  James Youngman  <jay@gnu.org>
501
502         Fix Savannah bug #38583: errno-buffer read failed in xargs_do_exec
503         * import-gnulib.config (modules): Import the safe-read module.
504         * xargs/xargs.c (xargs_do_exec): Use safe_read so that the read
505         system-call is retried if we handle a signal (for example
506         SIGUSR[12]) while we are trying to read the errno vlaue from the
507         child process.
508
509         Fix misleading message from import-gnulib.sh; allow .git symlink.
510         * import-gnulib.sh (check_old_gnulib_dir_layout): Really apply the
511         bugfix by Kamil Dudka which eliminates a misleading message of
512         import-gnulib.sh on a fresh repository obtained by 'git clone
513         --recursive', by requiring gnulib/.git to exist but not requiring
514         it to be a directory.
515
516         Bugfix to "make clean": do not delete header files.
517         * lib/Makefile.am (coverage-clean): Remove output files left
518         behind by gcc -fprofile-arcs -ftest-coverage by using $(RM) with a
519         glob pattern rather than a $(libfindtools_a_SOURCES.c=.gcno)
520         Makefile substitution, because the latter caused us to delete
521         header files entirely (their names do not end in .c).  This had
522         meant that it was impossible to compile findutils after "make
523         clean".  Bug report by David Gilbert.
524         * find/Makefile.am (coverage-clean): Likewise.
525         * xargs/Makefile.am (coverage-clean): Likewise.
526         * locate/Makefile.am (coverage-clean): Likewise.
527         * Makefile.am (coverage-clean): Likewise, but also do this in the
528         subdirectories whose Makefile.am files are generated by
529         gnulib-tool.
530
531         Move on from 4.5.11, to 4.5.12-git
532         * NEWS: Add a new section for 4.5.12-git.  Mention the bugfix to
533         find/testsuite/sv-bug-32043.sh.
534         * configure.ac: Update the version number.
535
536         Fix Bash-ism [[ ... ]].
537         * find/testsuite/sv-bug-32043.sh: Change [[ ... ]] to [ ... ]
538         because the first pattern is a Bash-ism.  Bug reported by David
539         Gilbert.
540
541 2013-02-03  Kamil Dudka  <kdudka@redhat.com>
542
543         Avoid using 'INCLUDES =' in automake templates.
544         * find/Makefile.am: Use AM_CPPFLAGS instead of deprecated INCLUDES.
545         * lib/Makefile.am: Likewise.
546         * locate/Makefile.am: Likewise.
547         * xargs/Makefile.am: Likewise.
548
549         Eliminate a misleading message of import-gnulib.sh on a fresh
550         repository obtained by 'git clone --recursive'.
551         * import-gnulib.sh (check_old_gnulib_dir_layout): Do not require
552         ./gnulib/.git to be a directory.
553
554 2013-02-03  James Youngman  <jay@gnu.org>
555
556         Fix Savannah bug #38239, missing variable initialisation in locate
557         * locate/locate.c (cleanup_quote_opts): New atexit function, frees
558         quote_opts which otherwise would leak.
559         (dolocate): Eliminate the redundant boolean variable
560         they_chose_db, whose true/false-ness followed the not-NULL-ness of
561         locate_path.  Rename locate_path to user_selected_locate_path to
562         make this explicit.
563         (dolocate): When we get to the bottom of the loop, don't try to
564         check for a further element in user_selected_locate_path if it is
565         NULL (that is, $LOCATE_PATH was unset and the -d option was not
566         used).
567
568         * po/findutils.pot: Updated template file from the Translation
569         Project
570
571 2013-02-02  James Youngman  <jay@gnu.org>
572
573         Release findutils-4.5.11.
574         * NEWS: update version number from 4.5.11-git to 4.5.11.
575         * configure.ac (AC_INIT): Likewise.
576
577         Reduce needless calls to complete_pending_execdirs.
578         * find/exec.c (impl_pred_exec): Once pushing an argument for
579         -exec{,dir} ... +, Only set state.execdirs_outstanding if
580         there were previously no todo items on ths command line.
581         This avoids spurious calls to complete_pending_execdirs().
582
583 2012-12-19  James Youngman  <jay@gnu.org>
584
585         Make the manual section ordering and menu item ordering consistent.
586         * doc/find.texi (Top): Re-order menu items to be consistent with
587         ordering of sections ('Reference' is moved).
588         (Print File Information): Add missing menu item 'Formatting Flags'
589         and remove that menu item from inside 'Format Directives'.
590         (Formatting Flags): Hence this is a subsection, not a
591         subsubsection.
592
593 2012-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com> (trivial change)
594
595         build: remove redundant AC_SUBST of var INCLUDES
596         * configure.ac: don't call AC_SUBST(INCLUDES).
597
598 2012-12-15  Bernhard Voelker  <mail@bernhard-voelker.de> (trivial change)
599
600         * locate/updatedb.sh (PRUNEFS): Avoid 9P, cifs and nfs4
601         filesystems by default.
602
603 2012-12-15  James Youngman  <jay@gnu.org>
604
605         Tweak updatedb.sh to make diffs easier to read.
606         * locate/updatedb.sh (PRUNEFS): List the default items in
607         alphabetical order to make diffs easier to read.
608         (PRUNEPATHS): likewise.
609
610         Re-generate doc/regexprops.texi.
611         * doc/regexprops.texi: re-generate to describe the changes to
612         gnulib for the regular expression types "awk" (to add character
613         class support), "gnu-awk" (to add range support) and "posix-awk"
614         (also to add range suport).
615         * NEWS: Describe this change.
616
617 2012-11-17  Dmitry V. Levin  <ldv@altlinux.org>
618
619         find: use FTS_VERBATIM
620         * gnulib: update to latest, to get FTS_VERBATIM support.
621         * find/ftsfind.c (ftsoptions): Set the FTS_VERBATIM bit.  This
622         Patch was contributed on 2012-11-18, but was applied with the
623         above regexprops change)
624
625 2012-12-14  James Youngman  <jay@gnu.org>
626
627         Fix bug #37926 (wrong result for oldfind -inum)
628         * find/find.c (D_INO): Define D_INO as a convenience accessor for
629         the inode number in struct dirent; use 0 if there is no d_ino
630         member in struct dirent.
631         (main): Pass the inode number of the top-level directory to
632         process_top_path.
633         (at_top): Add argument inum, the inode number of the file we are
634         looking at.  Pass this to the action function.
635         (do_process_top_dir): Pass the inode number to process_path.
636         (do_process_predicate): Take (but ignore) the inode number
637         argument.
638         (process_path): Add argument inum, the inode number of the file we are
639         looking at.  Populate statbuf.st_ino with this value.  This avoids
640         a stat call in pred_inum if the stat information would not
641         otherwise be used.
642         (process_dir): Pass the inode number to process_path.
643         * import-gnulib.config (modules): Add d-ino.
644         * NEWS: Mention this bugfix.
645
646 2012-11-17  James Youngman  <jay@gnu.org>
647
648         Update the Vietnamese, Ukranian and Croatian translations.
649         * po/vi.po, po/uk.po, po/hr.po: Update the translation files from
650         the translation project.
651
652 2012-09-18  Jim Meyering  <meyering@redhat.com>
653
654         find: fix two time-formatting leaks (bug #37356)
655         * find/print.c (do_time_format): Call xmalloc for static "buf" only
656         the first time.
657         When reallocating buf, be sure to update its buf_size.
658         Also free "altbuf".
659         Reported by Nemo Maelstrom Thorx in http://bugs.debian.org/687358
660         via Andreas Metzler in http://savannah.gnu.org/bugs/?37356
661
662         find: minor tweaks
663         * find/print.c (do_time_format): Use memcpy in place of sprintf.
664         When calling x2nrealloc, use "sizeof *buf" as the element size,
665         rather than "2u".
666
667         build: avoid import-gnulib.sh failure
668         * import-gnulib.config (extra_files): Remove build-aux/missing,
669         since that file has been removed from gnulib.
670
671         build: stop using now-obsolete macro, AM_C_PROTOTYPES
672         * configure.ac: Don't use obsolete AM_C_PROTOTYPES.
673
674 2011-12-30  Karl Berry  <karl@gnu.org>
675
676         Documentation improvements (UK spelling, use of @code).
677         * find.texi (@copying): add 2011, period outside quotes.
678         (thoughout): use UK spelling and " -- " convention.
679         (section names): use @code where needed.
680
681 2011-09-11  Jim Meyering  <meyering@redhat.com>
682
683         Fix a typo in find.texi.
684         * doc/find.texi (Error Messages From find): Fix typo s/an/a/.
685
686 2011-08-20  James Youngman  <jay@gnu.org>
687
688         Describe recent memory savings on very large directories.
689         * NEWS: Describe the recent changes which reduce the amount of
690         heap memory used in processing directories containing very many
691         entries.
692
693         Remove no-longer-used files savedir.[ch].
694         * lib/savedirinfo.c: delete unused file.
695         * lib/savedirinfo.h: delete unused file.
696         * lib/Makefile.am (libfind_a_SOURCES): Remove savedirinfo.c.
697         (EXTRA_DIST): Remove savedirinfo.h.
698
699         Reduce memory consumption of oldfind on large directories.
700         * find/find.c (process_dir): Reduce memory consumption for large
701         directories.  Don't save the whole directory content with
702         xsavedir, instead just loop over the results of readdir.  This
703         means that oldfind will consume one file descriptor per directory
704         level.
705         * find/testsuite/sv-34079.sh: verify that the memory consumption
706         of oldfind is reasonable on large directories.
707
708         Reduce memory consumption of fts.
709         * gnulib: update to latest, mainly to include a bugfix (gnulib
710         commit 47cb657eca1abf2c26c32c8ce03def994a3ee37c) which limits the
711         memory consumed by fts.
712         * find/testsuite/sv-34079.sh: New test, verifying that memory
713         consumption in ftsfind does not grow indefinitely as the size of
714         directories increases.
715         * find/testsuite/Makefile.am (test_shell_progs): Added sv-34079.sh.
716
717 2011-06-29  James Youngman  <jay@gnu.org>
718
719         Fix some constness warnings when dealing with -printf formats.
720         * find/parser.c (collect_arg_nonconst): Rename collect_arg to
721         collect_arg_nonconst and change the collected argument from const
722         char* to char*.
723         (collect_arg): Call collect_arg_nonconst to do the real work.
724         (parse_printf): Call collect_arg_nonconst instead of collect_arg.
725         Change `format' from const char* to char*.
726         (parse_fprintf): Likewise.
727         * find/print.h: Change 'format' from const char* to char*, since
728         actually we edit it in place.
729         * find/print.c (parse_octal_escape): Instead of updating a const
730         char* pointer to indicate how many characters from the input we
731         consumed, update a size_t value.
732         (insert_fprintf): Change function definition to match updated
733         prototype.  Eliminate fmt_inpos.  Introduce a `readpos' offset
734         variable which takes the previous role of fmt_inpos.
735
736 2011-06-28  James Youngman  <jay@gnu.org>
737
738         Refactor insert_fprintf to minimise calls to make_segment.
739         * find/print.c (get_format_flags_length): Factor out of
740         insert_fprintf; computes the length of the format flags for a
741         format specifier (that is everything after the % but before the
742         format control character).
743         (get_format_specifer_length): Also factored out of insert_fprintf;
744         returns the number of format control characters (e.g. 2 for %A@)
745         or 0 for error.
746         (insert_fprintf): Keep fmt_editpos and fmt_inpos more closely in
747         step, instead of initialising fmt_inpos only when we need it (the
748         idea eventually will be to make fmt_inpos the loop control
749         variable).  Call get_format_specifer_length and
750         get_format_flags_length when needed. Reduce the number of
751         different calls to make_segment.  We now have one for each KIND_
752         value plus one for the error case.
753
754 2011-06-27  James Youngman  <jay@gnu.org>
755
756         Factor some of the code out of insert_fprintf.
757         * find/print.c (insert_fprintf): Factor out the handling of
758         eascape codes into new functions parse_escape_char,
759         parse_octal_escape.
760
761 2011-06-25  James Youngman  <jay@gnu.org>
762
763         Separate out the handling of \c.
764         * find/print.c (insert_fprintf): Deal with \c as a special case.
765
766         Remove some redundant continue statements.
767         * find/print.c (insert_fprintf): Remove a pair of redundant
768         'continue' statements.
769
770         Simplify -fprintf %%; handle %% like a regular format specifier.
771         * find/print.c (make_segment): Handle foo%% by simply generating a
772         format string of foo%% (that is, let vfprintf handle the escaped
773         %).
774         (insert_fprintf): Handle %% as KIND_FORMAT instead of KIND_PLAIN.
775         (do_fprintf): Handle %%.
776
777         Clarify variable naming in insert_fprintf.
778         * find/print.c (insert_fprintf): Rename some variables for greater
779         clarity:
780         format is now segstart, since it points to the start of the part
781         of the format string we're next going to pass to make_segment.
782         scan2 is now fmt_inpos (which is a const char*) and is the
783         scanning position beyond segstart which we're reading to locate
784         the end of this segment.
785         scan is now fmt_editpos and is the scanning position at which we
786         are modifying the format string (for example to change \n in the
787         format to the value of the '\n' character).
788
789 2011-06-19  James Youngman  <jay@gnu.org>
790
791         Test find -printf %i.
792         * find/testsuite/test_inode.sh: New test, for find -printf %i.
793         * find/testsuite/Makefile.am (test_shell_progs): Add test_inode.sh.
794
795         Extract common test code into a sourced file.
796         * find/testsuite/binary_locations.sh: New file, extracting common
797         code from the test scripts.
798         * find/testsuite/test_escape_c.sh: Source binary_locations.sh.
799         * find/testsuite/test_escapechars.sh: Source binary_locations.sh.
800         * find/testsuite/Makefile.am (EXTRA_DIST): Distribute
801         binary_locations.sh.
802
803 2011-06-18  James Youngman  <jay@gnu.org>
804
805         Fix some compiler warnings in xargs.
806         * xargs/xargs.c: Remove definition of the unused macro VOID.
807         Include error.h instead of declaring error (incorrectly).
808         Change the type of lineno from int to size_t.
809         (get_char_oct_or_hex_escape): Don't point endp unnecessarily at p,
810         because they have different constness.  There's no need for this,
811         just initialise it to NULL.
812         (main): Make input_file const.   Make the default arglist
813         non-const, to avoid a constness warning.
814         (main): Pass the option name as the argument to error's %s format,
815         as opposed to the whole struct (this was a bug, but since the name
816         member was the first in the struct, there were probably no
817         symptoms).
818         (main): read_args returns an int, but the only negative value it
819         can return is -1.  Once we know that didn't happen, assign the
820         value to a size_t variable to avoid signed/unsigned warnings
821         elsewhere.
822         (xargs_do_exec): Manually inhibit some unused-parameters warnings.
823         (print_args): Use size_t as the type of a loop variable.
824         (wait_for_proc): Since procs_executing is an unsigned long, use a
825         %lu format specifier to print it.
826         (increment_proc_max): Inhibit an unused-parameter warning (the
827         signal number).
828         (decrement_proc_max): Likewise.
829         * lib/buildcmd.h (struct buildcmd_control): Make member
830         replace_pat const.  Change the type of lines_per_exec to unsigned
831         long.
832
833 2011-06-20  James Youngman  <jay@gnu.org>
834
835         Use a consistent include order in header files too.
836         * lib/printquoted.h: Use the preferred header-file inclusion order
837         here too.
838
839         Use a consistent order for header-file inclusion.
840         * find/exec.c: Include config.h, then system headers followed by
841         gnulib headers and last, find-specific headers.
842         * find/find.c: Likewise.
843         * find/finddata.c: Likewise.
844         * find/fstype.c: Likewise.
845         * find/ftsfind.c: Likewise.
846         * find/parser.c: Likewise.
847         * find/pred.c: Likewise.
848         * find/tree.c: Likewise.
849         * find/util.c: Likewise.
850         * lib/buildcmd.c: Likewise.
851         * lib/dircallback.c: Likewise.
852         * lib/extendbuf.c: Likewise.
853         * lib/fdleak.c: Likewise.
854         * lib/findutils-version.c: Likewise.
855         * lib/listfile.c: Likewise.
856         * lib/printquoted.c: Likewise.
857         * lib/qmark.c: Likewise.
858         * lib/regexprops.c: Likewise.
859         * lib/regextype.c: Likewise.
860         * lib/safe-atoi.c: Likewise.
861         * lib/savedirinfo.c: Likewise.
862         * lib/splitstring.c: Likewise.
863         * lib/test_splitstring.c: Likewise.
864         * lib/waitpid.c: Likewise.
865         * locate/bigram.c: Likewise.
866         * locate/code.c: Likewise.
867         * locate/frcode.c: Likewise.
868         * locate/locate.c: Likewise.
869         * locate/word_io.c: Likewise.
870         * xargs/xargs.c: Likewise.
871
872         Take gnulib-tool's advice about which header files to include.
873         * locate/locate.c: Include <regex.h> instead of "regex.h".
874         Include "fnmatch.h" instead of <fnmatch.h> (because we use
875         fnmatch-gnu).  Include "gettext.h".
876         * lib/regexprops.c: Include <regex.h> instead of "regex.h".
877         * find/tree.c: Include "gettext.h".  Include "fnmatch.h" instead
878         of <fnmatch.h> (because we use fnmatch-gnu).
879         * find/parser.c: Include "gettext.h" and <regex.h>.  Include
880         "fnmatch.h" instead of <fnmatch.h> (because we use fnmatch-gnu).
881         * find/pred.c: Likewise.
882         * find/exec.c: Include "gettext.h".
883         * find/find.c: Likewise.
884         * find/fstype.c: Likewise.
885         * find/ftsfind.c: Likewise.
886         * find/print.c: Likewise.
887         * lib/buildcmd.c: Likewise.
888         * lib/fdleak.c: Likewise.
889         * lib/findutils-version.c: Likewise.
890         * lib/regextype.c: Likewise.
891         * lib/safe-atoi.c: Likewise.
892         * find/util.c: Likewise.
893         * locate/bigram.c: Likewise.
894         * locate/code.c: Likewise.
895         * locate/frcode.c: Likewise.
896         * locate/word_io.c: Likewise.
897         * xargs/xargs.c: Likewise.
898         * find/Makefile.am: Add a comment explaining why gnulib-tool
899         advised us to use each library.
900
901 2011-06-19  James Youngman  <jay@gnu.org>
902
903         Update gnulib.
904         * gnulib: update to latest version.
905
906 2011-06-18  James Youngman  <jay@gnu.org>
907
908         Remove test-coverage output files for "make clean".
909         * find/Makefile.am (CLEANFILES): Clean the .gcda and .gcdo files
910         which are produced by running programs that were compile with gcc
911         -fprofile-arcs -ftest-coverage.
912         * lib/Makefile.am (CLEANFILES): Likewise.
913         * locate/Makefile.am (CLEANFILES): Likewise.
914         * xargs/Makefile.am (CLEANFILES): Likewise.
915
916         Move the printing code into print.c.
917         * find/print.c (scan_for_digit_differences): Move to this file
918         from pred.c.
919         (do_time_format): Move to this file from pred.c.
920         (format_date): Likewise.
921         (weekdays): Likewise.
922         (months): Likewise.
923         (ctime_format): Likewise.
924         (file_sparseness): Likewise.
925         (checked_fprintf): Likewise.
926         (checked_print_quoted): Likewise.
927         (checked_fwrite): Likewise.
928         (checked_fflush): Likewise.
929         (HANDLE_TYPE): Likewise.
930         (do_fprintf): Likewise.
931         (pred_fprintf): Likewise.
932         * find/pred.c: Don't include human.h, filemode.h, verify.h or
933         xalloc.h, we don't need them.  Don't define MAX.  Don't declare
934         ctime_format or format_date.  Each of the functions moved into
935         print.c were moved out of this file.
936
937         Reserve format specifiers %(, %{ and %[ for future use.
938         * find/print.c (insert_fprintf): Reject %(, %{ and %[.
939         (make_segment): Remove code which previously supposedly rejected
940         these format specifiers, but in fact did nothing.   Replace with
941         an assertion to document the fact that we do not expect to see
942         these format characters in make_segment.
943         * find/testsuite/find.gnu/printf-reserved.exp: New test case, for
944         %(, %{ and %[, which are all rejected.
945         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
946         find.gnu/printf-reserved.exp.
947         * doc/find.texi (Reserved and Unknown Directives): Document this.
948         * find/find.1: Document this.
949         * NEWS: Mention this change.
950
951         Additional test cases for printf field width, precision and sign.
952         * find/testsuite/find.gnu/printf.exp: Add test cases for left and
953         right string alignment (%-10p), string truncation (%10.6p),
954         explicit signs (%+d), left and right alignment (%10p, %-10p),
955         zero-filling on decimal fields.
956         * find/testsuite/find.gnu/printf.xo: Add expected outputs for the
957         new tests.
958
959         Add a test for find -printf ... %%.
960         * find/testsuite/find.gnu/printf.exp: Also test %%.
961         * find/testsuite/find.gnu/printf.xo: Add expected output for the
962         %% test case.
963
964         Add a test for "find -printf \c".
965         * find/testsuite/Makefile.am (test_shell_progs): Add
966         test_escape_c.sh.
967         * find/testsuite/test_escape_c.sh: New test for "find -printf
968         \c".
969
970         Remove an unnecessary argument from insert_fprintf.
971         * find/print.c (insert_fprintf): Eliminate the 'func' argument,
972         since it is always pref_fprintf.
973         * find/print.h: Adjust the prototype accordingly.
974         * find/parser.c (parse_fprintf): Don't pass the func argument to
975         insert_fprintf.
976         (parse_printf): Likewise.
977
978         Add new test for octal and letter escapes in -printf format.
979         * find/testsuite/test_escapechars.golden: Expected output file.
980         * find/testsuite/Makefile.am (EXTRA_DIST_GOLDEN): New variable;
981         distribute test_escapechars.golden.
982         * find/testsuite/test_escapechars.sh: New test.
983         * find/testsuite/Makefile.am (test_shell_progs): New variable,
984         where we keep the list of shell script tests.  Move existing
985         examples from TESTS and add test_escapechars.sh.
986         * find/testsuite/Makefile.am (TESTS): Refer to test_shell_progs.
987         * cfg.mk: allow trailing blanks and space-tab sequences in
988         find/testsuite/test_escapechars.golden.
989
990 2011-06-17  James Youngman  <jay@gnu.org>
991
992         Split find's printf-related code into a new file.
993         * find/print.h: New file.  Declare insert_fprintf and
994         make_segment.
995         * find/print.c: New file. Move definitions of insert_fprintf and
996         make_segment to here.
997         * find/parser.c: Include "parser.h".  Move declarations of
998         insert_fprintf and make_segment into that file; move the
999         definitions into parser.c.
1000         * find/Makefile.am (libfindtools_a_SOURCES): Add print.c.
1001         (EXTRA_DIST): Add print.h.
1002         * po/POTFILES.in: Add find/print.c.
1003
1004 2011-06-15  James Youngman  <jay@gnu.org>
1005
1006         Fix compiler warnings in lib/regextype.c and find/parser.c.
1007         * lib/regextype.c (tagRegexTypeMap): make the name field const.
1008         * find/parser.c (parse_version): instead of counting features, use
1009         a boolean variable, nofeatures.  This avoids compiler warnings
1010         about overflow.
1011
1012         Adopt the use of the manywarnings module.
1013         * import-gnulib.config (modules): Add manywarnings.
1014         * configure.ac: Invoke gl_MANYWARN_ALL_GCC and
1015         gl_MANYWARN_COMPLEMENT.
1016         * configure.ac: Turn on the compiler warnings only if
1017         --enable-compiler-warnings was specified to configure.
1018
1019 2011-06-14  James Youngman  <jay@gnu.org>
1020
1021         Avoid pointer/integer comparison on value returned by strchr.
1022         * find/parser.c (parse_newerXY): Compare the result of strchr
1023         against NULL rather than 0.
1024
1025         Fix further compiler warnings.
1026         * find/ftsfind.c (show_outstanding_execdirs): Now that
1027         execp->state.cmd_argc is a size_t, we can't print it with %d.  So
1028         print it with PRIuMAX (and include <inttypes.h> to define that).
1029         * find/tree.c (prec_name): change return type to const char*.
1030         (type_name): Likewise.
1031         * find/exec.c (impl_pred_exec): use a separate variable (buf) to
1032         point the memory allocated/freed with malloc/free, so that the
1033         existing variable target can then be const (and so we can assign
1034         pathname to it without a compiler warning).
1035
1036         Eliminate some compiler warnings.
1037         * find/find.c: Remove definition of SAFE_CHDIR, which we don't
1038         use.
1039         * find/defs.h: Remove redundant declaration of launch.
1040         * find/parser.c (parse_false): Cast unused arguments to void.
1041         (parse_print0): Likewise.
1042         (pred_context): Likewise.
1043         (parse_newerXY): Add some parens for slightly greater clarity.
1044         (make_segment): Avoid switch-missing-default-case warning by
1045         turning it into an if statement.
1046         (check_path_safety): Remove unused argument.
1047         (insert_exec_ok): Don't pass the unwanted argument to
1048         check_path_safety.
1049         (get_relative_timestamp): silence compiler warning by adding a
1050         case for the remaining enumeration value rather than using
1051         default.
1052         * find/pred.c (months): the strings can be const char*, rather
1053         than just char*.
1054         (ctime_format): change TIME_BUF_LEN to an integer constant to
1055         avoid signed/unsigned comparison.
1056         (blank_rtrim): Change to new-style function definition(!) and
1057         remove unnecessary parentheses around a return value.
1058         * lib/buildcmd.c: Omit redundant declaration of environ.
1059         * find/tree.c (get_expr): Make static.
1060         (cost_assoc): make the name field const.
1061         (prec_assoc): make the prec_name field const.
1062         (op_assoc): make the type_name field const.
1063         (type_name): turn into an ANSI function definition(!).
1064         (prec_name): Likewise!  Also remove spurious parentheses around
1065         return value.
1066         (prec_name): Remove spurious parentheses around return value.
1067         * lib/buildcmd.h (buildcmd_state): change types of several fields
1068         to size_t: cmd_argc, cmd_argv_alloc, largest_successful_arg_count,
1069         smallest_failed_arg_count.
1070         (buildcmd_control): change types of several fields
1071         to size_t: max_arg_count, initial_argc, lines_per_exec,
1072         args_per_exec.
1073
1074         Assume SIGCHLD and O_NOFOLLOW are defined by gnulib.
1075         * find/find.c: Since gnulib defines O_NOFOLLOW, don't check to see
1076         if the macro is defined.  Check instead to see if it is 0.
1077         (safely_chdir_nofollow): Point this out.
1078         (safely_chdir): Check O_NOFOLLOW for zeroness.
1079         * find/exec.c: Don't #define SIGCHLD.
1080         * xargs/xargs.c: Likewise.
1081
1082 2011-06-14  James Youngman  <jay@gnu.org>
1083
1084         Fix coredump bug introduced in the previous change.
1085         * locate/locate.c (dolocate): Remove declaration of e, which was
1086         replaced by the variable db_name.  Change the last two uses of 'e'
1087         to use 'db_name'.  This bugfix prevents possible coredumps when
1088         issuing error messages about reads from the locate database (or
1089         warnings about byte order for old databases).  This bug had been
1090         introduced in the previous change.
1091
1092 2011-06-13  James Youngman  <jay@gnu.org>
1093
1094         Split strings into fields nondestructively.
1095         * lib/splitstring.c: New file; defines splitstring(), which will
1096         non-destructively locate character-separated fields in a string.
1097         * lib/splitstring.h: New file; declares splitstring.
1098         * lib/test_splitstring.c: New file; unit test for splitstring.c.
1099         * lib/nextelem.c: Delete (obsoleted by splitstring.c).
1100         * lib/nextelem.h: Delete (obsoleted by splitstring.h).
1101         * lib/Makefile.am (libfind_a_SOURCES): Add splitstring.c,
1102         splitstring.c.  Remove nextelem.c, nextelem.h.
1103         (check_PROGRAMS): Add test_splitstring.
1104         (TESTS): Add test_splitstring.
1105         (test_splitstring_SOURCES): Sources for the
1106         test_splitstring unit test.
1107         * locate/locate.c: Include splitstring.h rather than nextelem.h.
1108         (dolocate): Use splitstring rather than next_element.  In places
1109         where we need a nul-terminated string, use strndup() to create it.
1110         Convert some space-tab sequences to regular spacing.
1111         * find/parser.c: Include splitstring.h rather than nextelem.h.
1112         (check_path_safety): Use splitstring rather than next_element.
1113         * import-gnulib.config (modules): Depend on the module strndup.
1114         * cfg.mk: Exempt lib/test_splitstring.c from calling
1115         bindtextdomain or set_program_name.
1116
1117 2011-06-13  James Youngman  <jay@gnu.org>
1118
1119         Fix compilation failure in bigram.c by including <locale.h>.
1120         * locate/bigram.c: Include <locale.h>.
1121
1122 2011-06-12  James Youngman  <jay@gnu.org>
1123
1124         Split exec-related code into a new file, exec.c
1125         * find/exec.c: New file.
1126         (initialise_wd_for_exec): Move out of pred.c
1127         (record_exec_dir): Likewise.
1128         (impl_pred_exec): Likewise.
1129         (prep_child_for_exec): Likewise.
1130         (launch): Likewise.
1131         * find/pred.c: These functions are moved out of this file.
1132         * find/defs.h: impl_pred_exec is no longer static in pred.c, so
1133         add an external declaration for it.  Move the declaration of
1134         launch to here also.
1135         * find/Makefile.am (libfindtools_a_SOURCES): Add exec.c.
1136         * po/POTFILES.in: Add find/exec.c.
1137
1138         Eliminate .x-sc_prohibit_empty_lines_at_EOF and .x-sc_bindtextdomain
1139         * cfg.mk: Move definition of which files we should not check to
1140         exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF, instead
1141         of .x-sc_prohibit_empty_lines_at_EOF.
1142         Move contents of .x-sc_bindtextdomain into
1143         exclude_file_name_regexp--sc_bindtextdomain.
1144         .x-sc_prohibit_empty_lines_at_EOF: Delete.
1145         .x-sc_bindtextdomain: Delete.
1146
1147         Enable sc_makefile_at_at_check; fix problems it identifies.
1148         * lib/Makefile.am: Use $(FINDLIBOBJS) instead of @FINDLIBOBJS@.
1149         * find/Makefile.am (LDADD): Use $(FINDLIBS) instead of @FINDLIBS@.
1150         * locate/Makefile.am (updatedb): Use $(VERSION) and
1151         $(PACKAGE_NAME) instead of @VERSION@ and @PACKAGE_NAME@.
1152         * cfg.mk: remove sc_makefile_at_at_check from local-checks-to-skip
1153
1154 2011-06-12  James Youngman  <jay@gnu.org>
1155
1156         Improve src-sniff.py.
1157
1158         * build-aux/src-sniff.py: Mention that many of these checks would
1159         be better as gnulib syntax checks (since there are more flexible
1160         ways to disable these).
1161         (RegexChecker.__init__): Don't pass a spurious second "self"
1162         argument.
1163         (RegexChecker.Check): Provide a more intelligible message when
1164         complaining about use atof/scanf.
1165         (RegexChecker.Check): Enable the check for HAVE_FCNTL_H.
1166         (RegexChecker.Check): When checking for trailing whitespace, don't
1167         complain about trailing newlines(!)
1168         (RegexChecker.Check): Indicate what the out-of-date address is
1169         when we find one.
1170
1171 2011-06-11  James Youngman  <jay@gnu.org>
1172
1173         Enable the sc_trailing_blank check.
1174         * cfg.mk: Enable sc_trailing_blank check.
1175         (exclude_file_name_regexp--sc_trailing_blank): Exclude
1176         xargs test inputs and outputs.  Exclude the COPYING file.  Exclude
1177         a find test output.  Exclude the .po files.
1178         * xargs/xargs.c: Remove trailing blanks.
1179         * xargs/testsuite/config/unix.exp: Likewise.
1180         * find/testsuite/find.posix/bracket-depth.exp: Likewise.
1181         * find/testsuite/find.posix/files-not-expressions1.exp: Likewise.
1182         * find/testsuite/find.posix/files-not-expressions2.exp: Likewise.
1183         * find/testsuite/find.posix/files-not-expressions3.exp: Likewise.
1184         * find/testsuite/find.posix/nameslash.exp: Likewise.
1185         * find/testsuite/find.posix/perm-vanilla.exp: Likewise.
1186         * find/testsuite/find.posix/sizes.exp: Likewise.
1187         * find/testsuite/find.posix/sv-bug-25359.exp: Likewise.
1188         * find/testsuite/find.posix/typesize.exp: Likewise.
1189         * find/testsuite/find.gnu/access.exp: Likewise.
1190         * find/testsuite/find.gnu/deletedir.exp: Likewise.
1191         * find/testsuite/find.gnu/deletefile.exp: Likewise.
1192         * find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise.
1193         * find/testsuite/find.gnu/execdir-hier.exp: Likewise.
1194         * find/testsuite/find.gnu/execdir-pwd.exp: Likewise.
1195         * find/testsuite/find.gnu/execdir-root-only.exp: Likewise.
1196         * find/testsuite/find.gnu/follow-arg-parent-symlink.exp: Likewise.
1197         * find/testsuite/find.gnu/ilname.exp: Likewise.
1198         * find/testsuite/find.gnu/lname.exp: Likewise.
1199         * find/testsuite/find.gnu/perm-slash.exp: Likewise.
1200         * find/testsuite/find.gnu/posix-h.exp: Likewise.
1201         * find/testsuite/find.gnu/sv-bug-17782.exp: Likewise.
1202         * find/testsuite/find.gnu/sv-bug-24169.exp: Likewise.
1203         * find/testsuite/find.gnu/used-invarg.exp: Likewise.
1204         * find/testsuite/find.gnu/used-missing.exp: Likewise.
1205         * find/testsuite/excuses.txt: Likewise.
1206         * locate/testsuite/config/unix.exp: Likewise.
1207         * locate/testsuite/locate.gnu/bigendian.exp: Likewise.
1208         * locate/testsuite/locate.gnu/bigprefix1.exp: Likewise.
1209         * locate/testsuite/locate.gnu/exists2.exp: Likewise.
1210         * locate/testsuite/locate.gnu/exists3.exp: Likewise.
1211         * locate/testsuite/locate.gnu/littleendian.exp: Likewise.
1212         * locate/testsuite/locate.gnu/notexists2.exp: Likewise.
1213         * locate/testsuite/locate.gnu/notexists3.exp: Likewise.
1214         * locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise.
1215         * xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise.
1216         * xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise.
1217         * xargs/testsuite/xargs.posix/rc-125.exp: Likewise.
1218         * xargs/testsuite/xargs.posix/sv-bug-18714.exp: Likewise.
1219         * xargs/testsuite/xargs.posix/sv-bug-18714b.exp: Likewise.
1220         * po/Makevars (EXTRA_LOCALE_CATEGORIES): Likewise.
1221         * xargs/xargs.1 (SEE ALSO): Likewise.
1222
1223         Enable the sc_space_tab check
1224         * cfg.mk: Enable the sc_space_tab check.  Exclude various xargs
1225         test inputs and outputs from the check.  Remove some obsolete
1226         comments.
1227         * locate/Makefile.am (dblocation.texi): Remove space-tab sequences.
1228
1229         Enable the sc_texinfo_acronym check
1230         * cfg.mk: Enable the sc_texinfo_acronym check.  Exempt
1231         doc/perm.text, which isn't ours anyway.
1232         * doc/find.texi (Deleting Files): Say just POSIX rather than
1233         @acronym{POSIX}, simply because this is the convention in GNU
1234         documentation.  The motivation is that it's hard to do so
1235         consistently (because, for example, you can't use @acronym in a
1236         node name).
1237
1238         Enable syntax check sc_obsolete_symbols.
1239         (exclude_file_name_regexp--sc_obsolete_symbols): Don't check
1240         build-aux/src-sniff.py.
1241
1242         Enable more syntax checks, eliminate useless C preprocessor parentheses
1243         * find/defs.h: Eliminate useless parentheses in #if.
1244         * find/find.c (safely_chdir): Likewise.
1245         * find/pred.c: Likewise.
1246         * lib/buildcmd.c: Likewise.
1247         * lib/fdleak.c: Likewise
1248         * xargs/xargs.c: Likewise.
1249         * find/parser.c: Likewise.
1250         (ISDIGIT): Simplify, and avoid undefining isascii.
1251         * cfg.mk (local-checks-to-skip): Remove sc_prohibit_cvs_keyword,
1252         since the test produces no hits anyway.  Explain why we avoid
1253         sc_two_space_separator_in_usage. Enable the sc_useless_cpp_parens
1254         check.
1255
1256         Use stat-size macros in pred.c also.
1257         * find/pred.c: Include stat-size.  Eliminate definitions of
1258         DEV_BSIZE, ST_BLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE macros which are
1259         now in stat-size.h (yes, this is the second set of these macros
1260         we've removed).
1261         (file_sparseness): Use ST_NBLOCKS and ST_NBLOCKSIZE.
1262         * cfg.mk (local-checks-to-skip): Don't skip
1263         sc_prohibit_stat_st_blocks, because now we no loner access the
1264         st_blocks field of struct stat, directly.
1265         * lib/listfile.c (file_blocksize): Eliminate this function, it's
1266         no longer needed.
1267         * lib/listfile.h: Don't declare file_blocksize.
1268
1269         Adopt the new gnulib module stat-size.
1270         * lib/listfile.c: Include "stat-size.h".  Delete the DEV_BSIZE,
1271         ST_BLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE macros which are now in
1272         stat-size.h.
1273         * gnulib: Update to latest.
1274         * import-gnulib.config (modules): Add stat-size.
1275
1276 2011-06-05  James Youngman  <jay@gnu.org>
1277
1278         Don't include sys/param.h where we don't need it.
1279         * xargs/xargs.c: Don't include sys/param.h, we don't use it.
1280
1281         Don't include "stdio-safer.h" where it is not used.
1282         * find/parser.c: Don't include stdio-safer.h, it's not used.
1283         * lib/findutils-version.c: Likewise.
1284
1285         Don't include <stddef.h> where it is not used.
1286         * lib/dircallback.c: Don't include <stddef.h>, it's not used.
1287         * lib/extendbuf.c: Likewise.
1288         * lib/qmark.c: Likewise.
1289         * lib/savedirinfo.c: Likewise.
1290
1291         Fixes for empty-lines-at-EOF syntax check.
1292         * .x-sc_bindtextdomain: Add newline at EOF.
1293         * locate/Makefile.am: Remove empty trailing line at EOF.
1294         * find/testsuite/sv-bug-32043.sh: Likewise.
1295         * .x-sc_prohibit_empty_lines_at_EOF: Don't apply this check to
1296         m4/order-good.bin m4/order-bad.bin
1297         locate/testsuite/locate.gnu/locateddb.old.x86.xi
1298         locate/testsuite/locate.gnu/locateddb.old.powerpc.xi.
1299
1300         Avoid some false positives for the sc_prohibit_doubled_word check.
1301         * .x-sc_prohibit_doubled_word: don't perform this check on
1302         xargs/testsuite/xargs.sysv/iquotes.xo or ChangeLog.
1303         Don't check .po files for doubled English words (because they're
1304         not in English).
1305         * find/tree.c: Modify some text to avoid saying "AND and",
1306         which one of the syntax checks doesn't like.
1307         (opt_expr): Likewise.
1308         (consider_arm_swap): Likewise.
1309         * README: Likewise.
1310
1311         Include dirent.h uncontintionally (since gnulib provides it).
1312         * find/pred.c: Include <dirent.h> unconditionally; gnulib provides
1313         it.
1314         * lib/savedirinfo.c: Likewise.
1315
1316         Silence some false positives for sc_prohibit_always_true_header_tests.
1317         * .x-sc_prohibit_always_true_header_tests: New file; exclude
1318         build-aux/src-sniff.py from C inclusion tests, because it itself
1319         contains examples of string the syntac checkers don't like
1320         (because it's also a syntax checker).
1321         ChangeLog: also exclude this because it frequently contains the
1322         specifics of items added/removed, including examples of text which
1323         are this syntax check looks for.
1324
1325         Prefer "cannot" to "can not".
1326         * locate/locatedb.5: Change "can not" to "cannot".
1327         * locate/updatedb.1: Likewise.
1328
1329         Update xargs error message.
1330         * doc/find.texi (Error Messages From xargs): the message "can not
1331         fit single argument within argument list size limit" is now
1332         "argument list too long".
1333
1334 2011-06-04  James Youngman  <jay@gnu.org>
1335
1336         Use the gnulib byteswap and uname modules.
1337         * import-gnulib.config (modules): Add byteswap and uname.
1338         * locate/word_io.c: Include byteswap.h.   Don't #define bswap_32.
1339         * find/util.c: sys/utsname.h no longer needs include guards since
1340         gnulib always provides it.
1341         * configure.ac: Don't check for sys/utsname.
1342
1343         gnulib already defines O_CLOEXEC.
1344         * lib/fdleak.c: gnulib's fcntl.h always defines O_CLOEXEC, so
1345         don't define it here.
1346
1347         Add internationalisation support to bigram but not regexprops.
1348         * locate/bigram.c: Use libintl.h.
1349         (main): Call bindtextdomain.
1350         * .x-sc_bindtextdomain: Exempt lib/regexprops.c from needing to
1351         use bindtextdomain.  The output of regexprops is intended to be
1352         determined entirely by the properties of the GNU regex
1353         implementation.
1354
1355         Update gnulib.
1356         * gnulib: update to current head.
1357
1358         Update the copyright year in C source files.
1359         * find/defs.h: Update copyright year.
1360         * find/find.c: Update copyright year.
1361         * find/finddata.c: Update copyright year.
1362         * find/ftsfind.c: Update copyright year.
1363         * find/parser.c: Update copyright year.
1364         * find/pred.c: Update copyright year.
1365         * find/sharefile.c: Update copyright year.
1366         * find/sharefile.h: Update copyright year.
1367         * find/tree.c: Update copyright year.
1368         * find/util.c: Update copyright year.
1369         * lib/buildcmd.c: Update copyright year.
1370         * lib/buildcmd.h: Update copyright year.
1371         * lib/dircallback.c: Update copyright year.
1372         * lib/dircallback.h: Update copyright year.
1373         * lib/extendbuf.c: Update copyright year.
1374         * lib/extendbuf.h: Update copyright year.
1375         * lib/fdleak.c: Update copyright year.
1376         * lib/fdleak.h: Update copyright year.
1377         * lib/findutils-version.c: Update copyright year.
1378         * lib/findutils-version.h: Update copyright year.
1379         * lib/forcefindlib.c: Update copyright year.
1380         * lib/listfile.c: Update copyright year.
1381         * lib/listfile.h: Update copyright year.
1382         * lib/nextelem.c: Update copyright year.
1383         * lib/nextelem.h: Update copyright year.
1384         * lib/printquoted.c: Update copyright year.
1385         * lib/printquoted.h: Update copyright year.
1386         * lib/qmark.c: Update copyright year.
1387         * lib/regexprops.c: Update copyright year.
1388         (copying): Update copyright year in the output file, too.
1389         * lib/regextype.c: Update copyright year.
1390         * lib/regextype.h: Update copyright year.
1391         * lib/safe-atoi.c: Update copyright year.
1392         * lib/safe-atoi.h: Update copyright year.
1393         * lib/savedirinfo.c: Update copyright year.
1394         * lib/savedirinfo.h: Update copyright year.
1395         * lib/unused-result.h: Update copyright year.
1396         * lib/waitpid.c: Update copyright year.
1397         * locate/bigram.c: Update copyright year.
1398         * locate/code.c: Update copyright year.
1399         * locate/frcode.c: Update copyright year.
1400         * locate/locate.c: Update copyright year.
1401         * locate/locatedb.h: Update copyright year.
1402         * locate/word_io.c: Update copyright year.
1403         * xargs/xargs.c: Update copyright year.
1404
1405         More copyright year updates.
1406         * build-aux/check-testfiles.sh: Update copyright year.
1407         * m4/noreturn.m4: Update copyright year.
1408         * po/POTFILES.in: Update copyright year.
1409
1410         Update the copyright year in test/documentation files, updatedb.
1411         * build-aux/src-sniff.py: Update copyright year.
1412         * doc/find-maint.texi: Update copyright year.
1413         * doc/regexprops.texi: Update copyright year.
1414         * find/testsuite/config/unix.exp: Update copyright year.
1415         * locate/testsuite/config/unix.exp: Update copyright year.
1416         * xargs/testsuite/config/unix.exp: Update copyright year.
1417         * locate/updatedb.sh: Update copyright year.
1418
1419 2011-06-03  James Youngman  <jay@gnu.org>
1420
1421         Warn about lack of birth time information only when it's true.
1422         * find/pred.c (pred_newerXY): Issue a warning about the inability
1423         to get the birth time of a file, only if we actually failed to
1424         obtain the birth time of the file.  This is a bugfix; there was a
1425         misplaced semicolon after an if condition, so the immediately
1426         succeeding block qould be executed unconditionally.
1427
1428         Compiler warning fixes in find/pred.c.
1429         * find/pred.c (mode_to_filetype): return const char*.
1430         (impl_pred_exec): Make target and prefix variables const.
1431         (impl_pred_exec): Separate 'target' variable (which sometimes
1432         points to a string literal) from a separate 'buf' variable (which,
1433         if set, is always the value returned by base_name, which needs to
1434         be freed.
1435         (checked_fwrite): Store the result of fwrite in a size_t (i.e. the
1436         same type the function returns).
1437
1438         Eliminate some compiler warnings in parser.c
1439         * find/parser.c: Don't define the macros STRINGIFY and
1440         PARSE_ACTION_NP.
1441         (optionh_getfilecon): Make this function static
1442         since it is not used elsewhere.
1443         (optionl_getfilecon): Likewise.
1444         (optionp_getfilecon): Likewise.
1445         (found_parser): Likewise.
1446
1447         Avoid code redundancy in lib/buildcmd.c.
1448         * lib/buildcmd.c (bc_get_arg_max): Recheck val only if we might
1449         have changed it (i.e. when ARG_MAX is defined).
1450
1451         Eliminate some compiler warnings in find/parser.c.
1452         * find/defs.h (struct parser_table): Make parser_name field const.
1453         * find/parser.c: Remove redundant declaration of parse_print.
1454         (insert_path_check): Change name of parameter pred_name to avoid
1455         shadowing the function of that name.
1456         (find_parser): Make search_name parameter const.
1457
1458         Fix a compiler warning in lib/buildcmd.c
1459         * lib/buildcmd.c: special_terminating_arg should be const.
1460
1461         Fix compiler warnings in lib/fdleak.c
1462         * lib/fdleak.c (visit_open_fds): Rename loop variable from i to j
1463         to avoid shadowing.
1464         (get_proc_max_fd): Fix definition (it's a void function, not a
1465         traditional pre-ANSI function definition).
1466
1467         Fix several small compiler warnings.
1468         * lib/dircallback.c: Include dircallback.h.
1469         * lib/dircallback.h: Correct declaration of run_in_dir.
1470         * lib/listfile.c (file_blocksize): Use the otherwise-unused parameter.
1471         * find/defs.h: Remove redundant declaration of variable options.
1472
1473         Fix some compiler warnings in findutils-version.c.
1474         * lib/findutils-version.c: include findutils-version.h.  Make
1475         version_string const.  Don't #define N_, since we don't use it.
1476
1477         Don't display a separate gnulib version.
1478         * lib/findutils-version.c (display_findutils_version): Don't
1479         display gnulib_version because it's no longer defined (because
1480         there is no gnulib version separate from the findutils version,
1481         now that gnulib is a submodule).
1482         * import-gnulib.config: remove gnulib_version and destdir, they
1483         are not needed any more.
1484         * lib/Makefile.am (EXTRA_DIST): Don't distribute gnulib-version.h
1485         or gnulib-version.c.
1486         (BUILT_SOURCES): delete, there are no longer any built sources.
1487         * lib/gnulib-version.h: Remove.
1488         * locate/code.c: Don't include gnulib-version.h
1489         * xargs/xargs.c: Don't include gnulib-version.h
1490
1491 2011-06-01  James Youngman  <jay@gnu.org>
1492
1493         Take the last matching entry in /etc/mtab, not the first.
1494         * find/fstype.c (file_system_type_uncached): Instead of taking the
1495         first match, take the last match.  This deals better with mtab
1496         implementations in which there can be duplicate entries, for
1497         example Linux-based systems in which /etc/mtab is a symlink to
1498         /proc/mounts) can have duplicate entries in the file system list.
1499         This happens most frequently for /.
1500         * NEWS: Mention this change.
1501
1502 2011-06-02  James Youngman  <jay@gnu.org>
1503
1504         Remove unnecessary header checks and include guards.
1505         * configure.ac (AC_CHECK_HEADERS): Remove checks for header files
1506         that gnulib either assumes are always present, or provides
1507         itself.  These include errno.h fcntl.h inttypes.h limits.h
1508         locale.h stddef.h stdint.h stdlib.h string.h sys/types.h
1509         unistd.h.
1510         * lib/buildcmd.c: Remove include guard for limits.h.
1511         * find/fstype.c: Remove include guard for sys/types.h.
1512         * lib/savedirinfo.c: Likewise.
1513         * find/find.c: Remove include guard for locale.h.
1514         * find/ftsfind.c: Likewise.
1515
1516 2011-06-01  James Youngman  <jay@gnu.org>
1517
1518         Better error handling for the result of set_fstype_devno.
1519         * find/fstype.c (file_system_type_uncached): If set_fstype_devno
1520         fails for an entry (that is, the device number stays at -1) don't
1521         consider it a match.
1522         (get_mounted_filesystems): Don't call set_fstype_devno since we
1523         don't need to check the device number.
1524         (get_mounted_devices): If set_fstype_devno fails for a file
1525         system, don't return it.
1526
1527 2011-05-31  James Youngman  <jay@gnu.org>
1528
1529         import-gnulib.sh now stops if it sees the old directory layout.
1530         * import-gnulib.sh (check_old_gnulib_dir_layout): Check the
1531         ./gnulib-git, ./gnulib/ and ./gl/ subdirectories to figure out if
1532         we are using a current version of import-gnulib.sh with an old
1533         directory layout.  If so, print an explanation of the problem and
1534         return false.
1535         (main): stop if check_old_gnulib_dir_layout didn't like the
1536         directory layout.
1537
1538         Minor fixes in import-gnulib.sh.
1539         * import-gnulib.sh (fixmsg): Fix punctuation in the commands given
1540         for installing the changelog driver.
1541         (usage): Explain what the -a option does.
1542         (run_gnulib_tool): delete broken symlinks in the output directory,
1543         not the gnulib source.
1544         (check_merge_driver): fix the path to the ChangeLog merge driver
1545         source.
1546
1547 2011-05-30  James Youngman  <jay@gnu.org>
1548
1549         Manage gnulib as a git submodule.
1550         * .gitmodules: New file; manage gnulib as a submodule.  For future
1551         compatibility with the "bootstrap" script, keep the gnulib
1552         submodule in the gnulib directory (instead of the gnulib-git
1553         directory as before).  This means we need to find a new directory
1554         for the output of gnulib-tool; we will use "gl" for that.
1555         * import-gnulib.sh (do_checkout): Replace with do_submodule.
1556         (do_submodule): initialise and configure the gnulib module.
1557         (main): call do_submodule instead of do_checkout.  Don't call
1558         move_cvsdir, it's obsolete.
1559         (move_cvsdir): delete
1560         (run_gnulib_tool): change gnulib to ${gldest} (and set that variable).
1561         (hack_gnulib_tool_output): generate gl/Makefile.am, not
1562         gnulib/Makefile.am.
1563         (refresh_output_files): Rename gnulib to gl.
1564         (update_version_file): Check the state of the submodule.
1565         * Makefile.am (SUBDIRS): Rename gnulib to gl.
1566         (ACLOCAL_AMFLAGS): Likewise.
1567         * lib/Makefile.am (INCLUDES): Likewise.
1568         (LDADD): Likewise.
1569         (findutils-check-smells): Rename gnulib-git to gnulib.
1570         * find/Makefile.am (INCLUDES): Change gnulib to gl.
1571         (LDADD): Likewise.
1572         * xargs/Makefile.am (INCLUDES): Change gnulib to gl.
1573         (LDADD): Likewise.
1574         * locate/Makefile.am (INCLUDES): Rename gnulib to gl.
1575         (LDADD): Likewise.
1576         * .gitignore: Rename gnulib to gl.
1577         * configure.ac (AC_CONFIG_MACRO_DIR): Change to gl/m4.
1578         (AC_CONFIG_FILES): use gl/Makefile and gl/lib/Makefile instead of
1579         gnulib/Makefile and gnulib/lib/Makefile.
1580         * find/fstype.c: Include gnulib include files as "foo.h", not
1581         "../gnulib/lib/foo.h", because the relative path is not needed and
1582         in any case has changed.
1583
1584 2011-05-29  James Youngman  <jay@gnu.org>
1585
1586         Savannah bug #31424: Revert Interix-specific change.
1587         Gnulib will use suacomp for solving this problem, so findutils
1588         will not need a workaround here.
1589         * lib/arg-max.h: Delete this file.
1590         * lib/Makefile.am (libfind_a_SOURCES): Remove arg-max.h.
1591         * lib/buildcmd.c: Don't include arg-max.h.
1592         * xargs/xargs.c: Likewise.
1593
1594 2011-05-24  James Youngman  <jay@gnu.org>
1595
1596         Fix Savannah bug #33384.
1597         * locate/updatedb.sh: Don't reset $PATH, because the hard-coded
1598         value we were using isn't guaranteed to contain all the utilities
1599         (for example rm, chmod and so on) we would like to use.
1600         * NEWS: Mention this bugfix.
1601
1602 2011-05-22  James Youngman  <jay@gnu.org>
1603
1604         Don't assume that "echo" lives in /bin.
1605         * xargs/xargs.c (main): Change default_cmd from "/bin/echo" (which
1606         may not be present on some POSIX systems) to "echo" (which must
1607         exist somewhere on $PATH on any POSIX system).
1608         * doc/find.texi (Multiple Files): document this.
1609         * NEWS: Describe this change.
1610         * xargs/testsuite/xargs.sysv/empty_def-t.xe: Change /bin/echo to
1611         echo.
1612         * xargs/testsuite/xargs.gnu/n2-s26-x-0.exp: Change -s26 to -s21 to
1613         keep the expected test result the same.  Rename the test to
1614         reflect the updated arguments.
1615         * xargs/testsuite/xargs.gnu/n2-s26-x-0.xo: Rename to
1616         n2-s21-x-0.xo.
1617         * xargs/testsuite/xargs.gnu/n2-s26-0.exp: Rename to n2-s21-0.exp,
1618         update -s argument.
1619         * xargs/testsuite/xargs.posix/s30.exp: Rename to s25.exp, update -s.
1620         * xargs/testsuite/xargs.posix/s30.xo: Rename to s25.xo.
1621         * xargs/testsuite/xargs.gnu/s30-0.exp: Rename to s25-0.exp, update
1622         -s argument.
1623         * xargs/testsuite/xargs.gnu/s30-0.xo: Rename to s25-0.xo.
1624         * xargs/testsuite/xargs.sysv/s30-t.exp: Rename to s25-t.exp,
1625         update -s.
1626         * xargs/testsuite/xargs.sysv/s30-t.xo: Rename to s25-t.xo.
1627         * xargs/testsuite/xargs.sysv/s30-t.xe: Rename to s25-t.xe, change
1628         /bin/echo to just echo.
1629         * xargs/testsuite/xargs.posix/s47.exp: Rename to s42.exp, update -s.
1630         * xargs/testsuite/xargs.posix/s47.xo: Rename to s42.xo.
1631         * xargs/testsuite/xargs.gnu/n3-s36-0.exp: Rename to n3-s31-0.exp,
1632         update -s.
1633         * xargs/testsuite/xargs.gnu/n3-s36-0.xo: Rename to n3-s31-0.xo.
1634         * xargs/testsuite/xargs.gnu/s20-0.exp: Rename to s15-0.exp, update
1635         -s.
1636         * xargs/testsuite/xargs.gnu/s20-0.xo: Rename to s15-0.xo.
1637         * xargs/testsuite/xargs.posix/n2-s26.exp: Rename to n2-s21.exp,
1638         update -s.
1639         * xargs/testsuite/xargs.posix/n2-s26.xo: Rename to n2-s21.xo.
1640         * xargs/testsuite/xargs.gnu/s19-0.exp: Rename to s14-0.exp, update
1641         -s.
1642         * xargs/testsuite/xargs.gnu/s19-0.xo: Rename to s14-0.xo.
1643         * xargs/testsuite/xargs.gnu/s19_2-0.exp: Rename to s14_2-0.exp,
1644         update -s.
1645         * xargs/testsuite/xargs.gnu/s19_2-0.xo: Rename to s14_2-0.xo.
1646         * xargs/testsuite/xargs.posix/n3-s36.exp: Rename to n3-s31.exp,
1647         update -s.
1648         * xargs/testsuite/xargs.posix/n3-s36.xo: Rename to n3-s31.xo.
1649         * xargs/testsuite/xargs.posix/s19.exp: Rename to s14.exp, update
1650         -s.
1651         * xargs/testsuite/xargs.posix/s19.xo: Rename to s14.xo.
1652         * xargs/testsuite/xargs.posix/s19_2.exp: Rename to s14_2.exp,
1653         update -s.
1654         * xargs/testsuite/xargs.posix/s19_2.xo: Rename to s14_2.xo.
1655         * xargs/testsuite/xargs.posix/s20.exp: Rename to s15.exp,
1656         update -s.
1657         * xargs/testsuite/xargs.posix/s20.xo: Rename to s15.xo.
1658         * xargs/testsuite/Makefile.am (EXTRA_DIST_XO): Update names.
1659         (EXTRA_DIST_EXP): Likewise.
1660
1661 2011-05-17  James Youngman  <jay@gnu.org>
1662
1663         Document ftsfind/oldfind and configure options.
1664         * doc/find.texi (Configuration): New section documenting the
1665         important configuration options that can be passed to configure,
1666         including --without-fts.
1667         * find/find.1 (BINARIES): New section explaining why two binaries
1668         are installed.
1669         * find/oldfind.1: New manual page explaining how 'oldfind' is
1670         different to 'find'.
1671         * find/ftsfind.1: New manual page explaining how 'ftsfind' is
1672         different to 'find'.
1673         * find/Makefile.am (man_MANS): As well as find.1, install one of
1674         ftsfind.1 or oldfind.1, depending on whether --without-fts was
1675         specified to configure.
1676         * NEWS: Mention this change.
1677
1678 2011-05-15  James Youngman  <jay@gnu.org>
1679
1680         Add lib/fdleak.c to translatable files.
1681         * po/POTFILES.in: Add lib/fdleak.c.
1682
1683         Fix Savannah bug #18227 (-ls doesn't print device major/minor).
1684         * lib/listfile.c (list_file): check HAVE_STRUCT_STAT_ST_RDEV
1685         instead of HAVE_ST_RDEV, fixing this bug.  HAVE_ST_RDEV was
1686         defined by the obsolete Autoconf macro AC_STRUCT_ST_RDEV, but
1687         findutils hasn't actually called AC_STRUCT_ST_RDEV since Apr 5
1688         2000.
1689         * NEWS: Mention this bugfix.
1690
1691         #29698: Correct and clarify documentation of xargs -d option
1692         * xargs/xargs.1: Update documentation for -d option to more
1693         clearly distinguish the treatment of backslashes in the input and
1694         the treatment of backslashes in the argument to -d.
1695         * NEWS: Mention this bugfix.
1696
1697         Implement xargs --process-slot-var.
1698         * xargs/xargs.c (set_slot_var): New function; sets an environment
1699         variable to the index of the entry in pids[] that represents the
1700         relevant child process.  This can be used in rudimentary load
1701         distribution systems.
1702         (slot_var_name): the name of the variable to use (selected by
1703         --process-slot-var).
1704         (enum LongOptionIdentifier): Unique identifiers for long options
1705         with no short option equivalent (--process-slot-var is the first).
1706         (longopts): Add --process-slot-var.
1707         (add_proc): return the index within pids[] that we selected.
1708         (main): Pass &option_index to getopt_long (option_index is a new
1709         variable) in order to identify which long option was passed.
1710         Handle --process-slot-var.
1711         (prep_child_for_exec): Call set_slot_var.
1712         (usage): Mention --process-slot-var.
1713         * doc/find.texi (xargs options): Document --process-slot-var.
1714         * xargs/xargs.1: Likewise.
1715         * NEWS: Mention this change and that it was Savannah bug #29512.
1716
1717         Describe xargs options in alphabetical order.
1718         * xargs/xargs.1: Re-order the options to place them in
1719         alphabetical order.  Put --help and --version at the end.
1720         * xargs/xargs.c (usage): Describe the options in alphabeitcal
1721         order.
1722         * NEWS: Mention this change.
1723
1724         Fix bug #14386: updatedb relies on mktemp, which is not portable.
1725         * locate/updatedb.sh (make_tempdir): new function, works around
1726         the possible absence of mktemp.  We now create the file list and
1727         the bigrams file in a temporary directory.  Also add some quoting
1728         for a few shell variables.  Update the copyright years.
1729         * locate/testsuite/locate.gnu/oldformat.exp: Add a test case which
1730         uses the old database format, in order to exercise our mktemp
1731         replacement.
1732         * locate/testsuite/Makefile.am (EXTRA_DIST_EXP): Ship this new
1733         file.
1734         * locate/testsuite/locate.gnu/oldformat.xo: The expected output
1735         for the new test.
1736         * locate/testsuite/Makefile.am (EXTRA_DIST_XO): Ship this new
1737         file.
1738         * NEWS: Mention this bugfix.
1739
1740 2011-05-14  James Youngman  <jay@gnu.org>
1741
1742         Fix bug #32043 (fnmatch should treat unquoted [ literally).
1743         * import-gnulib.config (gnulib_version): Update gnulib to the
1744         version which includes the fnmatch fix (a backport of glibc bug
1745         #12378).  This fixes our bug too.
1746         * find/testsuite/sv-bug-32043.sh: New (non-DejaGnu) test script.
1747         Tests Savannah bug #32043 (POSIX requires that an unquoted [
1748         should be matched literally).
1749         * find/testsuite/Makefile.am (TESTS): Add sv-bug-32043.sh.
1750         (EXTRA_DIST): Distribute sv-bug-32043.sh.
1751         * NEWS: Mention this bugfix.
1752
1753 2011-05-11  James Youngman  <jay@gnu.org>
1754
1755         Move on from 4.5.10, to 4.5.11-git.
1756         * NEWS, configure.ac: update version number.
1757
1758         Prepare for release of findutils-4.5.10.
1759         * NEWS: Update version number to 4.5.10 to prepare for that
1760         release.  Add a release date (2011-05-11).
1761
1762         * configure.ac: Also update version number.
1763         * po/*.po, po/findutils.pot: make dist changes these.
1764
1765         Savannah bug #30608 (Automagic dependency on selinux) is fixed.
1766         * NEWS: Mention that Savannah bug #30608 (Automagic dependency on
1767         selinux) is fixed.  The gnulib update on 2011-04-02 will have
1768         included gnulib change 83e52ee5a420f8b552745a72e5869001b0f6da60
1769         which fixes this problem.  The configure script now provides a
1770         --without-selinux option.
1771
1772         Update Estonian translation.
1773         * po/et.po: Update from the Translation Project.
1774
1775 2010-05-24  Kamil Dudka  <kdudka@redhat.com>
1776
1777         Fix Savannah bug #29949, -execdir does not change working directory.
1778         * find/pred.c (record_exec_dir): Do not throw the execdir when not
1779         working in the cumulative mode.
1780         * find/testsuite/find.gnu/execdir-multiple.exp: Add a test-case for
1781         the bug #29949.
1782         * NEWS: Mention this bugfix.
1783
1784 2011-04-02  James Youngman  <jay@gnu.org>
1785
1786         Change "can not" to "cannot".
1787         * lib/buildcmd.c (bc_push_arg): "can not" -> "cannot" in message.
1788         * find/tree.c: Likewise in a comment.
1789
1790         Update Danish translation.
1791         * po/da.po: Likewise.
1792
1793         Update Slovenian, German, Estonian, French, Japanese translations.
1794         * po/sl.po: Updated from the Translation Project.
1795         * po/de.po: Likewise.
1796         * po/et.po: Likewise.
1797         * po/fr.po: Likewise.
1798         * po/ja.po: Likewise.
1799
1800         Update to the current version of gnulib.
1801         * import-gnulib.config (gnulib_version): Update to the current
1802         version of gnulib.
1803         * configure.ac: Update to gettext 0.18.1.
1804         * po/Rules-quot: Update this file from gettext.
1805
1806         Use parse-datetime instead of the obsolete module getdate.
1807         * import-gnulib.config (modules): Import the gnulib module
1808         parse-datetime instead of the obsolete module getdate.
1809         * find/parser.c: Include parse-datetime.h instead of getdate.h.
1810         * doc/find.texi: Include parse-datetime.texi instead of
1811         getdate.texi.
1812         * doc/Makefile.am (find_TEXINFOS): Use parse-datetime.texi instead
1813         of getdate.texi.
1814
1815 2010-10-23  James Youngman  <jay@gnu.org>
1816
1817         Savannah bug #31424: Work around Interix bug in _SC_ARG_MAX,
1818         in which execve will fail with ENOMEM if we use a command line
1819         somewhere between ARG_MAX and _SC_ARG_MAX.
1820         * lib/arg-max.h: New file: undefine _SC_ARG_MAX if we cannot rely
1821         on the value that sysconf produces.
1822         * lib/Makefile.am (libfind_a_SOURCES): Add arg-max.h.
1823         * lib/buildcmd.c: #include arg-max.h.
1824         * xargs/xargs.c: Likewise.
1825
1826 2010-10-21  James Youngman  <jay@gnu.org>
1827
1828         Fix Savannah bug #31359: FAIL: test-strstr on alpha.
1829         * import-gnulib.config (gnulib_version): Update the version of
1830         gnulib.
1831         * NEWS: Mention this bugfix.
1832
1833 2010-10-11  James Youngman  <jay@gnu.org>
1834
1835         * doc/find.texi (Further Reading on Security): Give some
1836         references to further reading on security.
1837         * NEWS: Mention this change.
1838
1839 2010-08-16  James Youngman  <jay@gnu.org>
1840
1841         Fix Savannah bug #30777.
1842         * find/parser.c (insert_exec_ok): Fail if {} appears in an
1843         argument between -exec ... \+ but it's not the whole argument
1844         (that is, reject "FOO{}").  Previously the FOO prefix was accepted
1845         but ignored, which is probably POSIX-incompliant and certainly
1846         surprising.
1847         * find/testsuite/find.posix/sv-bug-30777.exp: New test case for
1848         Savannah bug #30777.
1849         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
1850         find.posix/sv-bug-30777.exp.
1851
1852 2010-08-15  James Youngman  <jay@gnu.org>
1853
1854         Fix Savannah bug #30180, wrong error message for -size b300
1855         * find/parser.c (parse_size): Don't print a suffix in the error
1856         message if no suffix was specified.
1857         * NEWS: Mention this change.
1858
1859         * po/da.po: Update Danish translation.
1860
1861 2010-05-11  John Gilmore  <gnu@xargs.toad.com>
1862
1863         Fix bug arising when we receive SIGUSR2.
1864         * xargs/xargs.c (xargs_do_exec): Don't assume that proc_max won't
1865         decrease while we are waiting for a process to exit.  This happens
1866         if we receive SIGUSR2.
1867
1868 2010-05-09  James Youngman  <jay@gnu.org>
1869
1870         * xargs/xargs.1: Refer to signal(7) rather than signal(2).
1871
1872 2010-05-08  John Gilmore  <gnu@xargs.toad.com>
1873
1874         Control xargs parallelism with SIGUSR1/SIGUSR2.
1875         * xargs/xargs.c: Increase parallelism in mid-run with SIGUSR1;
1876         decrease it with SIGUSR2.
1877         * doc/find.texi, xargs/xargs.1, NEWS: Document SIGUSR1/2.
1878
1879 2010-05-09  Sergei Golovan  <sgolovan@gmail.com> (tiny change)
1880
1881         Fix Savannah bug #29828, test suite deadlock on FreeBSD.
1882         * find/testsuite/find.gnu/sv-bug-24169.exp: Read find output until
1883         eof before calling wait, in order to avoid a deadlock on FreeBSD.
1884
1885 2010-05-08  Andreas Metzler  <gnu@downhill.at.eu.org>
1886
1887         Fix a typo.  Use "\-" in nroff, rather than a naked "-".
1888         * find/parser.c (check_option_combinations): Fix typo
1889         "atomatically".
1890         * find/find.1 (-name): protect nroff hyphens with backslashes.
1891         * locate/locatedb.5: Likewise.
1892
1893 2010-05-07  James Youngman  <jay@gnu.org>
1894
1895         * AUTHORS: Add Kamil Dudka.
1896
1897 2010-05-07  Kamil Dudka  <kdudka@redhat.com>
1898
1899         * lib/dircallback.c (run_in_dir): Make sure that if the callback
1900         doesn't get run, the return value is nonzero.  Make sure that if
1901         the directory save/restore fails, we don't overwrite errno with a
1902         random value (and hence report some unrelated and nonexistent
1903         error, instead of the real problem).  Restore the previous current
1904         directory.
1905
1906 2010-05-04  James Youngman  <jay@gnu.org>
1907
1908         Bugfix: make sure make distdir works in VPATH directly after configure
1909         * locate/Makefile.am (EXTRA_DIST): Add dblocation.texi.
1910         (dblocation.texi): Always rebuild, but don't replace the existing
1911         version if the content would not change.
1912
1913 2010-04-30  James Youngman  <jay@gnu.org>
1914
1915         Update Finnish and Italian translations.
1916         * po/fi.po: Updated Finnish translation.
1917         * po/it.po: Updated Italian translation.
1918         * NEWS: Mention these updates.
1919
1920         Move on from 4.5.9.
1921         * NEWS: Bump the version number from 4.5.9 to 4.5.10-git.
1922         * configure.ac: Likewise.
1923
1924 2010-04-29  James Youngman  <jay@gnu.org>
1925
1926         Prepare for the release of findutils version 4.5.9.
1927         * NEWS: Change the version number to 4.5.9.
1928         * configure.ac: Likewise.
1929
1930         Preserve locate/dblocation.texi during 'make clean'.
1931         * locate/Makefile.am (DISTCLEANFILES): Clean dblocation.texi for
1932         'make distclean', but not 'make clean'.
1933
1934 2010-04-18  James Youngman  <jay@gnu.org>
1935
1936         Remove redundant declarations.
1937         * locate/frcode.c: Don't declare xmalloc, include xalloc.h instead.
1938         * locate/code.c: Don't declare program_name, we already included
1939         progname.h.
1940
1941         Remove support for compilers lacking prototypes.
1942         * find/defs.h: Don't define or use the PARAMS macro.
1943         * xargs/xargs.c: Likewise.
1944         * locate/locatedb.h: Likewise.
1945         * locate/frcode.c: Likewise.
1946         * lib/buildcmd.c: Likewise.
1947         * find/tree.c: Likewise.
1948         * find/pred.c: Likewise.
1949         * find/parser.c: Likewise.
1950         * find/fstype.c: Likewise.
1951         * find/find.c: Likewise.
1952
1953 2010-04-21  James Youngman  <jay@gnu.org>
1954
1955         Update Chinese (simplified) translation.
1956         * po/zh_CN.po: Updated from the Translation Project.
1957         * NEWS: Mention this change.
1958
1959 2010-04-18  James Youngman  <jay@gnu.org>
1960
1961         Fix Savannah bug #29593: Make import-gnulib.sh work under a POSIX shell.
1962         * import-gnulib.sh: Remove bash-specific '[[...]]' tests; instead
1963         use '[...]'.
1964         * NEWS: Mention this bugfix.
1965
1966 2010-04-17  James Youngman  <jay@gnu.org>
1967
1968         Remove obsolete module strpbrk.
1969         * import-gnulib.config (modules): Remove strpbrk.
1970
1971         * locate/Makefile.am (locate_TEXINFOS): Add dblocation.texi.
1972
1973 2010-04-13  James Youngman  <jay@gnu.org>
1974
1975         Correct some test file names.
1976         * find/testsuite/Makefile.am (EXTRA_DIST_EXP):
1977         find.gnu/sv-bug-25359-execdir.exp should in fact be
1978         find.gnu/sv-bug-27563-execdir.exp and
1979         find.posix/sv-bug-25359-exec.exp should be
1980         find.posix/sv-bug-27563-exec.exp.
1981
1982         * .x-sc_prohibit_test_minus_ao: Condense the file (since the
1983         entries are regular expressions anyway).
1984
1985         * .x-sc_prohibit_empty_lines_at_EOF: New file; exceptions for the
1986         sc_prohibit_empty_lines_at_EOF syntax check.
1987
1988 2010-04-11  James Youngman  <jay@gnu.org>
1989
1990         Make sure we don't open a file on a standard fd (that is, 0/1/2).
1991         * lib/fdleak.c: Include fcntl--.h to turn calls to open into calls
1992         to open_safer.
1993         * find/find.c: Likewise.
1994
1995         After-the-fact change to NEWS for 4.5.8: fixed bug 27974.
1996         * NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use
1997         gnulib's xreadlinkat support), though the NEWS file in that
1998         release omitted to say so.
1999
2000         Fix Savannah bug #29511: fails to build on kfreebsd-*
2001         * lib/fdleak.c (get_max_fd): Don't use RLIM_SAVED_MAX or
2002         RLIM_SAVED_CUR.  Not only are they non-portable, they aren't
2003         useful.
2004         * NEWS: Mention this bugfix.
2005
2006         Remove some unused or dead code.
2007         * find/util.c (hook_fstatat): This has been disabled and unused
2008         for a long time, delete it.
2009         * find/find.c (process_dir): Remove some unused debug code.
2010         * find/tree.c (predlist_insert): Remove some dead code.
2011         * lib/fdleak.c (complain_about_leaky_fds): Remove some unused
2012         debug code.
2013
2014         Add a test case for Savannah bug 27563 (-L breaks -execdir).
2015         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
2016         find.gnu/sv-bug-27563-execdir.exp and
2017         find.posix/sv-bug-27563-exec.exp.
2018         (EXTRA_DIST_XO): Add find.gnu/sv-bug-27563-execdir.xo and
2019         find.posix/sv-bug-27563-exec.xo.
2020         * find/testsuite/find.gnu/sv-bug-27563-execdir.exp: New test.
2021         * find/testsuite/find.posix/sv-bug-27563-exec.exp: New test.
2022         * find/testsuite/find.gnu/sv-bug-27563-execdir.xo: Expected output.
2023         * find/testsuite/find.posix/sv-bug-27563-exec.xo: Expected output.
2024
2025         Fix Savannah bug #27563, -L breaks -execdir.
2026         * find/pred.c (initialise_wd_for_exec): New function, factoring
2027         out part of the body of record_exec_dir.
2028         (record_exec_dir): If state.rel_pathname contains a /, extract the
2029         directory part and initialise execp->wd_for_exec to point at that
2030         directory.
2031         (impl_pred_exec): Rename new_impl_pred_exec to impl_pred_exec.
2032         Drop the prefix and pfxlen parameters.  Compute the base name of
2033         the target and pass that to the bc_push_arg function instead of
2034         state.rel_pathname.  Deal with state.rel_pathname being an
2035         absolute path (e.g. find / -execdir...).  Introduce a new
2036         variable, result, allowing us to free the buffer used for the base
2037         name in the return path.
2038         (pred_exec): Don't pass the prefix and the prefix length any more.
2039         (pred_execdir): Likewise.
2040         (pred_ok): Likewise.
2041         (pred_okdir): Likewise.
2042
2043 2010-04-10  James Youngman  <jay@gnu.org>
2044
2045         Fix Savannah bug #19593, -execdir .... {} + has suboptimal performance
2046         * find/ftsfind.c (consider_visiting): Don't call
2047         complete_pending_execdirs for every file we visit.
2048         (find): Instead, call complete_pending_execdirs every time we
2049         see a file which isn't at the same nesting level as the previous
2050         file we saw.  This is an improvement but not optimal (since
2051         descending into a subdirectory will cause us to issue an exec
2052         before we've finished with the current directory).
2053         * NEWS: Mention this change.
2054
2055         Exec predicates now store which directory they want to run in.
2056         * lib/dircallback.c (run_in_dirfd): New name for old run_in_dir
2057         function.
2058         (run_in_dir): Like the old function of the same name, but now
2059         takes an argument const struct saved_cwd *.
2060         * lib/dircallback.h: Update declarations of run_in_dirfd and
2061         run_in_dir.
2062         * find/util.c: Include dircallback.h, xalloc.h, save-cwd.h.
2063         (do_complete_pending_execdirs): Remove dir_fd parameter, since the
2064         per-predicate data structures now indicate what directory they
2065         need to be run in.  Instead of calling bc_do_exec directly, use a
2066         callback 'exec_cb' that uses run_in_dir (which now takes a
2067         saved_cwd* parameter instead of a file descriptor).
2068         (do_exec): Called by do_complete_pending_execdirs, and simply uses
2069         run_in_dir to call exec_cb, restoring the working directory
2070         afterward.
2071         (record_initial_cwd): New function, initialises the global
2072         variable initial_wd.
2073         (cleanup_initial_cwd): New function, cleans up the global variable
2074         initial_wd.
2075         (cleanup): Call cleanup_initial_cwd.
2076         (get_start_dirfd): Remove.
2077         (is_exec_in_local_dir): New function; true for predicates -execdir
2078         and -okdir.
2079         * find/pred.c: Include cloexec.h and save-cwd.h.
2080         (record_exec_dir): New function, sets the value of
2081         execp->wd_for_exec if needed.
2082         (new_impl_pred_exec): Remove the obsolete dir_fd parameter.  Call
2083         record_exec_dir.
2084         (pred_exec): Don't pass the dir_fd parameter.
2085         (pred_execdir): Likewise.
2086         (pred_ok): Likewise.
2087         (pred_okdir): Likewise.
2088         (can_access): Call run_in_dirfd rather than run_in_dir (the
2089         function was renamed).
2090         (prep_child_for_exec): Remove dir_fd parameter; don't fchdir to
2091         that.  Call restore_cwd instead (passing a saved_cwd* parameter
2092         which replaced dir_fd).
2093         (launch): Remove references to execp->use_current_dir.
2094         (launch): Change references to execp->dir_fd to execp->wd_for_exec.
2095         * find/parser.c: Correct indentiation of declaration of
2096         insert_exec_ok and remove the obsolete dir_fd parameter.
2097         (parse_exec): Don't pass the dir_fd parameter to insert_exec_ok.
2098         (parse_execdir): Likewise.
2099         (parse_ok): Likewise.
2100         (parse_okdir): Likewise.
2101         (insert_exec_ok): Remove obsolete dir_fd paramter.  Initialise
2102         execp->wd_for_exec, either to NULL (for -*dir) or to the
2103         initial_wd.
2104         * find/ftsfind.c: Remove get_current_dirfd.  Remove
2105         complete_execdirs_cb.
2106         (consider_visiting): Call complete_pending_execdirs directly.
2107         (main): Call record_initial_cwd to record the initial working
2108         directory, early on.  Don't initialise starting_dir or
2109         starting_desc, they have been removed.
2110         * find/finddata.c: Include save-cwd.h.  Remove starting_dir and
2111         starting_desc. Add new global variable initial_wd.  It is a struct
2112         saved_wd* and represents find's initial working directory.
2113         * find/find.c: Include save-cwd.h.
2114         (main): Call record_initial_cwd in order to initialise the
2115         global variable initial_wd  Don't set starting_desc and
2116         starting_dir, since those variables have been removed.
2117         (safely_chdir): Don't pass an fd to complete_pending_execdirs.
2118         (chdir_back): Remove the safety check (since we are using fchdir
2119         and in any case no longer have all the data that the existing
2120         wd_sanity_check function wants).
2121         (do_process_top_dir): Don't pass an fd to
2122         complete_pending_execdirs.
2123         (process_dir): Likewise.
2124         * find/defs.h (struct exec_val): Remove use_current_dir and
2125         dir_fd.  Replace with wd_for_exec, which is a struct saved_wd*.
2126         (get_start_dirfd): Remove prototype.
2127         (get_current_dirfd): Remove prototype.
2128         (complete_pending_execdirs): No longer takes dir_fd parameter.
2129         (record_initial_cwd): Add prototype.
2130         (is_exec_in_local_dir): Add prototype.
2131         (options): Declare.
2132         (initial_wd): Add declaration.  It is a struct saved_wd* and
2133         represents find's initial working directory.
2134         (starting_dir): Remove declaration of global variable.
2135         (starting_desc): Remove declaration of global variable.
2136         * import-gnulib.config (modules): Import module save-cwd.
2137
2138 2010-04-10  James Youngman  <jay@gnu.org>
2139
2140         Add a test which checks $CWD for find -execdir {} +/;
2141         * find/testsuite/find.gnu/execdir-multiple.exp: New test; verifies
2142         that for -execdir +, all the execs occur with the correct working
2143         directory.
2144         * find/testsuite/find.gnu/execdir-multiple.xo: Expected output for
2145         this test.
2146         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test.
2147         (EXTRA_DIST_XO): Add the expected output file.
2148         * find/testsuite/config/unix.exp (mkdir): Create proc "mkdir"
2149         which creates a directory.
2150         * find/testsuite/find.gnu/execdir-pwd1.exp: New test.
2151         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
2152         execdir-pwd1.exp.
2153
2154 2010-04-11  James Youngman  <jay@gnu.org>
2155
2156         Fix syntax checks problems for check sc_unmarked_diagnostics.
2157         * find/tree.c (get_pred_cost): Clarify an error message and mark
2158         it for translation.
2159
2160         Fix false positives for syntax check sc_prohibit_test_minus_ao.
2161         * .x-sc_prohibit_test_minus_ao: Add all the DejaGnu scripts to the
2162         list of exceptions to the 'test C1 -a C2' syntax check, since they
2163         are not actually shell scripts.
2164
2165         Remove trailing blank lines.
2166         * .x-sc_prohibit_empty_lines_at_EOF: Add list of exceptions to the
2167         no-blank-lines-at-EOF syntax check.
2168         * doc/regexprops.texi: Remove empty lines at the end of the file.
2169         * find/finddata.c: Likewise.
2170         * find/fstype.c: Likewise.
2171         * find/testsuite/excuses.txt: Likewise.
2172         * find/testsuite/find.gnu/access.exp: Likewise.
2173         * find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise.
2174         * find/testsuite/find.gnu/posix-perminvalid.exp: Likewise.
2175         * find/testsuite/find.gnu/samefile-missing.exp: Likewise.
2176         * find/testsuite/find.gnu/samefile-p-brokenlink.exp: Likewise.
2177         * find/testsuite/find.gnu/sv-bug-17490.exp: Likewise.
2178         * find/testsuite/find.gnu/sv-bug-18222.exp: Likewise.
2179         * find/testsuite/find.posix/bracket-depth.exp: Likewise.
2180         * find/testsuite/find.posix/empty-parens.exp: Likewise.
2181         * find/testsuite/find.posix/files-not-expressions1.exp: Likewise.
2182         * find/testsuite/find.posix/files-not-expressions2.exp: Likewise.
2183         * find/testsuite/find.posix/files-not-expressions3.exp: Likewise.
2184         * find/testsuite/find.posix/group-empty.exp: Likewise.
2185         * find/testsuite/find.posix/user-empty.exp: Likewise.
2186         * find/testsuite/find.posix/user-missing.exp: Likewise.
2187         * lib/extendbuf.c: Likewise.
2188         * lib/fdleak.c: Likewise.
2189         * lib/fdleak.h: Likewise.
2190         * lib/findutils-version.h: Likewise.
2191         * lib/gnulib-version.h: Likewise.
2192         * lib/printquoted.c: Likewise.
2193         * lib/regextype.c: Likewise.
2194         * lib/safe-atoi.c: Likewise.
2195         * locate/testsuite/config/unix.exp: Likewise.
2196         * locate/testsuite/locate.gnu/exists1.exp: Likewise.
2197         * locate/testsuite/locate.gnu/exists2.exp: Likewise.
2198         * locate/testsuite/locate.gnu/exists3.exp: Likewise.
2199         * locate/testsuite/locate.gnu/ignore_case1.exp: Likewise.
2200         * locate/testsuite/locate.gnu/ignore_case2.exp: Likewise.
2201         * locate/testsuite/locate.gnu/ignore_case3.exp: Likewise.
2202         * locate/testsuite/locate.gnu/notexists1.exp: Likewise.
2203         * locate/testsuite/locate.gnu/notexists2.exp: Likewise.
2204         * locate/testsuite/locate.gnu/notexists3.exp: Likewise.
2205         * locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise.
2206         * m4/Makefile.am: Likewise.
2207         * m4/nullsort.m4: Likewise.
2208         * xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise.
2209         * xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise.
2210
2211         After-the-fact change to NEWS for 4.5.8: fixed bug 27221.
2212         * NEWS: Mention that release 4.5.8 also fixed bug #27221
2213         (symlink_loop check broken by FTS_CWDFD), though the NEWS file in
2214         that release omitted to say so.
2215
2216         After-the-fact change to NEWS for 4.5.8: fixed bug 27974.
2217         * NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use
2218         gnulib's xreadlinkat support), though the NEWS file in that
2219         release omitted to say so.
2220
2221 2010-04-10  James Youngman  <jay@gnu.org>
2222
2223         * import-gnulib.config (gnulib_version): Update to current gnulib
2224         head.
2225
2226 2010-04-09  James Youngman  <jay@gnu.org>
2227
2228         * find/parser.c (parse_samefile): Use open_cloexec to open the
2229         reference file, so that we don't leak a file descriptor.
2230
2231 2010-04-09  Roberto Reale  <rreale@iol.it> (tiny change)
2232
2233         * find/parser.c (parse_samefile): Since collect_arg_stat_info
2234         increments *arg_ptr, argv[*arg_ptr] is often NULL.   Use filename
2235         instead, as that's the variable in which we store the name of our
2236         file.  The purpose of the fd was only to attempt to keep the inode
2237         number stable on systems that don't really have inode numbers, so
2238         this change should have no functional effect on POSIX systems.
2239
2240 2010-04-08  James Youngman  <jay@gnu.org>
2241
2242         Adopt the use of the gnulib module readlink.
2243         * import-gnulib.config (modules): Add readlink.
2244
2245         Adopt the use of the gnulib module isblank.
2246         (modules): Add isblank.
2247
2248         Adopt the use of the gnulib module faccessat.
2249         * import-gnulib.config (modules): Add faccessat.
2250         * find/pred.c (struct access_check_args): Delete.
2251         (access_callback): Delete.
2252         (can_access): Delete.
2253         (pred_executable): Use faccessat.
2254         (pred_readable): Likewise.
2255         (pred_writable): Likewise.
2256
2257         Adopt (explicitly) the use of the gnulib module dirent-safer.
2258         * import-gnulib.config (modules): Add dirent-safer; we were
2259         previously transitively importing this module, but we are now
2260         importing it directly.
2261         * lib/savedirinfo.c: Include opendir-safer.h.
2262         (xsavedir): Call opendir_safer instead of opendir.
2263
2264         Adopt the use of the gnulib module d-type.
2265         * import-gnulib.config (modules): Import the d-type module.
2266         * configure.ac: Remove old struct dirent.d_type detection logic
2267         (since we now use the gnulib macro from the d-type module for
2268         this).
2269         * find/parser.c (parse_version): Use HAVE_STRUCT_DIRENT_D_TYPE
2270         (since the d-ino module still defines it) but remove references to
2271         the macro USE_STRUCT_DIRENT_D_TYPE, since it's not defined and not
2272         needed.
2273         * lib/savedirinfo.c: Use HAVE_STRUCT_DIRENT_D_TYPE but ignore
2274         USE_STRUCT_DIRENT_D_TYPE.
2275         (xsavedir): Unconditionally initialise
2276         internal[result->size].type_info so that we don't have untested
2277         code (HAVE_STRUCT_DIRENT_D_TYPE is defined on my system).
2278
2279         Move on from 4.5.8.
2280         * configure.ac: Bump the version number to 4.5.9-git.
2281         * NEWS: Likewise.
2282
2283 2010-04-07  James Youngman  <jay@gnu.org>
2284
2285         Prepare to release findutils-4.5.8.
2286         * configure.ac: Update version number in AC_INIT.
2287         * NEWS: Update version number and release date.
2288
2289         Depend on gnulib modules appropriate to features we already use.
2290         * import-gnulib.config (modules): Add c-casestr, errno, fdopendir,
2291         fflush, getdelim, gettimeofday, locale, modf, perror, snprintf,
2292         stat, stdarg, stddef, stdio, stdlib, string, strpbrk, sys_time,
2293         sys_wait.
2294         Also add comments about other modules we may also want to use
2295         which would require other code changes (for example dirent-safer).
2296         * find/Makefile.am (LDADD): Add  $(LIB_EACCESS) $(LIB_SELINUX)
2297         $(MODF_LIBM) which are needed by gnulib modules we now depend on.
2298
2299         More stat/xstat cleanup.
2300         * find/parser.c (estimate_fstype_success_rate): Change the name of
2301         the variable "dir" to "the_root_dir" to emphasise that it doesn't
2302         matter that we're calling stat rather than options.xstat.
2303         * find/ftsfind.c (symlink_loop): Call options.xstat instead of
2304         stat/lstat, because options.xstat takes account of
2305         state.cwd_dir_fd.
2306
2307         Fix Savannah bug 29460, -printf %Y fails in $CWD-dependent way
2308         * find/pred.c (do_fprintf): Use optionl_stat and optionp_stat
2309         instead of stat and lstat, because the first two functions are
2310         aware of state.cwd_dir_fd.
2311         * find/testsuite/find.gnu/printf-nonlocal-symlink.exp: A new test
2312         case for this bug.
2313         * find/testsuite/find.gnu/printf-nonlocal-symlink.xo: Expected
2314         output for this test.
2315         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test
2316         case.
2317         (EXTRA_DIST_XO): Add the expected-output file.
2318         * NEWS: Mention this fix.
2319
2320         * lib/strspn.c: Delete this unused file.
2321
2322         Update the maintenance manual.
2323         * doc/find-maint.texi: Update the maintenance manual to take into
2324         account the fact that we uniformly use git rather than CVS.  Point
2325         out the new version tag format.  Mention "make coverage".
2326         README-CVS is now called README-hacking.  Update the URL for the
2327         Translation Project.
2328
2329         Eliminate some obsolete code.
2330         * locate/locate.c (search_one_database): Remove obsolete code
2331         (alternative size for procdata.pathsize).
2332         * lib/buildcmd.c (get_line_max): Remove obsolete function.
2333
2334         Remove obsolete code from savedirinfo.c.
2335         * lib/savedirinfo.c (new_savedirinfo): Rename new_savedirinfo to
2336         savedirinfo.
2337         (old_savedirinfo): Remove obsolete function body.
2338
2339         Support extendbuf buffers larger than SIZE_MAX/2.
2340         * lib/extendbuf.c (xextendbuf): New function; extends the buffer,
2341         but calls xalloc_die on failure.  On the the other hand, extendbuf
2342         returns NULL on failure.
2343         (decide_size): If wanted>SIZE_MAX/2, return wanted.  This means
2344         that for very large buffers, performance on repeated extension
2345         degrades from linear to quadratic (instead of just failing at that
2346         point, as before).
2347         * lib/savedirinfo.c (xsavedir): Use xextendbuf rather than
2348         extendbuf, now that there is a difference in semantics.
2349         * find/fstype.c (get_mounted_filesystems): If extendbuf returns
2350         NULL, fail (by returning NULL ourselves).
2351         (get_mounted_devices):  Likewise.
2352
2353         * po/vi.po: Update Vietnamese translation.
2354         * NEWS: Mention this change.
2355
2356 2010-04-05  James Youngman  <jay@gnu.org>
2357
2358         Use set_program_name in regexprops.
2359         * lib/regexprops.c: Include "progname.h".  Update function
2360         defintions to have a newline before the function name (to comply
2361         with the GNU coding standard).  Use set_program_name.
2362
2363 2010-04-06  James Youngman  <jay@gnu.org>
2364
2365         Fix several merge errors.
2366         * find/defs.h (struct state): Correct type of
2367         already_issued_stat_error_msg from boolean to bool.
2368         * find/util.c (report_file_err): Likewise with parameter
2369         is_target_file.
2370         * find/pred.c: Include "areadlink.h".
2371         (do_fprintf): nonfatal_file_error should be
2372         nonfatal_target_file_error.
2373         (match_lname): Likewise.
2374
2375         Update some translations.
2376         * po/cs.po: Update Czech translation.
2377         * po/nl.po: Update Dutch translation.
2378         * po/pl.po: Update Polish translation.
2379         * po/ru.po: Update Russian translation.
2380
2381         * import-gnulib.config (modules): Use the getopt-gnu module from
2382         gnulib rather than the (obsolete) getopt module.
2383
2384         Remove form-feeds.
2385         * find/find.c: Remove form-feed characters.
2386         * find/ftsfind.c: Likewise.
2387         * find/parser.c: Likewise.
2388         * find/pred.c: Likewise.
2389         * find/tree.c: Likewise.
2390         * find/util.c: Likewise.
2391         * locate/locate.c: Likewise.
2392         * xargs/xargs.c: Likewise.
2393
2394 2010-04-05  James Youngman  <jay@gnu.org>
2395
2396         Use bool instead of the previous typedef boolean.
2397         * find/defs.h: Don't create typedef "boolean"; use the standard
2398         type bool.  Update other declarations accordingly.
2399         * find/find.c: Update declarations and function definitions to use
2400         bool.
2401         * find/ftsfind.c: Likewise.
2402         * find/parser.c: Likewise.
2403         * find/pred.c: Likewise.
2404         * find/tree.c: Likewise.
2405         * find/util.c: Likewise.
2406         * locate/locate.c: Likewise.
2407         * xargs/xargs.c: Likewise.
2408
2409         Make use of gnulib's areadlinkat.
2410         * lib/listfile.c: #include "areadlink.h" but not "dircallback.h",
2411         since we no longer need to use get_link_name_at.
2412         Don't include xalloc.h, since we don't need it.
2413         (get_link_name_at): Delete.
2414         (get_link_name_cb): Delete.
2415         (get_link_name): Delete.
2416         * lib/listfile.h: Remove declaration of get_link_name_at.
2417         * find/pred.c (match_lname): Use areadlinkat instead of
2418         get_link_name_at.
2419
2420         Use bool instead of the previous typedef boolean.
2421         * find/defs.h: Don't create typedef "boolean"; use the standard
2422         type bool.  Update other declarations accordingly.
2423         * find/find.c: Update declarations and function definitions to use
2424         bool.
2425         * find/ftsfind.c: Likewise.
2426         * find/parser.c: Likewise.
2427         * find/pred.c: Likewise.
2428         * find/tree.c: Likewise.
2429         * find/util.c: Likewise.
2430         * locate/locate.c: Likewise.
2431         * xargs/xargs.c: Likewise.
2432
2433         Don't issue an error message twice for the same target file.
2434         * find/defs.h (struct state): New member,
2435         already_issued_stat_error_msg, used to de-duplicate error
2436         messages.  If it is true, we already issued an error message for
2437         the current target file.
2438         Declare fatal_target_file_error, fatal_nontarget_file_error,
2439         nonfatal_target_file_error, nonfatal_nontarget_file_error.
2440         Between them, they replace fatal_file_error and
2441         nonfatal_file_error.  The *target_file_error versions are
2442         de-duplicated and the nontarget_file_error_versions are not.
2443         * find/util.c (nonfatal_nontarget_file_error): Implement.
2444         (fatal_nontarget_file_error): Implement.
2445         (nonfatal_target_file_error): Implement.
2446         (fatal_target_file_error): Implement.
2447         (fatal_file_error): Remove.
2448         (nonfatal_file_error): Remove.
2449         (error_severity): Define error_severity (moved from ftsfind.c)
2450         (get_statinfo): Call nonfatal_target_file_error in order to avoid
2451         a duplicate message.  ALso call error_severity after a different
2452         call to error to preserve the constraint that we exit with a
2453         nonzero status if we issue a diagnostic.
2454         (cleanup): Call nonfatal_nontarget_file_error instead of
2455         nonfatal_file_error.
2456         * find/tree.c (build_expression_tree): Initialise
2457         state.already_issued_stat_error_msg.
2458         * find/find.c (main): Initialise state.already_issued_stat_error_msg.
2459         (wd_sanity_check): Call fatal_target_file_error instead of
2460         fatal_file_error.
2461         (chdir_back): Call fatal_nontarget_file_error instead of
2462         fatal_file_error.
2463         (process_path): Initialise state.already_issued_stat_error_msg.
2464         * find/ftsfind.c (consider_visiting): Call
2465         nonfatal_target_file_error instead of calling error directly.
2466         (find): Call error_severity to ensure exit status is nonzero after
2467         a call to error.
2468         (main): Initialise state.already_issued_stat_error_msg.
2469         (error_severity): Move to util.c.
2470         * find/parser.c (collect_arg_stat_info): Call
2471         fatal_target_file_error instead of fatal_file_error.
2472         (parse_newerXY): Likewise.
2473         (parse_samefile): Likewise.
2474         (parse_samefile): Likewise.
2475         (open_output_file): Call fatal_nontarget_file_error instead of
2476         fatal_file_error.
2477         * find/pred.c (checked_fprintf): Likewise.
2478         (checked_print_quoted): Likewise.
2479         (checked_fwrite): Likewise.
2480         (checked_fflush): Likewise.
2481         * find/sharefile.c (entry_free): Likewise.
2482
2483 2010-04-04  Martin von Gagern  <Martin.vGagern@gmx.net>
2484
2485         Fix Savannah bug #27213: avoid failed assertions for
2486         non-executable directories.
2487         (consider_visiting): Continue (after issuing an error message)
2488         even if ent->fts_info == FTS_NS.
2489         * find/util.c (get_statinfo): If we cannot stat the file, issue a
2490         diagnostic, but continue anyway.
2491         * find/ftsfind.c (consider_visiting): Don't assert-fail if
2492         ent->fts_info == FTS_NSOK.  Don't assert-fail if state.type is
2493         nonzero.
2494
2495 2010-04-04  James Youngman  <jay@gnu.org>
2496
2497         Fix Savannah bug #29435: fd_is_cloexec does not work on Fedora
2498         buildhosts.
2499         Fix open_cloexec on hosts which ignore O_CLOEXEC (i.e. old kernels).
2500         * lib/fdleak.c (o_cloexec_works): New function, detects whether
2501         the open flag O_CLOEXEC has any effect.
2502         (open_cloexec): Call o_cloexec_works, just once, to find out
2503         whether O_CLOEXEC is effective.  If not, set the close-on-exec
2504         flag on fds by calling set_cloexec_flag.
2505         * NEWS: Mention this bugfix.
2506
2507         Use bool instead of the previous typedef boolean.
2508         * find/defs.h: Don't create typedef "boolean"; use the standard
2509         type bool.  Update other declarations accordingly.
2510         * find/find.c: Update declarations and function definitions to use
2511         bool.
2512         * find/ftsfind.c: Likewise.
2513         * find/parser.c: Likewise.
2514         * find/pred.c: Likewise.
2515         * find/tree.c: Likewise.
2516         * find/util.c: Likewise.
2517         * locate/locate.c: Likewise.
2518         * xargs/xargs.c: Likewise.
2519
2520 2010-04-05  Jim Meyering  <meyering@redhat.com>
2521
2522         frcode: avoid link failure due to multiple program_name definition
2523         * locate/frcode.c: Include "progname.h".
2524         (program_name): Remove two declarations.
2525         Now the definition comes from gnulib.
2526
2527 2010-04-04  James Youngman  <jay@gnu.org>
2528
2529         Don't return int to represent a boolean value.
2530         * find/defs.h: fd_leak_check_is_enabled should return boolean, not
2531         int.  Likewise following_links and digest_mode.
2532         * lib/buildcmd.h: Likewise for bc_args_exceed_testing_limit.
2533         Also #include <stdbool.h>.
2534         * find/util.c (fd_leak_check_is_enabled): Now returns boolean.
2535         * find/util.c (following_links): Likewise.
2536         * find/util.c (digest_mode): Likewise.
2537         * lib/buildcmd.c (bc_args_exceed_testing_limit): Likewise.
2538         * find/find.c (get_current_dirfd): Indent definition correctly.
2539         * find/util.c (get_start_dirfd): Likewise.
2540
2541         Fix Savannah bug #29435: fd_is_cloexec does not work on Fedora
2542         buildhosts.
2543         Fix open_cloexec on hosts which ignore O_CLOEXEC (i.e. old kernels).
2544         * lib/fdleak.c (o_cloexec_works): New function, detects whether
2545         the open flag O_CLOEXEC has any effect.
2546         (open_cloexec): Call o_cloexec_works, just once, to find out
2547         whether O_CLOEXEC is effective.  If not, set the close-on-exec
2548         flag on fds by calling set_cloexec_flag.
2549         * NEWS: Mention this bugfix.
2550
2551 2010-04-03  James Youngman  <jay@gnu.org>
2552
2553         Move on from 4.5.7.
2554         * configure.ac: Update version number again, to 4.5.8-git.
2555         * NEWS: Likewise.
2556
2557         Prepare for release of findutils-4.5.7.
2558         * configure.ac: Update version number.
2559         * NEWS: Mention the translation changes.  Update version number.
2560
2561         Accelerate find/testsuite/find.posix/exec-nogaps.exp.
2562         * find/testsuite/config/unix.exp (optimisation_levels_to_test):
2563         New function, decides which optimisation levels we shuld run find
2564         at for the current test.  Set $OPTIMISATION_LEVELS to control
2565         this.
2566         (find_start): Call optimisation_levels_to_test to determine which
2567         optimisation levels to run find at.
2568         * find/testsuite/find.posix/exec-nogaps.exp: Run the test only at
2569         -O3 (but for both oldfind and ftsfind).
2570
2571         Correct the format of copyright statements, and add 2010.
2572         * lib/fdleak.h: Correct the format of the copyright statement.
2573         * po/vi.po: Likewise.
2574         * lib/safe-atoi.h: Likewise.
2575         * locate/locate.c: Likewise.
2576         * po/ca.po: Likewise.
2577         * po/gl.po: Likewise.
2578         * po/fi.po: Likewise.
2579         * po/it.po: Likewise.
2580         * po/findutils.pot: Fill in the boilerplate in the header.
2581
2582         Update copyright years.
2583         * find/defs.h: Update copyright years.
2584         * find/finddata.c: Likewise.
2585         * find/sharefile.h: Likewise.
2586         * lib/buildcmd.h: Likewise.
2587         * lib/dircallback.h: Likewise.
2588         * lib/extendbuf.h: Likewise.
2589         * lib/findutils-version.h: Likewise.
2590         * lib/gnulib-version.h: Likewise.
2591         * lib/listfile.h: Likewise.
2592         * lib/nextelem.c: Likewise.
2593         * lib/nextelem.h: Likewise.
2594         * lib/printquoted.h: Likewise.
2595         * lib/regextype.h: Likewise.
2596         * lib/savedirinfo.h: Likewise.
2597         * lib/strspn.c: Likewise.
2598         * lib/waitpid.c: Likewise.
2599         * locate/locatedb.h: Likewise.
2600         * m4/mkinstalldirs.m4: Likewise.
2601         * m4/noreturn.m4: Likewise.
2602         * build-aux/check-testfiles.sh: Likewise.
2603         * build-aux/src-sniff.py: Likewise.
2604         * import-gnulib.sh: Likewise.
2605         * locate/testsuite/config/unix.exp: Likewise.
2606         * locate/updatedb.sh: Likewise.
2607         * xargs/testsuite/config/unix.exp: Likewise.
2608
2609         Add the update-copyright gnulib module.
2610         * import-gnulib.config (maintainer_modules): Separate out the
2611         modules primarily useful for maintainer activities.  Add
2612         'update-copyright' to this.
2613         * build-aux/.cvsignore: Ignore update-copyright, since it's
2614         installed by gnulib.
2615         * build-aux/.gitignore: Likewise.
2616
2617         Ignore generated files for the convenience of non-VPATH users.
2618         * lib/.gitignore: Ignore object and archive files.
2619         * find/.gitignore: Likewise.
2620         * locate/.gitignore: Ignore object files.
2621
2622 2010-04-02  James Youngman  <jay@gnu.org>
2623
2624         Check for accidental modifications to the wrong section of the
2625         NEWS file.
2626         * cfg.mk (local-checks-to-skip): Remove sc_immutable_news.
2627         (old_NEWS_hash): add existing hash (from "make update-NEWS-hash").
2628
2629         * cfg.mk: Append the names of checks to skip to
2630         local-checks-to-skip rather than inventing 7 new variables.
2631
2632         Don't include quote.h/quotearg.h where it is not used.
2633         * find/find.c: Don't include "quote.h", it's not used.
2634         * find/ftsfind.c: Likewise.
2635         * find/parser.c: Likewise.
2636         * locate/locate.c: Likewise.
2637         * locate/word_io.c: Likewise.
2638         * cfg.mk (skip_dunno): Enable check sc_prohibit_quote_without_use.
2639         * find/find.c: Don't include "quotearg.h", it's not used.
2640         * lib/fdleak.c: Likewise.
2641
2642         Use set_program_name() to remember the programs' names.
2643         * cfg.mk *skip(defer): Enable sc_program_name.  Remove the
2644         now-unused variable skip_defer.
2645         * find/ftsfind.c: Include "program_name.h".
2646         (main): Call set_program_name.
2647         * find/find.c: Include "program_name.h".
2648         (main): Call set_program_name.
2649         * locate/locate.c: Include "program_name.h".
2650         (dolocate): Call set_program_name.
2651         Remove global variable program_name.
2652         * locate/bigram.c: Include "program_name.h".
2653         Remove global variable "program_name".
2654         (main): Call set_program_name.
2655         * locate/frcode.c: Include "program_name.h".
2656         (main): Call set_program_name.
2657         * xargs/xargs.c (main): Call set_program_name.
2658         Include "program_name.h".
2659         Remove global variable program_name.
2660         * find/finddata.c: Remove global variable program_name.
2661         * find/defs.h: No longer need declaration of program_name.
2662         * find/util.c: Include "program_name.h".
2663
2664         Use named constants for xargs exit codes.
2665         * xargs/xargs.c (child_error): Use EXIT_SUCCESS instead of 0.
2666         (enum XargsStatusValues): introduce named constants for the
2667         various things that cause speicific exit codes.
2668         (enum  ClientStatusValues): Also introduce named constants for the
2669         child's exit status.
2670         (get_char_oct_or_hex_escape): Use EXIT_FAILURE instead of 1.
2671         (get_input_delimiter): Likewise.
2672         (main): Likewise.
2673         (read_line): Likewise.
2674         (read_string): Likewise.
2675         (print_args): Likewise.
2676         (xargs_do_exec): Likewise.
2677         (wait_for_proc): Likewise.
2678         (wait_for_proc): Use enum XargsStatusValues for exit codes.
2679         (parse_num): Use EXIT_FAILURE instead of 1.
2680
2681         Avoid using magic numbers as exit statuses.
2682         * cfg.mk (skip_defer): Enable sc_prohibit_magic_number_exit.
2683         * doc/find-maint.texi (Security): Avoid error (1, ...) in the
2684         example patch.
2685         * find/find.c (main): Use exit status EXIT_FAILURE instead of 1.
2686         (wd_sanity_check): Likewise.
2687         (safely_chdir_lstat): Likewise.
2688         (process_dir): Likewise.
2689         * find/fstype.c (must_read_fs_list): Likewise.
2690         * find/ftsfind.c (main): Likewise.
2691         (main): Likewise.
2692         * find/parser.c (check_option_combinations): Use exit status
2693         EXIT_FAILURE instead of 1.
2694         (parse_group): Likewise.
2695         (parse_help): Use exit status EXIT_SUCCESS instead of 0.
2696         (parse_version): Likewise.
2697         (fnmatch_sanitycheck): Use exit status EXIT_FAILURE instead of 1.
2698         (insert_depthspec): Likewise.
2699         (parse_newerXY): Likewise.
2700         (non_posix_mode): Likewise.
2701         (parse_perm): Likewise.
2702         (insert_regex): Likewise.
2703         (parse_size): Likewise.
2704         (parse_show_control_chars): Likewise.
2705         (parse_used): Likewise.
2706         (parse_user): Likewise.
2707         (parse_context): Likewise.
2708         (insert_type): Likewise.
2709         (insert_fprintf): Likewise.
2710         (make_segment): Likewise.
2711         (check_path_safety): Likewise.
2712         (new_insert_exec_ok): Likewise.
2713         (get_relative_timestamp): Likewise.
2714         (parse_time): Likewise.
2715         * find/tree.c (get_expr): Use exit status EXIT_FAILURE instead of 1.
2716         (scan_rest): Likewise.
2717         (get_pred_cost): Likewise.
2718         (get_pred_cost): Likewise.
2719         (build_expression_tree): Likewise.
2720         (get_new_pred_chk_op): Likewise.
2721         * find/pred.c (launch): Use exit status EXIT_FAILURE instead of 1.
2722         * find/util.c (process_debug_options): Use exit status
2723         EXIT_SUCCESS instead of 0.
2724         (process_optimisation_option): Use exit status EXIT_FAILURE
2725         instead of 1.
2726         (set_option_defaults): Likewise.
2727         * lib/buildcmd.c (exceeds): Likewise.
2728         (bc_do_exec): Likewise.
2729         (bc_push_arg): Likewise.
2730         * lib/nextelem.c: Remove test code.
2731         * lib/safe-atoi.c (safe_atoi): Use exit status EXIT_FAILURE
2732         instead of 1.
2733         * lib/regextype.c (get_regex_type): Use exit status EXIT_FAILURE
2734         instead of 1.  Include <stdlib.h>, for EXIT_FAILURE.
2735         * locate/locate.c (set_max_db_age): Use exit status EXIT_FAILURE
2736         instead of 1.
2737         (set_max_db_age): Likewise.
2738         (toolong): Likewise.
2739         (visit_locate02_format): Likewise.
2740         (search_one_database): Likewise.
2741         (drop_privs): Likewise.
2742         * locate/frcode.c (get_seclevel): Use exit status EXIT_FAILURE
2743         instead of 1.
2744         (outerr): Likewise.
2745         (main): Likewise.
2746         * locate/code.c (inerr): Use exit status EXIT_FAILURE instead of
2747         1.
2748         (outerr): Likewise.
2749         * locate/word_io.c (getword): Use exit status EXIT_FAILURE instead of 1.
2750
2751         Avoid sc_prohibit_stat_st_blocks check, since it is broken.
2752         * cfg.mk (skip_broken_checks): Skip sc_prohibit_stat_st_blocks.
2753
2754         Enable syntax checker sc_the_the, detecting doubled 'the'.
2755         * cfg.mk (false_positives): Enable syntax checker sc_the_the
2756         * build-aux/src-sniff.py (checkers): Avoid false positive with
2757         sc_the_the.
2758
2759         Avoid false positives for sc_prohibit_atoi_atof.
2760         * find/util.c (set_option_defaults): Avoid false positive with
2761         sc_prohibit_atoi_atof.
2762         (check_nofollow): Likewise.
2763
2764         Avoid sscanf.
2765         * lib/fdleak.c (get_proc_max_fd): Use safe_atoi to do string to
2766         int conversion, instead of sscanf.  Skip '.' and '..'.
2767         * cfg.mk (skip_defer): Enable the sc_prohibit_atoi_atof check.
2768
2769         * po/POTFILES.in: Remove source files we don't maintain any more.
2770         Also remove files which exist but have no translated messages
2771         (dircallback.c, listfile.c).
2772         * lib/listfile.c: Don't include libintl, since there are no
2773         translated messages in this file.
2774         * lib/dircallback.c: Likewise.
2775
2776         Move safe_atoi out into a separate module.
2777         * find/parser.c: Include "safe-atoi.h".  Remove the body of safe_atoi.
2778         (parse_group): pass options.err_quoting_style to safe_atoi.
2779         (insert_depthspec): Likewise.
2780         (parse_user): Likewise.
2781         * lib/safe-atoi.h: New file.
2782         * lib/safe-atoi.c: New file.  Add parameter for quoting style (to
2783         avoid an external reference to the "options"struct).
2784         * lib/Makefile.am (libfind_a_SOURCES): Add safe-atoi.c and
2785         safe-atoi.h.
2786
2787         Avoid false positives for the sc_prohibit_test_minus_ao syntax check.
2788         * doc/find.texi (Updating A Timestamp File): Work around a syntax
2789         check designed to prevent the use of "test X -a Y".
2790         * find/find.1: Likewise.
2791
2792         * find/ftsfind.c: We don't use anything from xalloc.h, so don't
2793         #include it.
2794
2795         Eliminate some unused function result warnings.
2796         * lib/unused-result.h: New file, defines function attribute macro
2797         __attribute_warn_unused_result__.
2798         * lib/Makefile.am (EXTRA_DIST): Add unused-result.h.
2799         * find/ftsfind.c (find): Issue a diagnostic if fts_close fails,
2800         change return type to bool and return false for this case.  Add
2801         __warn_unused_result__ attribute.
2802         (process_all_startpoints): Likewise (except no need for second
2803         diagnostic).
2804         (main): If process_all_startpoints failed, don't do the cleanup
2805         operations because we don't know what subdirectory we're in.
2806
2807         * find/util.c (fd_leak_check_is_enabled): Avoid implicit
2808         pointer-to-int conversion.
2809         * lib/buildcmd.c: #include <stdlib.h> for declaration of free.
2810
2811         Avoid false positives for the sc_prohibit_test_minus_ao syntax check.
2812         * doc/find.texi (Updating A Timestamp File): Work around a syntax
2813         check designed to prevent the use of "test X -a Y".
2814         * find/find.1: Likewise.
2815
2816         * find/ftsfind.c: We don't use anything from xalloc.h, so don't
2817         #include it.
2818
2819         Eliminate some unused function result warnings.
2820         * lib/unused-result.h: New file, defines function attribute macro
2821         __attribute_warn_unused_result__.
2822         * lib/Makefile.am (EXTRA_DIST): Add unused-result.h.
2823         * find/ftsfind.c (find): Issue a diagnostic if fts_close fails,
2824         change return type to bool and return false for this case.  Add
2825         __warn_unused_result__ attribute.
2826         (process_all_startpoints): Likewise (except no need for second
2827         diagnostic).
2828         (main): If process_all_startpoints failed, don't do the cleanup
2829         operations because we don't know what subdirectory we're in.
2830
2831         * find/util.c (fd_leak_check_is_enabled): Avoid implicit
2832         pointer-to-int conversion.
2833         * lib/buildcmd.c: #include <stdlib.h> for declaration of free.
2834
2835         Fix some space-followed-by-tab sequences.
2836         * NEWS: Change space-tab sequences to just spaces.
2837         * build-aux/check-testfiles.sh (main): Likewise
2838         * build-aux/src-sniff.py (checkers): Likewise.
2839         * find/Makefile.am: Likewise.
2840         * find/testsuite/find.posix/sv-bug-25359.exp: Likewise.
2841         * import-gnulib.sh (check_merge_driver): Likewise.
2842         * m4/withfts.m4 (FIND_WITH_FTS): Likewise.
2843         * cfg.mk (false_positives): Explain why we can't enable the
2844         sc_space_tab check (xargs .xo test files).
2845
2846         * cfg.mk: Explain that we cannot enable the sc_texinfo_acronym
2847         syntax check right now, since the perm.texi file uses
2848         @acronym{GNU} but we try to keep that in sync. with coreutils.
2849
2850         Mark error messages for translation.
2851         * find/parser.c (safe_atoi): Likewise.
2852         * find/pred.c (pred_context): Likewise.
2853         (do_fprintf): Likewise.
2854         * xargs/xargs.c (xargs_do_exec): Translate error message.
2855         (xargs_do_exec): Likewise.
2856         * lib/buildcmd.c (exceeds): Likewise.
2857
2858         Add customisation of the behaviour of "make syntax-check".
2859         * cfg.mk: New file; configuration file for the maintainer-makefile
2860         provided by gnulib.
2861
2862         * import-gnulib.config (modules): Add maintainer-makefile.
2863
2864         Various coding standard fixes.
2865         * m4/withfts.m4: Quote the first argument of AC_DEFINE.
2866         * lib/regextype.c: Don't use HAVE_CONFIG_H.
2867         * doc/find-maint.texi: Remove RCS keywords (they were in an
2868         example security vulnerability announcement).
2869
2870         Don't define S_IS*; include <sys/stat.h> instead.
2871         * lib/modetype.h: Remove (all it does is define S_IS*).
2872         * lib/Makefile.am (EXTRA_DIST): Remove modetype.h.
2873         * lib/listfile.c: Don't define S_IS* macros.
2874         * find/pred.c: Don't include "modetype.h".
2875         * find/parser.c: Likewise.
2876         * find/ftsfind.c: Likewise.
2877         * find/fstype.c: Likewise.
2878         * find/find.c: Likewise.
2879
2880         * m4/withfts.m4: Quote the first argument of AC_DEFINE.
2881
2882         Coding standard fix: "Warning" should be "WARNING".
2883         * find/find.c (dirchange_is_fatal): Change "Warning" to "WARNING".
2884         * find/ftsfind.c (consider_visiting): Likewise.
2885         * find/pred.c (pred_newerXY): Likewise.
2886         * find/util.c (get_statinfo): Likewise.
2887         (hook_fstatat): Likewise.
2888         * locate/word_io.c (decode_value): Likewise.
2889         * xargs/xargs.c (main): Change "Warning" to "warning".
2890         (read_line): Change "Warning" to "WARNING".
2891         (wait_for_proc): Likewise.
2892
2893         Remove useless if conditionals before calls to 'free'.
2894         * lib/nextelem.c (next_element): Remove useless if-before-free.
2895         * lib/buildcmd.c (bc_do_exec): Likewise.
2896         * find/find.c (process_dir): Likewise.
2897
2898         * import-gnulib.sh (usage): Defeat the simple GPL version check
2899         of maint.mk, since it's trying to identify GPL2 licenses.  Since
2900         the 'rehack' script converts v2 licenses into v3, we get a false
2901         positive for v2.  So, amusingly, we use the same hack that
2902         maint.mk uses to avoid a false positive on itself: spurious
2903         quotes.
2904
2905         Switch from GNU Free Documentation License 1.2 to 1.3.
2906         * NEWS: Update GFDL version.
2907         * README-hacking: Likewise.
2908         * doc/find-maint.texi: Likewise.
2909         * lib/regexprops.c: Likewise (though the license being changed is
2910         the license for the output).
2911
2912         * NEWS: Update copyright years.
2913
2914 2010-04-01  James Youngman  <jay@gnu.org>
2915
2916         Change error (1, ...) to error (EXIT_FAILURE, ...).
2917         * find/find.c: Change error (1, ...) to error (EXIT_FAILURE, ...).
2918         * find/fstype.c: Likewise.
2919         * find/ftsfind.c: Likewise.
2920         * find/parser.c: Likewise.
2921         * find/pred.c: Likewise.
2922         * find/tree.c: Likewise.
2923         * find/util.c: Likewise.
2924         * locate/code.c: Likewise.
2925         * locate/frcode.c: Likewise.
2926         * locate/locate.c: Likewise.
2927         * locate/word_io.c: Likewise.
2928         * xargs/xargs.c: Likewise.
2929         * lib/buildcmd.c: Likewise.  Also include <stdlib.h>.
2930         * lib/regextype.c: Likewise (both).
2931
2932         Assume C89 (or C99) C headers.  Assume working <ctype.h>.
2933         * xargs/xargs.c: Unconditionally include <ctype.h>.  Assume
2934         isblank(c) is defined.  Assume memcpy() has a prototype in
2935         <string.h>.
2936         * import-gnulib.config (modules): Import gnulib's ctype module.
2937
2938         Optimise -fstype NOTUSED to -false at -O2.
2939         * find/parser.c: Include mountlist.h.
2940         (insert_false): New function, inserts a -false predicate.
2941         (parse_false): Use insert_false.
2942         (is_used_fs_type): New function, determines if any mounted
2943         filesystem is of the named type.
2944         (parse_fstype): At optimisation level 2 and above, -fstpe FOO
2945         is converted to -false if no mounted filesytem is of type FOO.
2946         * find/find.1: Document this optimisation.
2947         * doc/find.texi (Optimisation Options): Likewise.
2948         * NEWS: Mention this change.
2949
2950         Updated copyright years to add 2010.
2951         * find/find.c: Add 2010.
2952         * find/fstype.c: Add 2010.
2953         * find/ftsfind.c: Add 2010.
2954         * find/parser.c: Add 2010.
2955         * find/pred.c: Add 2010.
2956         * find/sharefile.c: Add 2010.
2957         * find/testsuite/config/unix.exp: Add 2010.
2958         * find/tree.c: Add 2010.
2959         * find/util.c: Add 2010.
2960         * locate/bigram.c: Add 2010.
2961         * locate/frcode.c: Add 2010.
2962         * xargs/xargs.c: Add 2010.
2963
2964         Coding style fixes: space after function names.
2965         * lib/buildcmd.c: Insert a space between function name and open
2966         parenthesis.
2967         * lib/dircallback.c: Likewise.
2968         * lib/extendbuf.c: Likewise.
2969         * lib/fdleak.c: Likewise.
2970         * lib/findutils-version.c: Likewise.
2971         * lib/forcefindlib.c: Likewise.
2972         * lib/listfile.c: Likewise.
2973         * lib/printquoted.c: Likewise.
2974         * lib/qmark.c: Likewise.
2975         * lib/regexprops.c: Likewise.
2976         * lib/regextype.c: Likewise.
2977         * lib/savedirinfo.c: Likewise.
2978         * locate/code.c: Likewise.
2979         * locate/frcode.c: Likewise.
2980         * locate/locate.c: Likewise.
2981         * locate/word_io.c: Likewise.
2982
2983 2010-03-31  James Youngman  <jay@gnu.org>
2984
2985         Coding style fixes: space after function names.
2986         * find/util.c: Insert a space between function name and open
2987         parenthesis.
2988         * find/ftsfind.c: Likewise.
2989         * find/fstype.c: Likewise.
2990         * find/util.c: Likewise.
2991         * find/tree.c: Likewise.
2992         * find/sharefile.c: Likewise.
2993         * find/pred.c: Likewise.
2994         * find/parser.c: Likewise.
2995         * xargs/xargs.c: Likewise.
2996
2997         Move version number on to 4.5.7-git, so that we can make test
2998         releases.
2999         * configure.ac: Update version number.
3000         * NEWS: Likewise.
3001         * Makefile.am (AUTOMAKE_OPTIONS): Return to "gnits" rules.
3002
3003         Mention additional bugfixes.
3004         * NEWS: Mention that Savannah bug #29089 was also fixed in
3005         4.5.6b.
3006
3007         Prepare for release of findutils-4.5.6b
3008         This release is identical to 4.5.6 apart from the version number
3009         and the fact that it was generated by automake version 1.11.1 in
3010         order to avoid issues with CVE-2009-4029.
3011         * configure.ac: Update version number.
3012         * NEWS: Update version number.  Mention that Savannah bug #29089
3013         was also fixed in 4.5.6b.
3014         * Makefile.am: switch to 'gnu' option ('gnits' forbids the 'b'
3015         suffix).
3016
3017 2010-03-30  James Youngman  <jay@gnu.org>
3018
3019         Prepare for release of findutils-4.5.6
3020         * configure.ac: Update version number.
3021         * NEWS: Update version number.
3022
3023         Support O_CREAT in open_cloexec.
3024         * lib/fdleak.c: Include <stdarg.h> and "cloexec.h".
3025         (open_cloexec): Support O_CREAT.  Use O_CLOEXEC if it is available.
3026         (O_CLOEXEC): #define to 0 if not already #defined.
3027         * lib/fdleak.h: Update prototype of open_cloexec to allow mode to
3028         be passed.
3029
3030         * import-gnulib.config (modules): Import modules open (for
3031         PROMOTED_MODE_T) and stdbool (for 'true').
3032
3033         Tolerate the absence of getrusage.
3034         * configure.ac: Check for <sys/resource.h> and the getrusage
3035         function.
3036         * lib/fdleak.c: Don't #include <sys/resource.h> if we don't have it.
3037         (get_max_fd): If neither /proc/self/fd not getrusage is available,
3038         return _POSIX_OPEN_MAX.
3039
3040         Detect leaks in file descriptors 0, 1, 2.
3041         * lib/fdleak.c: (remember_non_cloexec_fds): Also check for leaks
3042         in file descriptors 0, 1, 2, just in case the caller closed them.
3043         (find_first_leaked_fd): Likewise.
3044
3045 2009-08-16  James Youngman  <jay@gnu.org>
3046
3047         Bugfixes to the handling of %Z in the Red Hat SELinux patch.
3048         * find/pred.c (do_fprintf): If getfilecon fails, print the
3049         relevant segment anyway, with the file context expanding to an
3050         empty string.
3051         * find/parser.c (make_segment): For %Z, set the cost to
3052         NeedsAccessInfo.
3053
3054 2009-08-11  Kamil Dudka  <kdudka@redhat.com>
3055
3056         find: add SELinux support
3057         * find/defs.h: Add SELinux related definitions.
3058         * find/tree.c: Add -context predicate to lookup.
3059         * find/pred.c: Handle %Z printf directive.
3060         * find/parser.c: Parse -context predicate and %Z printf directive.
3061         * find/find.1: Mention -context predicate and %Z printf directive.
3062         * doc/find.texi: Mention -context predicate and %Z printf directive.
3063         * find/Makefile.am: Add SELinux libraries.
3064         * import-gnulib.config: Require module selinux-at and the corresponding
3065         version of gnulib.
3066
3067 2010-03-29  James Youngman  <jay@gnu.org>
3068
3069         Fix file descriptor leaks.  This fixes Savannah bug bug #27375.
3070         * find/util.c (fd_leak_check_is_enabled): New function; returns
3071         nonzero if the environment variable GNU_FINDUTILS_FD_LEAK_CHECK is
3072         enabled.  Setting this variable enables the file descriptor leak
3073         checker.
3074         * find/defs.h: Declare fd_leak_check_is_enabled.
3075         * import-gnulib.config (gnulib_version): Update to more recent
3076         version of gnulib.  Import the cloexec module too.
3077         * lib/fdleak.c: New file; a module for detecting file descriptor
3078         leaks.   Also define an open_cloexec() function.
3079         * lib/fdleak.h: Declare the global functions defined in fdleak.c.
3080         * lib/Makefile.am (libfind_a_SOURCES): Add fdleak.c.
3081         * find/find.c (main): Call remember_non_cloexec_fds in order to
3082         detect file descriptor leaks.
3083         (main): set FD_CLOEXEC on starting_desc.
3084         (safely_chdir_lstat): Likewise for dotfd.
3085         (safely_chdir_nofollow): Likewise for fd.
3086         * find/ftsfind.c (inside_dir): set FD_CLOEXEC on curr_fd.
3087         (main): Call remember_non_cloexec_fds in order to detect file
3088         descriptor leaks.
3089         (main): set FD_CLOEXEC on starting_desc.
3090         * find/pred.c (launch): before we exec the child, call
3091         complain_about_leaky_fds in order to complain about non-FD_CLOEXEC
3092         file descriptors that weren't open when the program was run.
3093         * find/sharefile.c (sharefile_fopen): Set FD_CLOEXEC on the files
3094         we open.
3095         * import-gnulib.sh (run_gnulib_tool): Pass the --local-dir option
3096         in order to apply any required patches (none needed right now).
3097         * find/testsuite/config/unix.exp: Set environment variable
3098         $GNU_FINDUTILS_FD_LEAK_CHECK to enable the file descriptor leak
3099         check for all tests.
3100         * find/testsuite/find.gnu/no-fdleak-test.exp: New test; runs find
3101         with the fd leak detector turned off, in order to make sure there
3102         are no (e.g.) crashing bugs when that happens.
3103         * find/testsuite/find.gnu/no-fdleak-test.xo: Expected output for
3104         the new test.
3105         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add no-fdleak-test.exp
3106         (EXTRA_DIST_XO): Add no-fdleak-test.xo.
3107
3108         * NEWS: Mention these changes.
3109
3110 2010-03-30  James Youngman  <jay@gnu.org>
3111
3112         Add missing exec-nogaps.{exp,xo}.
3113         * find/testsuite/Makefile.am (EXTRA_DIST_XO): Add exec-nogaps.xo.
3114         (EXTRA_DIST_EXP): Add exec-nogaps.exp.
3115
3116 2010-02-25  James Youngman  <jay@gnu.org>
3117
3118         Explain the problems with "-name a/b" and "-path foo/".
3119         * find/find.1 (-iname): We already refer to -name, so duplicate
3120         less text.
3121         (-name): Explain that -name a/b will never match anything.
3122         * doc/find.texi (Base Name Patterns): Explain that -name a/b will
3123         never match anything.
3124         (Full Name Patterns): Fix typo.
3125
3126 2010-02-22  James Youngman  <jay@gnu.org>
3127
3128         * xargs/xargs.1: Simplify the wording in the description of "xargs
3129         -i".
3130
3131 2010-02-21  James Youngman  <jay@gnu.org>
3132
3133         Update #include directives for the openat module, to comply with
3134         recent POSIX-compliance changes.
3135         * find/find.c: Don't include <openat.h>.
3136         * find./ftsfind.c: Likewise.
3137         * find/pred.c: Likewise; include <unistd.h>.
3138         * find/util.c: Don't include <openat.h>; include <sys/stat.h>.
3139
3140         * import-gnulib.config (gnulib_version): Update to current version
3141         of gnulib.
3142         * build-aux/.cvsignore: Ignore new files built by gnulib.
3143         * build-aux/.gitignore: Likewise.
3144
3145 2010-02-20  James Youngman  <jay@gnu.org>
3146
3147         Fix Savannah bug #27846: assertion failure in xargs.c on AIX.
3148         * xargs/xargs.c (smaller_of): New function, returns the smaller of
3149         its two size_t arguments.
3150         (main): Instead of asserting that the value of bc_ctl.arg_max is
3151         smaller than some value, simply adjust the value if necessary.
3152         * NEWS: Mention this change.
3153
3154         Fix Savannah bug#28872, Mistake in "Problems with -exec and filenames"
3155         * doc/find.texi (Problems with -exec and filenames): Add missing
3156         $0 argument in example for sh -c 'something "$@" sh ...
3157         * NEWS: Mention this change.
3158
3159         Fix Savannah bug# 28824: "-ctime x" yields "missing argument to
3160         `-ctime'".
3161         * find/parser.c (parse_fls): If the argument is invalid, reverse
3162         the change that collect_arg() made to *arg_ptr (that is, don't
3163         consume the argument).
3164         (parse_fprint0): Likewise.
3165         (parse_gid): Likewise.
3166         (parse_group): Likewise.
3167         (parse_inum): Likewise.
3168         (parse_links): Likewise.
3169         (do_parse_xmin): Likewise.
3170         (parse_name): Likewise.
3171         (parse_printf): Likewise.
3172         (parse_uid): Likewise.
3173         (parse_used): Likewise.
3174         (parse_time): Likewise.
3175         * NEWS: mention this change.
3176
3177 2009-12-04  James Youngman  <jay@gnu.org>
3178
3179         Fix Savannah bug #26868: compilation error in pred.c on Solaris
3180         x86_64.
3181         * import-gnulib.config (modules): Include gnulib's math module, to
3182         avoid a compilation error for "-HUGE_VAL" on Solaris x86_64.
3183         * NEWS: Mention this change.
3184
3185 2009-11-29  James Youngman  <jay@gnu.org>
3186
3187         * find/testsuite/find.posix/exec-nogaps.exp: New test for find
3188         -exec   ... {} ; and find -exec ... {} +, both of which simply
3189         ensure that all exec arguments are processed exactly once each.
3190         * find/testsuite/find.posix/exec-nogaps.xo: Expected output file
3191         for the test in exec-nogaps.exp.
3192
3193         Fix Savannah bug#27328, segfault if the initial exec for "find
3194         -exec" fails.  Also Savennah bug #27975: Infinite loop
3195         for -exec [..] {} +.
3196         * lib/buildcmd.h (struct buildcmd_state): Introduce
3197         largest_successful_arg_count and smallest_failed_arg_count in
3198         order to avoid an assumption that we understand how the operatingn
3199         system interprets ARG_MAX and the assumption that the compile-time
3200         ARG_MAX value (or the equivalent from sysconf()) is avtually
3201         correct.
3202         (struct buildcmd_control): Change the calling convention of the
3203         exec callback to allow us to pass the argument list separately.
3204         (bc_args_exceed_testing_limit): declare this new function.
3205         * lib/buildcmd.c (bc_args_complete): New function, NULL-terminates
3206         the argv list.   We use this instead of passing NULL to
3207         bc_push_arg().
3208         (update_limit): New function.  Decides how many arguments to
3209         pass to the invoked command on the next attempt.
3210         (copy_args): Build an argument list containing all the initial
3211         arguments plus some of the other args (the number to be used is
3212         decided by update_limit).
3213         (bc_do_exec): Avoid special-casing the first call to exec.  Use
3214         update_limit to decide how many arguments to pass and copy_args to
3215         build the argument list.  The new form of the loop should fix
3216         Savannah bug #27328.
3217         (bc_push_arg): Drop support for passing NULL as an argument (to
3218         terminate the arg list we just pass in a special argument instead).
3219         (bc_args_exceed_testing_limit): New function, returns nonzero if
3220         the argument list exceeds a testing limit (used for failure
3221         injection by tests).
3222         (exceeds): New support function, implementing part of
3223         bc_args_exceed_testing_limit.
3224         (bc_init_state): Initialise largest_successful_arg_count and
3225         smallest_failed_arg_count.
3226         * find/defs.h (struct exec_val): New member last_child_status.
3227         This stores the status of the most recently completed child.
3228         * find/pred.c (new_impl_pred_exec): Use last_child_status.
3229         (launch): Use the new calling convention for the exec callback.
3230         Set last_child_status.  Call bc_args_exceed_testing_limit() to do
3231         failure injection for unit tests.
3232         * find/util.c (do_complete_pending_execdirs): Call bc_do_exec
3233         rather than calling launch directly in order to allow for breaking
3234         the argument list up if it's too long.
3235         * xargs/xargs.c (xargs_do_exec): Update to use the new caling
3236         convention for the exec callback.
3237         * NEWS: Mention these fixes.
3238
3239 2009-11-09  Jim Meyering  <meyering@redhat.com>
3240
3241         Adjust two xargs diagnostics.
3242         * xargs/xargs.c (print_args): Give a better diagnostic when
3243         failing to open /dev/tty.
3244         (xargs_do_exec): Mark a diagnostic for translation.
3245
3246 2009-11-08  James Youngman  <jay@gnu.org>
3247
3248         Localise some previously non-localised strings.
3249         * find/find.c (init_mounted_dev_list): Pass translatable string
3250         gettext.
3251         (safely_chdir_lstat): Likewise.
3252         * find/fstype.c (must_read_fs_list): Likewise.
3253         * find/parser.c (safe_atoi): Likewise.
3254
3255         Updated a number of translation messages.
3256         * po/it.po: Updated Italian translation.
3257         * po/fi.po: Updated Finnish translation.
3258         * po/vi.po: Updated Vietnamese translation.
3259         * po/hu.po: Updated Hungarian translation.
3260         * po/de.po: Updated German translation.
3261         * po/ru.po: Updated Russian translation.
3262
3263 2009-08-16  James Youngman  <jay@gnu.org>
3264
3265         * lib/check-regexprops.sh: Portability fixes for FreeBSD (mktemp
3266         requires an argument, dialect differences in sed regexes).
3267
3268         Bugfixes to the handling of %Z in the Red Hat SELinux patch.
3269         * find/pred.c (do_fprintf): If getfilecon fails, print the
3270         relevant segment anyway, with the file context expanding to an
3271         empty string.
3272         * find/parser.c (make_segment): For %Z, set the cost to
3273         NeedsAccessInfo.
3274
3275 2009-08-15  James Youngman  <jay@gnu.org>
3276
3277         * import-gnulib.config (gnulib_version): Update to the current
3278         version of gnulib.
3279
3280 2009-07-18  James Youngman  <jay@gnu.org>
3281
3282         Fix up some problems introduced in a manual conflict resolution.
3283         * find/parser.c (insert_path_check): Add missing third argument to
3284         insert_primary_withpred.
3285         (parse_iwholename): Remove redundant extra definition.
3286         (parse_ipath): Likewise.
3287
3288 2009-07-14  James Youngman  <jay@gnu.org>
3289
3290         Fix Savannah bug #27017: find -D opt / -fstype ext3 -print , -quit
3291         coredumps.
3292         * find/tree.c (set_new_parent): Initialise struct
3293         predicate->arg_text to NULL (instead of leaving it uninitialised).
3294         (get_new_pred_noarg): Likewise.
3295         (get_new_pred): Initialise predicate->arg_text to
3296         "ThisShouldBeSetToSomethingElse" to make it easier to notice
3297         bugs.
3298         (get_new_pred_chk_op): Use get_new_pred_noarg.
3299         (print_predicate): Use an if statement instead of
3300         two ternary operators.
3301         * find/util.c (insert_primary_withpred): Accept new argument, arg,
3302         being the argument (if any) of this predicate.  Pass it to
3303         get_new_pred_chk_op.
3304         (insert_primary): Likewise (pass arg to insert_primary_withpred).
3305         (insert_primary_noarg): New function; calls insert_primary with
3306         arg=NULL.
3307         * find/parser.c (collect_arg_stat_info): Add an output parameter;
3308         the filename from which we collected the stat information.
3309         (parse_closeparen, parse_delete, parse_and, parse_or,
3310         parse_comma): Use get_new_pred_noarg.
3311         (parse_cnewer, parse_newer, parse_anewer): Use new
3312         collect_arg_stat_info and insert_primary interface.
3313         (parse_print, parse_prune, parse_nouser, parse_empty): Use
3314         insert_primary_noarg.
3315         (parse_accesscheck, parse_false): Use insert_primary_noarg.
3316         (parse_used, parse_iname, parse_fprint, insert_fprint,
3317         parse_fstype, parse_ilname): Use new collect_arg and
3318         insert_primary interfaces.
3319         (parse_ipath, parse_lname, do_parse_xmin, parse_name, parse_path,
3320         parse_perm, parse_size, parse_user, parse_time): Use new
3321         collect_arg and insert_primary_withpred interface.
3322         (parse_negate, parse_openparen): Use new get_new_pred_chk_op interface.
3323         (parse_newerXY, parse_nogroup): Use new insert_primary interface.
3324         (insert_regex, parse_samefile): Use new insert_primary_withpred
3325         interface.
3326         (insert_type, insert_fprintf, new_insert_exec_ok, insert_num): Use
3327         new insert_primary_withpred interface.
3328         * find/defs.h (struct predicate.arg_text): make const.
3329         Add declarations for new function get_new_pred_noarg and
3330         insert_primary_noarg.  Add 'arg' parameter to get_new_pred_chk_op
3331         and insert_primary_withpred.
3332         * NEWS: Mention the bugfix.
3333
3334 2009-07-12  James Youngman  <jay@gnu.org>
3335
3336         Savannah bug #23920: warn about -path arguments ending in /.
3337         * find/parser.c (insert_path_check): new function; abstracts the
3338         common functionality of parse_path, parse_ipath, parse_wholename,
3339         parse_iwholename.  Also check for a trailing slash and warn about
3340         it (unless $POSIXLY_CORRECT is set).  Don't warn if the pattern
3341         also happens to be a start_point, because those could be matched.
3342         (parse_path, parse_ipath, parse_wholename, parse_iwholename): Use
3343         insert_path_check.
3344         * find/tree.c (is_start_point): new function; returns true if the
3345         indidated string matches a start point.
3346         (num_start_points, start_points): new variables, storing the
3347         starting points listed on the command line.
3348         (build_expression_tree): Set num_start_points and start_points.
3349         * find/defs.h: Declare is_start_point.
3350         * doc/find.texi (Full Name Patterns): Explain that candidate names
3351         for -path, -regex etc. will never end in a slash, so "-path /tmp/"
3352         will never match anything.
3353         * find/find.1: Likewise.
3354
3355         Fix Savannah bug #26327: xargs man page is vague about the number
3356         of times command is executed.
3357         * xargs/xargs.1 (DESCRIPTION): Explain more clearly that the
3358         command will be executed many times.  Indicate that -L can also be
3359         useful with -P.
3360         * NEWS: Mention this change.
3361
3362 2009-07-11  James Youngman  <jay@gnu.org>
3363
3364         * NEWS: Set the version to 4.5.6-git, so that we can make test
3365         releases.
3366
3367 2009-06-11  James Youngman  <jay@gnu.org>
3368
3369         Make import-gnulib.sh faster in the common case where neither
3370         import-gnulib.config nor gnulib itself changed.
3371         * import-gnulib.sh (gnulib_changed): New variable.
3372         (do_checkout): set gnulib_changed=true if the gnulib code didn't
3373         already correspond to our configured version.  Don't use a large
3374         subshell, because we need to set $gnulib_changed and don't want
3375         the value to be discarded.
3376         (main): Run gnulib-tool if gnulib was not at the correct version
3377         or the import-gnulib.config file has changed.
3378
3379 2009-07-10  Reuben Thomas  <rrt@sc3d.org>
3380
3381     Fix quotation punctuation in find manual page, fixing bug #19120.
3382     * find/find.1: Use ` instead of ' at the start of quoted text.  Use
3383     \(aq instead of ' or \' in commands to get a literal straight quote.
3384     Use ` and ' instead of `` and '' (for consistency).
3385     * NEWS: mention this change.
3386
3387 2009-07-10  James Youngman  <jay@gnu.org>
3388
3389     * import-gnulib.config (gnulib_version): Update to the current version
3390     of gnulib.
3391
3392     Fix Savannah bug #24873, Duplicate fprint option corrupts output
3393     by opening each output file only once.
3394     * find/sharefile.c: New file; keeps a mapping from dev/inode to
3395     FILE*, allowing us to determine when the file we just opened is
3396     the same as something else we already opened.
3397     * import-gnulib.config (modules): Import the hash module, used by
3398     sharefile.c.
3399     * find/sharefile.h: Function declarations for same.
3400     * find/find.c (main): Call sharefile_init().
3401     * find/ftsfind.c (main): Likewise.
3402     * find/parser.c (open_output_file): Call sharfile_fopen to open an
3403     output file, instead of fopen_safer.
3404     * find/util.c (cleanup): Close any shared output files that are
3405     open.  Also fflush stdout.
3406     (undangle_file_pointers): Set the relevant FILE* pointers to
3407     NULL.
3408     (flush_and_close_output_files): Remove (since sharefile_destroy
3409     has the desired effect).
3410     * find/Makefile.am (libfindtools_a_SOURCES): Add sharefile.c.
3411     (EXTRA_DIST): Add sharefile.h.
3412     * find/defs.h: #include sharefile.h.
3413     (struct state): Add member shared_files, holding a handle to the
3414     shared-file hash table implemented in sharefile.[ch].
3415     * find/testsuite/find.gnu/fprintf-samefile.exp: New test,
3416     exercising -fprintf (though it is not able to detect bug #24873).
3417     * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
3418     find.gnu/fprintf-samefile.exp.
3419     * NEWS: Mention the bugfix.
3420
3421 2009-07-07  James Youngman  <jay@gnu.org>
3422
3423         * NEWS: Indicate that -wholename is no longer preferred over -ipath.
3424
3425 2009-07-06  James Youngman  <jay@gnu.org>
3426
3427         Prepare for release of findutils version 4.5.5.
3428         * configure.ac: Set version number to 4.5.5.
3429         * NEWS: Likewise.
3430
3431 2009-07-06  Andreas Metzler  <gnu@downhill.at.eu.org>
3432
3433         * doc/find.texi: Various typo fixes.
3434
3435 2009-07-05  James Youngman  <jay@gnu.org>
3436
3437         Fix typo in -execdir documentation.
3438         * doc/find.texi (Single File): Typo correction; we're describing
3439         -execdir, not -exec.
3440         * NEWS: Mention the bugfix.
3441
3442 2009-05-12  James Youngman  <jay@gnu.org>
3443
3444         #26537: find -prune now makes sure it has valid stat() information.
3445         * NEWS: Added Savannah bug number for Colin's bugfix.
3446
3447 2009-05-07  Colin Watson  <cjwatson@ubuntu.com>
3448
3449         * find/parser.c (parse_prune): -prune needs stat information if
3450         -depth is not in use.
3451         * find/pred.c (pred_prune): Assert that stat information is
3452         available if needed.
3453         * find/testsuite/find.posix/prune-stat.exp: New test.
3454         * find/testsuite/find.posix/prune-stat.xo: New test.
3455         * find/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO): Added
3456         prune-stat.exp, prune-stat.xo.
3457         * NEWS: Mention this bugfix.
3458
3459 2009-07-05  James Youngman  <jay@gnu.org>
3460
3461         * lib/check-regexprops.sh: New test.  Run regexprops as a check,
3462         and compare its output against the contents of doc/regexprops.texi.
3463         * lib/Makefile.am: Run check-regexprops.sh for 'make check'.
3464         * doc/Makefile.am: don't clean regexprops.texi, and don't generate
3465         it automatically.
3466         * doc/regexprops.texi: add into source control.
3467         * doc/.gitignore: don't ignore regexprops.texi
3468
3469 2009-07-04  James Youngman  <jay@gnu.org>
3470
3471         * configure.ac (AC_CONFIG_FILES): order the entries alphabetically
3472         and remove duplicates.  Put po/Makefile.in before
3473         po/Makefile, since the former is required in order to
3474         config.status to generate the latter.
3475
3476 2009-07-04  gettextize  <bug-gnu-gettext@gnu.org>
3477
3478         * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in.
3479         (AM_GNU_GETTEXT_VERSION): Bump to 0.17.
3480
3481 2009-05-12  Eric Blake  <ebb9@byu.net>
3482
3483         xargs: fix compilation on cygwin
3484         * xargs/xargs.c (main): Check that ARG_MAX is defined.
3485
3486         xargs: avoid compiler warning
3487         * xargs/xargs.c (get_char_oct_or_hex_escape): Pass correct type to
3488         ctype macro.
3489
3490 2009-05-04  James Youngman  <jay@gnu.org>
3491
3492         * find/util.c (get_info): Don't fall off the end of the function
3493         without returning a value.
3494
3495 2009-04-25  James Youngman  <jay@gnu.org>
3496
3497         * AUTHORS: Add Andreas Metzler.
3498
3499 2009-04-25  Andreas Metzler  <gnu@downhill.at.eu.org> (tiny change)
3500
3501         Correct a typo "diagnositcs".
3502         * doc/find.texi (Environment Variables): Correct a typo.
3503
3504 2009-04-24  A. Costa  <agcosta@gis.net> (tiny change)
3505
3506         Correct a typo "diagnositcs".
3507         * find/find.1 (POSIXLY_CORRECT): Correct a typo.
3508
3509 2009-04-24  James Youngman  <jay@gnu.org>
3510
3511         * find/ftsfind.c (consider_visiting): Print a message for "-D
3512         search" both on entry to the function and at the point where we
3513         have decided not to ignore this file.
3514
3515 2009-04-12  James Youngman  <jay@gnu.org>
3516
3517         * NEWS: Mention the fix for bug #22708 in the correct section.
3518
3519         Avoid mixing declarations and statements.
3520         * lib/buildcmd.c (bc_do_exec): Declare variables at the top of the
3521         relevant block, in order to avoid mixing declarations and
3522         statements.
3523         * xargs/xargs.c (main): Likewise.
3524
3525 2009-04-12  Leslie Polzer  <leslie.polzer@gmx.net>
3526
3527         Merge Leslie Polzer's ARG_MAX enhancements to xargs which were
3528         produced as part of the Google Summer of Code 2007.
3529         These changes fix Savannah bug #22708.
3530         * find/pred.c (launch): The struct buildcmd_control* argument is
3531         no longer const.
3532         * find/defs.h: Likewise
3533         * lib/buildcmd.c (bc_do_insert): The struct buildcmd_control*
3534         argument is no longer const.
3535         (bc_push_arg): Likewise.
3536         (cb_exec_noop): Likewise.
3537         (get_stringv_len): New function; measures the length of
3538         a NULL-terminated argv sequence.
3539         (bc_do_exec): Rename from do_exec, and make global.  Modify the
3540         function to react to exec failing with E2BIG by trying again
3541         with fewer arguments.
3542         * xargs/xargs.1: Mention that xargs automatically adopts to the
3543         situation where exec fails with E2BIG.
3544         * xargs/xargs.c: (parent): New variable, the PID of the parent
3545         process.
3546         (main): initialise the variable 'parent'.   Don't fail immediately
3547         due to lack of space when the environment is large.  Call
3548         xargs_do_exec via bc_do_exec.
3549         (xargs_do_exec): The struct buildcmd_control* argument is no
3550         longer const.   When exec fails in the child, communicate the
3551         errno value back to the parent through a pipe which is
3552         close-on-exec; this allows us to accurately determine the cause of
3553         the failure and also to distinguish exec failures from all
3554         possible exit codes in the child.
3555         (wait_for_proc): If the utility cannot be found or cannot be run,
3556         we now find out about this by reading an errno value from the
3557         pipe, so this means that exit codes 126 and 127 in the child no
3558         longer have a special interpretation.
3559         * NEWS: mention these changes.
3560
3561 2009-04-13  James Youngman  <jay@gnu.org>
3562
3563         * import-gnulib.config (gnulib_version): Update to current head
3564         version.
3565
3566 2009-04-13  Andreas Metzler <gnu@downhill.at.eu.org>
3567
3568         Fix Savannah bug# 26092: find.1 still marks -iwholename as preferred
3569         * find/find.1 (-iwholename): Indicate that this option is no
3570         longer preferred over -ipath.
3571
3572 2009-03-07  James Youngman  <jay@gnu.org>
3573
3574         Update the code to better reflect the semantics of digest_mode().
3575         * find/defs.h: Pass the file mode to digest_mode() by reference
3576         (as a pointer) rather than by value to make it unnecessary for the
3577         caller to know that the value passed should become dead.
3578         * find/util.c (digest_mode): Change the implementation.
3579         * find/find.c (process_path): Update caller.
3580         * find/ftsfind.c (consider_visiting): Update caller.
3581
3582 2009-03-10  James Youngman  <jay@gnu.org>
3583
3584         Remove "lib/wait.h", since gnulib provides <sys/wait.h>.
3585         * lib/Makefile.am (EXTRA_DIST): Remove wait.h, since gnulib
3586         provides it.
3587         * lib/wait.h: Not needed.
3588         * find/pred.c: Include <sys/wait.h> instead of "wait.h".
3589         * lib/waitpid.c: Likewise.
3590         * xargs/xargs.c: Likewise.
3591
3592         Remove unnecessary include guards.
3593         * lib/dircallback.c: gnulib provides <locale.h>, so no need for
3594         include guards.
3595         * locate/locate.c: Likewise.
3596         * lib/listfile.c: Likewise.
3597         * lib/savedirinfo.c: Likewise with <sys/stat.h>
3598         * find/defs.h: gnulib provides <inttypes.h>, so no need for
3599         include guards.
3600         * lib/nextelem.c: Likewise with <string.h> and <stdlib.h>.
3601         * locate/bigram.c: Likewise.
3602         * locate/frcode.c: Likewise.
3603         * lib/buildcmd.c: Likewise with <locale.h> and <wchar.h>
3604         * xargs/xargs.c: Likewise with <locale.h>, <wchar.h> and <stdlib.h>
3605         * import-gnulib.config (modules): Import the mbrtowc and whchar
3606         modules.
3607         * lib/qmark.c (multibyte_qmark_chars):  Don't surround with
3608         HAVE_MBRTOWC, since we now have a replacement for mbrtowc.
3609         Likewise, don't protect inclusion of <string.h> with
3610         HAVE_STRING_H.  Likewise with <wchar.h>.
3611         (multibyte_qmark_chars): Rename to qmark_chars.
3612         (qmark_chars): Remove old version (since it is replaced by the
3613         function that used to be multibyte_qmark_chars).
3614         * lib/printquoted.c: Don't include <wchar.h>, we don't need it.
3615
3616         Prepare for release of findutils-4.5.4.
3617         * configure.ac (AC_INIT): Set version number to 4.5.4.
3618         * NEWS: Likewise.
3619
3620         Remove obsolete regex.c copy fixup.
3621         * Makefile.am (jy-regex-fix) Delete.
3622         (dist-hook): Remove jy-regex-fix.
3623
3624         Update to version 0.17 of GNU gettext.
3625         * configure.ac: Update to version 0.17 of gettext.
3626         * import-gnulib.sh (refresh_output_files): Run autopoint too.
3627         * ABOUT-NLS: Remove the file from source control, since gettext
3628         produces it.
3629         * .gitignore: Ignore ABOUT-NLS.
3630         * po/Makefile.in.in: Likewise.
3631         * po/.gitignore: Ignore po/Makefile.in.in.
3632
3633         Correct the changelog-driver argument list.
3634         * import-gnulib.sh (check_merge_driver): Add the missing arguments
3635         to the changelog driver.  Change the name of the merge driver from
3636         cl-merge to merge-changelog, for consistency with gnulib,
3637         coreutils, autoconf, libtool, and m4.
3638
3639 2009-03-08  James Youngman  <jay@gnu.org>
3640
3641         Switch to using a merge driver for the ChangeLog file.
3642         * import-gnulib.sh (check_merge_driver): New function; verifies
3643         that we have a merge driver installed for the ChangeLog file (if
3644         we're on the master or release branch, the check is skipped).
3645         Also check that the .gitattributes file exists.
3646         * README-hacking: Point out that using a merge driver for
3647         ChangeLog is a good idea.
3648         * .gitattributes: New file
3649
3650         Optimise away calls to stat if all we need is the inode number.
3651         This fixes Savannah bug #24342.
3652         * find/util.c (get_info): call get_statinfo if need_inum and we
3653         don't already have the inode number.
3654         (apply_predicate): Call get_info if need_inum.
3655         * find/defs.h (enum EvaluationCost): Add NeedsInodeNumber.
3656         (struct predicate): Add need_inum.
3657         * find/tree.c (get_new_pred): Default need_inum to false.
3658         (get_new_pred_chk_op): Likewise.
3659         * find/ftsfind.c (consider_visiting): Copy the value of st_ino
3660         into statbuf.st_ino.
3661         * find/parser.c (parse_inum): Set need_inum=true.
3662         (parse_samefile): Set need_inum=false, but add a comment
3663         indicating that there is an optimisation opportunity.
3664         (make_segment): For -printf %i, set NeedsInodeNumber rather than
3665         NeedsStat.
3666         * find/pred.c (pred_inum): assert that the inode number is known
3667         (i.e. non-zero).
3668         (print_optlist): Print "[need inum]" when need_inum is  true.
3669         * find/tree.c (opt_expr): Also reorder expressions if the right
3670         hand expression is -inum (that is, consider that test to be no
3671         more expensive than -type).
3672         (set_new_parent): Default need_inum to false.
3673         (costlookup): Set pred_inum=NeedsInodeNumber.
3674         (get_pred_cost): need_inum implies a data cost of
3675         NeedsInodeNumber.
3676         (cost_table): Add NeedsInodeNumber.
3677         (print_tree): Handle need_inum.
3678
3679         For -samefile, skip stat if inode numbers differ.
3680         * find/pred.c (pred_samefile): Skip stat if the inode numbers are
3681         different.
3682         Enable -Wall compiler warnings and fix them.
3683         * configure.ac: Turn on -Wall warnings.
3684         * find/find.c (process_dir): Print unsigned values of unspecified
3685         width as uintmax_t.
3686         * xargs/xargs.c: Include <inttypes.h> and <stdint.h>, but without
3687         the include guards (since we assume an ISO C platform anyway).
3688         * import-gnulib.config (modules): Add modules inttypes and stdint.
3689
3690 2009-03-07  James Youngman  <jay@gnu.org>
3691
3692         Remove unused Debian files; the Debian package doesn't use them.
3693         * debian.rules: Delete.
3694         * debian/README.debian: Delete.
3695         * debian/TODO: Delete.
3696         * debian/changelog: Delete.
3697         * debian/conffiles: Delete.
3698         * debian/control: Delete.
3699         * debian/copyright: Delete.
3700         * debian/cron.find: Delete.
3701         * debian/doc-base: Delete.
3702         * debian/postinst: Delete.
3703         * debian/preinst: Delete.
3704         * debian/prerm: Delete.
3705         * debian/rules: Delete.
3706         * debian/substvars: Delete.
3707         * debian/updatedb.conf: Delete.
3708         * debian/.cvsignore: Delete.
3709         * debian/.gitignore: Delete.
3710
3711 2009-03-06  James Youngman  <jay@gnu.org>
3712
3713         Change suffix for non-release versions from -CVS to -git.
3714         * configure.ac(AC_INIT): Change the suffix used to indicate that
3715         the version number doesn't correspond to a source release from
3716         -CVS to -git.
3717         * NEWS: Likewise.
3718
3719         Delete the INSTALL file; rely on Autoconf providing it.
3720         * INSTALL: Delete; this file can be copied/generated by Autoconf,
3721         so do that rather than keeping it under source control.
3722         * .gitignore: Ignore INSTALL.
3723
3724         Updated translation po files from translationproject.org.
3725         * po/bg.po: Updated Bulgarian translation.
3726         * po/de.po: Updated German translation.
3727         * po/ga.po: Updated Irish translation.
3728         * po/hu.po: Updated Hungarian translation.
3729         * po/lt.po: Updated Lithuanian translation.
3730         * po/nl.po: Updated Dutch translation.
3731         * po/pl.po: Updated Polish translation.
3732         * po/sl.po: Updated Slovenian translation.
3733         * po/sv.po: Updated Swedish translation.
3734         * po/tr.po: Updated Turkish translation.
3735         * po/uk.po: Updated Ukrainian translation.
3736         * po/vi.po: Updated Vietnamese translation.
3737         * NEWS: Mention these updates.
3738
3739 2009-03-05  James Youngman  <jay@gnu.org>
3740
3741         Fix Savannah bug #25764, duplicate entry for proc in PRUNEFS.
3742         * locate/updatedb.sh (PRUNEFS): Remove duplicate entry for proc.
3743         * locate/Makefile.am (updatedb): add dependency on Makefile, and
3744         add a comment explaining why updatedb is generated by make, not
3745         configure.
3746         * NEWS: Mention this bugfix.
3747
3748         Provide more detailed help on how to work with the git sources.
3749         * README-CVS: Rename to README-hacking.
3750         * README-hacking: Add more specific information about using topic
3751         branches, test cases, documentation, coding standards and how to
3752         submit patches.   Much of this is adapted from the files
3753         README-hacking and HACKING in the coreutils source tree.
3754         * Makefile.am: Generate tool-versions.txt, which is a list of the
3755         --version outputs of the tools that the maintainer used to build a
3756         release.
3757         * NEWS: Mention these improvements.
3758
3759 2009-03-04  James Youngman  <jay@gnu.org>
3760
3761         Upgrade to gnulib version 86a37c05846ff3772afd1300f135866dd1d271c6.
3762         * import-gnulib.config(gnulib_version): Update.
3763         * xargs/Makefile.am: Add $(LIB_CLOSE) to $(LDADD), as suggested by
3764         gnulib's unistd module.
3765         * locate/Makefile.am: Likewise.
3766         * find/Makefile.am: Likewise.
3767
3768         Removed trailing white space.
3769         * Makefile.am: Removed trailing white space.
3770         * NEWS, build-aux/check-testfiles.sh, build-aux/src-sniff.py,
3771         doc/Makefile.am, doc/find-maint.texi, doc/find.texi, find/Makefile.am,
3772         find/defs.h, find/find.1, find/find.c, find/finddata.c, find/fstype.c,
3773         find/ftsfind.c, find/parser.c, find/pred.c, find/tree.c, find/util.c,
3774         import-gnulib.sh, lib/Makefile.am, lib/buildcmd.c, lib/buildcmd.h,
3775         lib/dircallback.c, lib/dircallback.h, lib/extendbuf.c,
3776         lib/extendbuf.h, lib/findutils-version.c, lib/findutils-version.h,
3777         lib/forcefindlib.c, lib/gnulib-version.h, lib/listfile.c,
3778         lib/modetype.h, lib/nextelem.c, lib/nextelem.h, lib/printquoted.c,
3779         lib/printquoted.h, lib/qmark.c, lib/regexprops.c, lib/regextype.c,
3780         lib/savedirinfo.c, lib/savedirinfo.h, lib/strspn.c, lib/wait.h,
3781         lib/waitpid.c, locate/bigram.c, locate/code.c, locate/locate.1,
3782         locate/locate.c, locate/locatedb.5, locate/locatedb.h,
3783         locate/updatedb.1, locate/updatedb.sh, locate/word_io.c,
3784         m4/findlib.m4, m4/nullsort.m4, m4/withfts.m4, xargs/xargs.1:
3785         Likewise.
3786         * m4/nullsort.m4: Removed occurrences of space followed by tab.
3787
3788         Enabled GCC warnings for declarations after statements.
3789         * import-gnulib.config: Import the gnulib module 'warnings'
3790         * configure.ac: Add GCC warning -Wdeclaration-after-statement.
3791         * Makefile.am: Add AM_CFLAGS and set it to $(WARN_CFLAGS).
3792         * find/Makefile.am, doc/Makefile.am, lib/Makefile.am: Likewise.
3793         * locate/Makefile.am, xargs/Makefile.am: Likewise.
3794
3795 2009-03-03  James Youngman  <jay@gnu.org>
3796
3797         Fix Savannah bug #25359, more efficiently (suggestion by Nick Fortino).
3798         * find/ftsfind.c (consider_visiting): revert the previous change
3799         which discarded type information, and instead simply ensure that
3800         state.curdepth holds the correct value before digest_mode() is
3801         called.
3802         (find): revert the previous change.
3803         (visit): we no longer need to set state.curdepth here, since it
3804         will have been set already in consider_visiting().
3805
3806 2009-03-02  James Youngman  <jay@gnu.org>
3807
3808         Fix Savannah bug #25359.
3809         * find/ftsfind.c (consider_visiting): discard mode information
3810         from fts when the -H option is in effect and the current file is a
3811         symbolic link.
3812         (find): don't decode the mode information that find is trying to
3813         pass to us in that case, since we don't want to use it.
3814         * find.posix/sv-bug-25359.exp: new test for this bug.
3815         * find.posix/sv-bug-25359.xo: expected output for the test.
3816         * NEWS: Mention this bugfix.
3817
3818 2009-02-21  James Youngman  <jay@gnu.org>
3819
3820         Updated the email address for Eric B. Decker.
3821         * ChangeLog: Updated Eric's address
3822         * find/find.c: Likewise
3823         * find/ftsfind.c: Likewise
3824
3825 2009-02-21  Jim Meyering  <meyering@redhat.com>
3826
3827         find: take advantage of new gnulib/fts leaf-optimization
3828         * find/ftsfind.c (ftsoptions): Set the FTS_CWDFD bit.
3829         This is required in order to take advantage of fts' leaf-optimization.
3830         * find/ftsfind.c (consider_visiting): Allow state.type to be 0
3831         when fts_info is FTS_NSOK;
3832
3833         This allows find to process an fts entry for which fts_read returns
3834         FTS_NSOK (no stat) but for which find requires only type info.
3835         This happens on file systems that lack dirent.dtype information.
3836         Currently, only reiserfs is handled this way.  Until the recent
3837         gnulib/fts change, [97d5b66] "fts: arrange not to stat non-directories
3838         in more cases" this change was not necessary, because fts would always
3839         stat non-dir entries on a file system with no dirent.dtype information.
3840
3841         However, combined with the gnulib change, this change lets find
3842         avoid many per-non-directory stat-like syscalls (i.e. fstatat)
3843         in some very common cases, like "find . -print" on reiserfs --
3844         which can be a huge performance savings.
3845
3846         find: avoid warning about unused local
3847         * find/pred.c (scan_for_digit_differences): Remove declaration of
3848         unused local, "ok". (second time, really applying that patch).
3849
3850 2009-02-21  James Youngman  <jay@gnu.org>
3851
3852         Update gnulib version.
3853         * import-gnulib.config (gnulib_version): Update from
3854         d4b129b8e5f8a8d1198020fd6fc79310d305936c to
3855         df70a4bf4a1e84171918db09b639ae1a14c2a9b2.  This pulls in the
3856         following relevant changes:
3857         fts: correct internal computation of nlinks (optimization-related)
3858         fts: move a function definition "up" (no semantic change)
3859         fts: arrange not to stat non-directories in more cases
3860         fts: add #if guards so that the fts_lgpl module still builds
3861         fts: avoid used-uninitialized error due to recent change
3862         regex: avoid compilation failure with upcoming gcc-4.4
3863         regex: fix glibc bug 697
3864         regex: fix glibc bug 9697
3865         Other changes may also be relevant; for details please check gnulib/ChangeLog.
3866
3867         Improvements to import-gnulib.config, import-gnulib.sh.
3868         * import-gnulib.config (gpl3_update_files): No longer need to
3869         update the licenses of build-aux/mdate-sh, build-aux/texinfo.tex
3870         or build-aux/ylwrap as they are already GPLv3+.
3871         (modules): Use the strdup-posix module instead of strdup, and stop
3872         using the obsolete modules memcmp and memset, since we now assume
3873         those functions will already be present on the host system.
3874         * import-gnulib.sh (rehack): Be more verbose about which files
3875         actually needed a license edit and which did not.
3876
3877         Follow gnulib-tool's Makefile.am edit suggestions.
3878         * find/Makefile.am (LDADD): Use $(LIBINTL) instead of @INTLLIBS@
3879         and use $(LIB_CLOCK_GETTIME) instead of @LIB_CLOCK_GETTIME@.
3880         * lib/Makefile.am: Likewise.
3881         * locate/Makefile.am: Likewise.
3882         * xargs/Makefile.am: Likewise.
3883         * import-gnulib.sh (hack_gnulib_tool_output): Add
3884         m4/gnulib-cache.m4 to EXTRA_DIST in gnulib/Makefile.am, as
3885         gnulib-tool suggests.
3886
3887 2009-02-21  Jim Meyering  <meyering@redhat.com>
3888
3889         find: avoid warning about unused local, remove unnecessary include.
3890         * find/pred.c (scan_for_digit_differences): Remove declaration of
3891         unused local, "ok".
3892         (do_time_format): Remove decl of "done"; replace sole use with a
3893         constant, "true".  Initialize "i" and "n".
3894         * lib/dircallback.c: Don't include unistd.h.  Not needed.
3895
3896 2009-01-17  Thien-Thi Nguyen  <ttn@gnuvola.org>
3897
3898         find: Fix -regexptype parse specification bug: declare as POSOPT.
3899         * find/parser.c (parse_table): Parse -regextype as POSOPT.
3900
3901 2008-12-26  Jim Meyering  <meyering@redhat.com>
3902
3903         find: avoid using undefined statbuf
3904         * /ftsfind.c (consider_visiting): Use local variable, mode,
3905         rather than possibly undefined statbuf.st_mode.
3906
3907 2008-12-23  James Youngman  <jay@gnu.org>
3908
3909         Fix Savannah bug #25154: Failure to compile with GCC-2.95.4
3910         * find/parser.c (do_parse_xmin): Move declaration of struct
3911         timespec origin before the statements; declarations after
3912         statements are a GCC extension we were accidentally relying on.
3913
3914 2008-12-21  James Youngman  <jay@gnu.org>
3915
3916         Fix Savannah bug #25144: Misleading message for find -user unknown.
3917         * find/parser.c (parse_user): If there is no known group for the
3918         specified user (and it does not appear to be a uid), issue a
3919         fatal error message instead of returning false, because the error
3920         message that results from a return of false is "invalid argument",
3921         which is misleading in this case.  Similarly for a missing or an
3922         empty argument.
3923
3924 2008-12-01  James Youngman  <jay@gnu.org>
3925
3926         * po/fr.po: Updated French translation.
3927
3928         * po/id.po: Updated Indonesian translation.
3929
3930 2008-12-01  Geoff Gole  <geoffgole@gmail.com>
3931
3932         * xargs/xargs.1 (STANDARDS CONFORMANCE): Fix typo.
3933
3934 2008-11-30  Jim Meyering  <meyering@redhat.com>
3935
3936         Pass file type information in dirent.d_type from fts to find.
3937         * find/ftsfind.c (consider_visiting): When fts provides usable
3938         dirent.d_type information, and the only stat information required
3939         by find's predicates is the file-type information normally found
3940         in stat.st_mode (that is, not the permissions information), skip
3941         the now-redundant stat calls.  This change is useful only with the
3942         very latest version of fts.c from gnulib.  Requires gnulib version
3943         d4b129b8e5f8a8d1198020fd6fc79310d305936c or later.
3944         * find/ftsfind.c (find): Set state.have_type if fts returned type
3945         information.
3946
3947 2008-11-08  James Youngman  <jay@gnu.org>
3948
3949         * import-gnulib.config (gnulib_version): Update version of gnulib,
3950         mainly in order to pull in Jim Meyering's efficiency improvements
3951         to fts.  See http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=2f2978ede97205c49d3e568ccffa5a04fb53326b
3952         * lib/dircallback.c: gnulib's lstat.h is now gone, instead it
3953         provides <sys/stat.h> where that is needed.
3954
3955 2008-11-08  Jim Meyering <meyering@redhat.com>
3956
3957         * README-CVS: tiny typo fix (s/fileutils/findutils/).
3958
3959 2008-09-07  James Youngman  <jay@gnu.org>
3960
3961         Fix bug #23996 (integer overflow when parsing "-used 3").
3962         * find/parser.c (get_relative_timestamp): Check for overflow after
3963         the fact by comparing the relative sizes of the result and the
3964         operands.  This prevents an incorrect diagnosis of overflow when
3965         the resulting tv_sec is correctly negative (as is normally the
3966         case for -used).
3967
3968 2008-08-31  James Youngman  <jay@gnu.org>
3969
3970         New Czech translation.
3971         * po/cs.po: New Czech translation.
3972         * configure.ac: Added cs (Czech) to ALL_LINGUAS.
3973
3974         Fix Savannah bug #24169 (-neweraa without following arg coredumps).
3975         * find/parser.c (parse_newerXY): Issue a fatal error message if
3976         there is no following argument.
3977         * find/testsuite/find.gnu/sv-bug-24169.exp: Test case for this
3978         bug.
3979         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Also distribute
3980         this new test file.
3981         * NEWS: Mention this change.
3982
3983 2008-08-04  James Youngman  <jay@gnu.org>
3984
3985         * find/find.1: correct typo seach->seach (reported by Bobby
3986         R. Ward).
3987         * locate/updatedb.1: correct typo Any -> any (reported by Reuben
3988         Thomas).
3989
3990 2008-06-28  James Youngman  <jay@gnu.org>
3991
3992         Fix savannah bug #23070 (find.1 needs update for -perm /000)
3993         * find/find.1 (-perm /mode): The all-bits-zero behaviour has
3994         already changed.
3995         * NEWS: Mention the fix.
3996
3997 2008-06-21  James Youngman  <jay@gnu.org>
3998
3999         * import-gnulib.config (gnulib_version): Updated to current HEAD
4000         gnulib.
4001
4002         Fix Savannah bug #23663, crash in some locales for %AX.
4003         * find/pred.c (do_time_format): Fix off-by-one error in handling
4004         of the buffer used to print timestamps.   This caused a crash in
4005         some locales when handling the %AX format specifier.
4006         * NEWS: Mention this bugfix.
4007
4008 2008-06-20  RB  <aoz.syn@gmail.com>
4009
4010         * doc/find.texi (Finding the Shallowest Instance): Add worked
4011         example explaining how to efficiently locate the shallowest
4012         instances of '.svn' or 'CVS' in a forest of project trees.
4013         * find/find.1 (EXAMPLES): Add the same example here (with slightly
4014         briefer wording).
4015
4016 2008-06-19  Per Starbäck  <starback@stp.lingfil.uu.se> (tiny change)
4017
4018         * doc/find.texi (Unusual characters in filenames): Directory
4019         separator is the slash, not the backslash.
4020
4021 2008-06-19  James Youngman  <jay@gnu.org>
4022
4023         * po/zh_CN.po: Updated the Chinese (simplified) translation.
4024         * NEWS: Mention this change.
4025
4026 2008-06-19  Stepan Kasal  <skasal@redhat.com>
4027
4028         * doc/find.texi (Cleaning Up): Move the note about -depth up.
4029
4030 2008-06-19  James Youngman  <jay@gnu.org>
4031
4032         * po/lt.po: New Lithuanian translation.
4033         * NEWS: Mention this change.
4034         * configure.ac: Add "lt" to ALL_LINGUAS.
4035
4036 2008-05-28  James Youngman  <jay@gnu.org>
4037
4038         Bugfix to the code that was previously supposed to fix bug #22662
4039         in 4.5.0.
4040         * find/pred.c (scan_for_digit_differences): Remember that wesaw
4041         the first differing digit and also get the order of the
4042         subtractionoperands right.
4043         (do_time_format): Off by one error on checking for a nondigit
4044         after the sequence of changed digits.
4045         * NEWS: Mention this change.
4046
4047 2008-05-18  James Youngman  <jay@gnu.org>
4048
4049         Update gnulib.
4050         * import-gnulib.config (gnulib_version): Update to current head
4051         version of gnulib.
4052
4053         Document effect of gnulib update, mainly on yesno().
4054         * doc/find.texi (Unusual Characters in File Names): Explain that
4055         the LC_CTYPE variable affects which characters are considered to
4056         be printable by -printf %p, -print and -fprint.
4057         (Querying): Explain in more detail how environment variables
4058         affect the interpretation of the response to -ok and -okdir.
4059         (Regular Expressions): Indicate that the locale configuration
4060         affects the interpretation of regular expressions.
4061         (Environment Variables): Describe how LC_COLLATE and LC_CTYPE
4062         affect the interpretation of regular expressions.  Indicate that
4063         LC_MESSAGES affects the interpretation of the response to -ok.
4064         * find/find.1 (-ok): Describe the effect of POSIXLY_CORRECT,
4065         LC_CTYPE and LC_COLLATE.
4066         (-okdir): Likewise.
4067         (UNUSUAL FILENAMES): Describe how LC_CTYPE affects -printf %p,
4068         -print, -fprint.
4069         (STANDARDS CONFORMANCE): -ok and -okdir now obey the system's
4070         definition of yes/no if POSIXLY_CORRECT is set.  In any case,
4071         LC_CTYPE and LC_COLLATE may have some effect.  Point out that
4072         the setting of LC_MESSAGES deternmines what pattern is used to
4073         interpret the user's response to -ok/-okdir.
4074         * find/parser.c: Remove definition of ISUPPER, which we no longer
4075         need.
4076         * NEWS: mention these changes.
4077
4078 2008-04-25  Eric Blake  <ebb9@byu.net>
4079
4080         Support cygwin 1.7.0.
4081         * find/parser.c (parse_newerXY)
4082         [HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC]: Add support for another
4083         form of birthtime.
4084         * import-gnulib.config (gnulib_version): Update to pick up change
4085         necessary for cygwin fstatat.
4086
4087 2008-03-21  James Youngman  <jay@gnu.org>
4088
4089         * find/testsuite/find.gnu/xtype-symlink.exp: Removed unnecessary
4090         test code which created a insecure tempfile.
4091
4092 2008-03-16  James Youngman  <jay@gnu.org>
4093
4094         Update gnulib.
4095         * import-gnulib.config (gnulib_version): Update to a newer version
4096         of gnulib.
4097
4098         Find optimises at -O2 by default.
4099         * find/util.c (set_option_defaults): Use a default optimisation
4100         level of 2 rather than 0.
4101         * NEWS: Mention this change.
4102
4103         Begin work on findutils-4.5.x.
4104         * configure.ac: We're now working on the 4.5.x release series, so
4105         change the version number.
4106         * NEWS: Likewise.
4107
4108 2008-03-10  Justin Pryzby  <justinpryzby@users.sourceforge.net> (tiny change)
4109
4110         * doc/find.texi: Various typo corrections.
4111
4112 2008-03-10  Eric Blake  <ebb9@byu.net>
4113
4114         Don't truncate printed ino values.  Fixes Savannah bug #15472.
4115         * find/find.c (wd_sanity_check): Use PRIuMAX for platforms with
4116         64-bit ino_t.
4117         * NEWS: Document this.
4118
4119 2008-03-10  Jim Meyering  <meyering@redhat.com>
4120
4121         Rename local and member "dirfd" to avoid shadowing the function.
4122         This avoids many warnings from gcc -Wshadow:
4123         * lib/buildcmd.h (struct buildcmd_state) [dir_fd]: Rename member
4124         from dirfd.
4125         * find/defs.h (struct exec_val) [dir_fd]: Likewise.
4126         Rename parameter in prototype.
4127         * find/ftsfind.c (inside_dir): Rename parameter: s/dirfd/dir_fd/
4128         * find/parser.c (new_insert_exec_ok, insert_exec_ok): Likewise.
4129         * find/pred.c (new_impl_pred_exec, prep_child_for_exec, launch):
4130         s/dirfd/dir_fd/
4131         * find/util.c (do_complete_pending_execdirs): Likewise.
4132         (complete_pending_execdirs): Likewise
4133         * lib/buildcmd.c (bc_init_state, bc_clear_args): Likewise.
4134         * lib/dircallback.c (run_in_dir): Likewise.
4135         * lib/dircallback.h (DIRCALLBACK_H): Likewise.
4136         * lib/listfile.c (list_file, get_link_name_at): Likewise.
4137         * lib/listfile.h (LISTFILE_H): Likewise.
4138
4139         Avoid link failure with -fno-common.
4140         * locate/code.c (program_name): Declare "extern".
4141
4142 2008-03-09  James Youngman  <jay@gnu.org>
4143
4144         Fix (documentation) bug #20873, / and . in file names for -path.
4145         * doc/find.texi (Full Name Patterns): Mention that * in the "find
4146         -path" pattern will match both / and leading dots.
4147
4148 2008-03-08  Jim Meyering  <meyering@redhat.com>
4149
4150         Fix doc typos.
4151         * doc/find-maint.texi (Security): s/ongest/longest/
4152         (Making Releases): s/the the/the/
4153
4154         Avoid link failure with gcc -fno-common.
4155         * find.c (program_name, starting_desc): Declare "extern".
4156
4157 2008-02-15  Eric Blake  <ebb9@byu.net>
4158
4159         Avoid compiler warnings.
4160         * find/pred.c (pred_name_common): Remove unused variable.
4161         * locate/locate.c (print_stats): Avoid undefined format string.
4162
4163 2008-02-15  James Youngman  <jay@gnu.org>
4164
4165         * README-CVS: Explain how to update the translations from the
4166         translation project.
4167
4168         * NEWS, configure.ac: Change release number to 4.3.14-CVS.
4169
4170 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de> (tiny change)
4171
4172         * import-gnulib.config: Add progname.
4173
4174         * lib/Makefile.am (LDADD): Use @LIBINTL@ instead of @INTLLIBS@.
4175
4176         * xargs/xargs.1: Fix a couple of typos.
4177
4178 2008-02-12  James Youngman  <jay@gnu.org>
4179
4180         Updated translations: German, Irish, Dutch, Polish, Vietnamese.
4181         * po/de.po, po/ga.po, po/nl.po, po/pl.po, po/vi.po: Updated from
4182         the Translation Project.
4183
4184         Fix Savannah bug #22056, -Xtime tests are off by one second.
4185         * find/defs.h (struct options): Change cur_day_start from time_t
4186         to strct timespec.
4187         * find/util.c (set_option_defaults): Likewise.
4188         * find/parser.c (get_relative_timestamp): Change the origin
4189         argument from time_t to struct timespec.
4190         (estimate_timestamp_success_rate): Ignore the nanoseconds field of
4191         the timestamp when estimating the probable success rate.
4192         (parse_daystart): Handle the nanoseconds field too.
4193         (do_parse_xmin): The origin argument to get_relative_timestamp()
4194         is of type struct timespec, not time_t.
4195         (parse_used): Likewise.
4196         (parse_time): Likewise.
4197         * find/pred.c (pred_timewindow): in the COMP_EQ case, accept times
4198         exactly at the end of the window and do not accept times exactly
4199         at the start (reversing the previous treatment of the bounds).
4200         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added test for
4201         -mtime 0; find.posix/mtime0.{exp,xo}.
4202         * NEWS: mention this bugfix.
4203
4204 2008-02-09  James Youngman  <jay@gnu.org>
4205
4206         * doc/find.texi (xargs options): Moved documentation of xargs'
4207         options into this new section.
4208         (Invoking the shell from xargs): New section providing examples
4209         about "xargs sh -c '...'".
4210
4211         * xargs/xargs.1: Indicate that the "sh -c" trick with xargs
4212         achieves the same thing as BSD's "xargs -o", but in a more
4213         flexible way.
4214
4215         * locate/updatedb.sh: Actually rename the old database to the new
4216         one atomically, instead of just claiming the rename is atomic in a
4217         comment :)  This fixes Savannah bug #22057.
4218
4219         * find/find.c (ngettext): Introduce a new macro to help with
4220         internationalising plurals.   Use it to allow better
4221         translations of format strings.
4222         * locate/locate.c: Likewise.
4223
4224 2008-01-07  James Youngman  <jay@gnu.org>
4225
4226         * xargs/xargs.c: (main): Standardise on "Warning" instead of
4227         "warning" in messages.
4228
4229         * xargs/xargs.c: (add_proc): Use x2nrealloc to extend the pids
4230         array, rather than doubling the size of the buffer (since the old
4231         aproach was vulnerable to overflow).
4232
4233         Reap all available child processes before every fork.  This fixes
4234         Savannah bug #21960.
4235         * xargs/xargs.c: (proc_max): since this is a non-negative
4236         quantity, make it unsigned.
4237         (procs_executing): Likewise.
4238         (pids_alloc): Likewise (using size_t).
4239         (procs_executed): In order to prevent possible overflow, make this
4240         a boolean, not a count.  We only cared if the previous counter was
4241         zero or not, anwyay.
4242         (add_proc): Set procs_executed to true rather than incrementing it.
4243         (wait_for_proc): When called, always reap all available children.
4244         Add an extra argument which is the minimum number of children we
4245         must reap before returning.
4246         (wait_for_proc_all): Pass the new extra argument.
4247         (xargs_do_exec): Call wait_for_proc() to reap all available
4248         children before forking a new child.  Modify other calls to
4249         wait_for_proc to pass the new extra argument.
4250         * NEWS: Mention this change.
4251
4252 2007-12-20  James Youngman  <jay@gnu.org>
4253
4254         * find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c,
4255         find/tree.c, lib/regextype.c, locate/locate.c, xargs/xargs.c,
4256         find.c: Backed out positional paremeter change, as the use of
4257         positional parameters was over-complex and unnecessary.  We'll
4258         re-apply the pluralisation support change soon, but without the
4259         positional parameters.
4260
4261 2007-12-20  Jakub Bogusz <qboosh@pld-linux.org> (tiny change)
4262
4263         * xargs/xargs.c (parse_num): Corrected typo in format string
4264         message.
4265
4266 2007-12-20  Clytie Siddall <clytie@riverland.net.au> (tiny change)
4267
4268         * find/find.c (wd_sanity_check): Corrected typo in the format
4269         string for an error message, which might cause a crash in
4270         "oldfind" if a directory we moved into turned out to be a symbolic
4271         link that moved while we were trying to change directory.
4272
4273 2007-12-20  James Youngman  <jay@gnu.org>
4274
4275         * configure.ac: Advance the version number, as we are moving on
4276         from 4.3.12.
4277         * NEWS: Likewise
4278
4279 2007-12-19  James Youngman  <jay@gnu.org>
4280
4281         * find/find.c (ngettext): Introduce a new macro to help with
4282         internationalising plurals.   Use it with positional parameters in
4283         order to allow better translations of format strings.
4284         * find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c,
4285         find/tree.c, lib/regextype.c, locate/locate.c, xargs/xargs.c: Likewise.
4286
4287 2007-12-19  Benno Schulenberg <coordinator@translationproject.org> (tiny change)
4288
4289         * find/find.1: Corrected two typos.
4290
4291 2007-12-19  James Youngman  <jay@gnu.org>
4292
4293         * po/nl.po: Updated Dutch translation from the Translation project.
4294         * po/pl.po: Likewise for the Polish translation.
4295         * po/sv.po: Likewise for the Swedish translation.
4296         * po/vi.po: Likewise for the Vietnamese translation.
4297
4298 2007-12-13  Eric Blake  <ebb9@byu.net>
4299
4300         Allow bootstrapping with autoconf 2.61a.
4301         * configure.ac (AC_AIX, AC_ISC_POSIX): Delete, now that gnulib
4302         takes care of this.
4303         (jy_AC_TYPE_INTMAX_T): Delete, now that gnulib stdint module takes
4304         care of this.
4305
4306 2007-12-09  James Youngman  <jay@gnu.org>
4307
4308         * doc/perm.texi: Updated from the upstream source.
4309
4310         * po/nl.po, po/pt.po: Updated from the Translation Project.
4311
4312 2007-12-08  James Youngman  <jay@gnu.org>
4313
4314         * xargs/xargs.1: Added examples on stdin handling and more
4315         efficient core file deletion.
4316         * NEWS: Mention this.
4317
4318         * doc/.cvsignore: Ignore regexprops-generic.texi.
4319         * doc/.gitignore: ditto
4320
4321 2007-12-04  James Youngman  <jay@gnu.org>
4322
4323         Fix Savannah bug #15384, find misbehaves when parent directory is
4324         not readable.
4325         * find/testsuite/find.posix/parent.exp: New test
4326         * find/testsuite/find.posix/parent.xo: New test
4327         * find/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO):
4328         Added parent.exp, parent.xo.
4329         * find/find.c (safely_chdir): If safely_chdir_nofollow fails with
4330         SafeChdirFailDestUnreadable, fall back on safely_chdir_lstat.
4331
4332         * find/find.1: Formatting fixes; options should be in bold.
4333
4334 2007-12-02  James Youngman  <jay@gnu.org>
4335
4336         Fix Savannah bug #20802, find -delete anomalies
4337         * find/pred.c (pred_delete): Set find's exit status to nonzero if
4338         -delete fails.
4339         * find/find.1 (-delete): Document this.
4340         * doc/find.texi (Delete Files): Document this.
4341         * NEWS: Mention the fix.
4342
4343 2007-11-30  James Youngman  <jay@gnu.org>
4344
4345         Fix Savannah bug #20865 (-prune -delete without an explicit
4346         -depth is now an error).
4347         * find/parser.c (check_option_combinations): Diagnose the
4348         situation where -delete and -prune are both used, because -delete
4349         turns on -depth and -depth makes -prune do nothing.
4350         * find/tree.c (build_expression_tree): call
4351         check_option_combinations().
4352         * find/defs.h (struct options): Add new boolean field
4353         explicit_depth.
4354         Also declare check_option_combinations.
4355         * find/util.c (set_option_defaults): Initialise explicit_depth.
4356         * NEWS: Mention this fix.
4357
4358 2007-11-29  James Youngman  <jay@gnu.org>
4359
4360         Support the generation of regexprops-generic.texi.
4361         * lib/regextype.h (get_regex_type_context): Used to indicate if a
4362         particular type of regular expression is of interest for
4363         regexprops.texi (which is findutils-specific) or
4364         regexprops-generic.texi (which is not).   The "context" is simply
4365         a flag set in a word.
4366         * lib/regextype.c (get_regex_type_context): Implement this.
4367         (regex_map): Assign a context to each regular expression type.
4368         * lib/regexprops.c: Use the context information from regextype.c
4369         to decide which regular expression types to docuemnt in the
4370         output.  The selection is indicated on the command line; "generic"
4371         and "findutils" are supported.
4372         (copying): New function, which emits a copyright header into the
4373         output.
4374         (comment): New function for emitting a comment.
4375         (ignore): New function which returns nonzero when the indicated
4376         type of regular expression is not of interest for this version of
4377         the document.
4378         (menu): Miss out the non-interesteing regex types.
4379         (get_next): Returns the regex type name for the "next" pointer,
4380         taking into account which regex types are ignored.
4381         (describe_all): Take into account which regex types are ignored,
4382         and emit a copying header also.   Include a comment indicating
4383         which "context" was of interest when generating the output.
4384         * doc/Makefile.am: Add regexprops-generic.texi.  Generate this
4385         file from regexprops.c.
4386
4387         Check gnulib out with native git, rather than git-cvspserver.
4388         This fixes Savannah bug #21568, for the second time.
4389         * import-gnulib.config (gnulib_version): Switch to using a git
4390         commit id and native git, since git-cvspserver silently fails to
4391         support "cvs update -D".
4392         * import-gnulib.sh (do_checkout): Check gnulib out with git rather
4393         than CVS.
4394         (main): Require 'git' to be available.
4395         (move_cvsdir): Remove any pre-existing gnulib-cvs directory.
4396         * doc/find-maint.texi (Using the GNU Portability Library): Desribe
4397         how we now obtain gnulib.  Update the instructions on how we patch
4398         gnulib.
4399         * .gitignore: Ignore gnulib-git, not gnulib-cvs
4400         * .cvsignore: Ditto
4401         * Makefile.am (findutils-check-smells): Change from gnulib-cvs to
4402         gnulib-git.
4403         * README-CVS: Mention the extra dependency on git.
4404         * NEWS: Mention this change.
4405
4406         Add test case for Savannah bug #20803 (-prune return value).
4407         * find/testsuite/find.posix/prune-result.exp: New test for
4408         Savannah bug #20803.
4409         * find/testsuite/find.posix/prune-result.xo: Expected otuput for
4410         new test prune-result.exp.
4411         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added
4412         find.posix/prune-result.exp
4413         (EXTRA_DIST_XO): Added find.posix/prune-result.xo
4414
4415 2007-11-27  James Youngman  <jay@gnu.org>
4416
4417         * find/pred.c (pred_prune): Always return true.  This fixes
4418         Savannah bug #20803.
4419         * doc/find.texi (Directories): Document the change to -prune.
4420         * find/find.1: Document the change.
4421         * NEWS: Mention the fix.
4422
4423 2007-11-26  James Youngman  <jay@gnu.org>
4424
4425         Fix Savannah bug #20970, handling of trailing slashes with -name.
4426         * find/pred.c (pred_name_common): Strip trailing slashes from the
4427         pathname before applying fnmatch() to it.  This fixes Savannah bug
4428         #20970.
4429         * find/testsuite/find.posix/nameslash.exp: Test case for bug #20970.
4430         * find/testsuite/find.posix/nameslash.xo: Expected output file for
4431         same.
4432         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Added nameslash.exp.
4433         (EXTRA_DIST_XO): Added nameslash.xo.
4434
4435         Fix Savannah bug #21634, No copy of FDL1.2 included in source
4436         code.
4437         * doc/find.texi: Change license to the GNU Free Documentation
4438         License 1.2.
4439         (GNU Free Documentation License): Include fdl.texi
4440         * doc/find-maint.texi (GNU Free Documentation License): Include a
4441         copy of the FDL (it was already under this license).
4442         * doc/Makefile.am (find_maint_TEXINFOS): Include fdl.texi
4443         (find_TEXINFOS): Include fdl.texi
4444         * import-gnulib.config (modules): Include gpl-3.0 and fdl.
4445
4446         * doc/perm.texi: Added copyright license, following the license of
4447         the original source document (perm.texi from coreutils).
4448
4449 2007-11-25  James Youngman  <jay@gnu.org>
4450
4451         * Makefile.am (jy-regex-fix): Comment that the regex.c fix needs
4452         to stay until we no longer support Automate-1.9.
4453
4454         * doc/perm.texi (Mode Structure): Fix setgid/setuid typo.
4455
4456 2007-11-24  James Youngman  <jay@gnu.org>
4457
4458         * doc/find.texi (Mode Bits): Correct the warning about the change
4459         in behaviour of -perm /000 to indicate that the change has
4460         happened now.  This fixes Savannah bug #21628.
4461         * NEWS: Mention this.
4462
4463 2007-11-22  James Youngman  <jay@gnu.org>
4464
4465         POSIXLY_CORRECT turns off warnings.
4466         * find/defs.h (struct options): Added member posixly_correct.
4467         This is set when the POSIXLY_CORRECT environment variable is set.
4468         * find/util.c (set_option_defaults): Set options.posixly_correct
4469         if the POSIXLY_CORRECT environment variable is set.
4470         (set_option_defaults): Turn off warnings when POSIXLY_CORRECT is
4471         in force.
4472         * find/find.1: Document this.
4473         (Environment Variables): Likewise.
4474         (Warning Messages): Likewise.
4475
4476         Non-POSIX compliant arguments to -perm generate an error when
4477         POSIXLY_CORRECT is set.
4478         * find/parser.c (parse_table): Indicate which primaries are
4479         defined by POSIX.
4480         (non_posix_mode): New function; issues an error message when a
4481         non-POSIX-compliant argument to -perm is used (and POSIXLY_CORRECT
4482         is in force).
4483         (parse_perm): Call non_posix_mode when a non-POSIX-compliant mode
4484         argument is seen.
4485         * find/testsuite/find.gnu/posix-perminvalid.exp: New file; tests
4486         invalid arguments to -perm.
4487         * find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
4488         posix-perminvalid.exp.
4489         * find/find.1: Document this.
4490         * doc/find.texi (Mode Bits): Likewise
4491         (Environment Variables): Likewise
4492
4493
4494         * xargs/xargs.1: Options should be bold, not italic; filenames
4495         should also be italic.  OPTIONS should be a section, not a
4496         subsection.  In the description of --max-lines, "max-args" was
4497         corrected to "max-lines".  Turn off hyphenation in the SYNOPSIS
4498         section.  This fixes Savannah bug #21270.
4499
4500 2007-11-13  James Youngman  <jay@gnu.org>
4501
4502         * NEWS, configure.ac: Prepare for the release of findutils-4.3.10.
4503
4504         * import-gnulib.sh (usage): If the existing CVS working tree for
4505         gnulib in the source tree does not yet point at the
4506         git-cvs-pserver repository, move the old gnulib working tree out
4507         of the way and do a fresh checkout.  This fixes Savannah bug
4508         #21568.
4509
4510 2007-11-11  James Youngman  <jay@gnu.org>
4511
4512
4513         * configure.ac: Prepared for release of findutils-4.3.9.
4514         * NEWS: Likewise.
4515
4516         * po/POTFILES.in: Use gnulib/lib/getdate.y rather than
4517         gnulib/lib/getdate.c, because the former is the source file, and
4518         because without this change the update-po target of po/Makefile
4519         fails.
4520
4521         * import-gnulib.config (gnulib_version): Move to gnulib
4522         2007-11-10.
4523
4524         * po/hu.po, po/nl.po: Updated from Translation Project.
4525
4526 2007-09-08  James Youngman  <jay@gnu.org>
4527
4528         Better documentation on $PATH security checks.
4529         * doc/find.texi (Single File): Better explanation of what makes
4530         certain values of $PATH insecure.  This fixes Savannah bug
4531         #20951.
4532         * find/find.1 (-execdir): Likewise.
4533
4534         Document interaction of -depth/-delete/-prune.
4535         * doc/find.texi (Directories): Mention that "-prune ... -delete"
4536         will not do what you want and will cause the deletion of more
4537         files than you probably intended.
4538         (Delete Files): Likewise, suggest using "-depth" when testing
4539         command lines you plan to eventually add "-delete" to.
4540         (Cleaning Up): Add -depth explicitly to an example which uses
4541         -delete.
4542         * find/find.1 (-depth): Mention that -delete also implies -depth.
4543         (-delete): Warn against putting -delete first.
4544         (-prune): Also warn against -prune ... -delete.
4545         NEWS: Mention these changes.
4546
4547 2007-08-23  Eric Blake  <ebb9@byu.net>
4548
4549         Pick up gnulib change to getline module.
4550         * import-gnulib.config (gnulib_version): Bump date.
4551         * locate/bigram.c: Use <stdio.h>, not getline.h.
4552         * locate/code.c: Likewise.
4553         * locate/frcode.c: Likewise.
4554         * locate/locate.c: Likewise.
4555
4556         * po/ChangeLog: Delete, merge into this file.
4557
4558 2007-08-23  James Youngman  <jay@gnu.org>
4559
4560         * po/nl.po: Updated from Translation Project
4561
4562         * find/parser.c (check_path_safety): Assume the path is safe is
4563         $PATH is not set.  This avoids a segfault in that situation
4564         and thus fixes Savannah bug #20834.
4565
4566 2007-08-22  James Youngman  <jay@gnu.org>
4567
4568         * find/parser.c (parse_path): This is the 'canonical' name once
4569         again.
4570         (parse_wholename): This is not.
4571         (parse_ipath): No longer deprecated.
4572         * NEWS: Mention this.
4573
4574 2007-08-22  Eric Blake  <ebb9@byu.net>
4575
4576         Fix Savannah bug #20871.
4577         * find/find.c (main): Remove bogus assertion.
4578         * NEWS: Document the fix.
4579
4580         Update to recent gnulib addition of idcache.h.
4581         * lib/listfile.c (getuser, getgroup): Use header rather than
4582         declaring things ourself.
4583         * po/POTFILES.in (locate/frcode.c): Add missing file.
4584
4585 2007-08-21  Eric Blake  <ebb9@byu.net>
4586
4587         Fix for Savannah bug #20273, find -ok with seekable stdin.
4588         * find/find.c (main): Use close_stdin, not close_stdout.
4589         * import-gnulib.config (gnulib_version): Pick up yesno tests.
4590         * NEWS: Document the change.
4591         * build-aux/.cvsignore: Ignore compile.
4592
4593 2007-08-20  Paul Eggert  <eggert@cs.ucla.edu>
4594         and Eric Blake  <ebb9@byu.net>
4595
4596         Improve translation of xstrtol messages.
4597         * import-gnulib.config (destdir): Upgrade gnulib to 2007-08-11.
4598         * locate/locate.c (dolocate): Adjust to API change of xstrtol
4599         gnulib module.
4600         * po/POTFILES.in: Likewise.
4601         * NEWS: Document the enhancement.
4602
4603 2007-08-20  James Youngman  <jay@gnu.org>
4604
4605         * doc/find.texi (Directories): Clarify that built commands which
4606         have not been executed yet will be executed before find quits,
4607         even with -quit.  Also clarify the difference between -prune and
4608         -quit.
4609
4610 2007-08-18  Eric Blake  <ebb9@byu.net>
4611
4612         Fix Savannah bug #20751.
4613         * lib/listfile.c (list_file): Accommodate gnulib change of 3 Jul
4614         2006.
4615         * NEWS: Document this.
4616         Reported by Nigel Stepp.
4617         * THANKS: Sort and update.
4618         * AUTHORS: Add myself.
4619
4620 2007-08-05  Eric Blake  <ebb9@byu.net>
4621
4622         Fix Savannah bugs #20662, #20688.
4623         * find/find.c (at_top): Avoid memory leak.
4624         * find/pred.c (do_fprintf, pred_iname, pred_name): Likewise.
4625         (pred_name_common): New function, factored from pred_iname and
4626         pred_name.
4627         * find/parser.c (check_name_arg): Let -nowarn silence -name /.
4628         * locate/locate.c (visit_basename): Avoid memory leak.
4629         * NEWS: Document the changes.
4630         * doc/find.texi (Warning Messages): Document -nowarn's effect on
4631         -name and -iname.
4632         * find/testsuite/find.gnu/name-slash.exp: New test, to ensure
4633         20662 doesn't regress on '-name /', and that 20688 silences the
4634         warning.
4635         * find/testsuite/find.gnu/printf-slash.exp: Likewise.
4636         * find/testsuite/find.gnu/name-slash.xo: Expected results.
4637         * find/testsuite/find.gnu/printf-slash.xo: Likewise.
4638         * find/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP):
4639         Distribute new tests.
4640
4641 2007-07-31  Eric Blake  <ebb9@byu.net>
4642
4643         Allow choice of default arg size, Savannah bug #20594.
4644         * configure.ac (DEFAULT_ARG_SIZE): Check environment for a default
4645         size override.
4646         * lib/buildcmd.c (bc_use_sensible_arg_max): Use default size from
4647         configure, if requested.
4648         * README (DEFAULT_ARG_SIZE): Mention the ability to tune this at
4649         configure time.
4650         * NEWS: Document the change.
4651
4652 2007-07-29  James Youngman  <jay@gnu.org>
4653
4654         * po/tr.po: Updated from Translation Project.
4655
4656 2007-07-26  Eric Blake  <ebb9@byu.net>
4657
4658         * doc/.cvsignore: Ignore more generated documentation.
4659
4660 2007-07-23  Eric Blake  <ebb9@byu.net>
4661
4662         * find/parser.c (parse_version): Avoid compiler warning.
4663         * locate/code.c (includes): Likewise.
4664
4665 2007-07-22  Eric Blake  <ebb9@byu.net>
4666
4667         * po/POTFILES.in: Add lib/findutils-version.c.
4668
4669 2007-07-22  James Youngman  <jay@gnu.org>
4670
4671         * find/find.1: Corrected a number of typos and fixed up the
4672         alphabetical section ordering.  This fixes Savannah bug #20552.
4673
4674         Version banners now comply with the GNU coding standard.
4675         * find/parser.c (parse_version): Use display_findutils_version()
4676         instead of printing the information manually.  Don't include
4677         gnulib-version.h since we no longer directly use that header.
4678         * lib/findutils-version.c: Added
4679         * lib/findutils-version.h: Added
4680         * import-gnulib.config (modules): Added version-etc and
4681         version-etc-fsf.
4682         * lib/Makefile.am (libfind_a_SOURCES): added findutils-version.c.
4683         * find/version.c: Removed
4684         * find/Makefile.am: Remove version.c
4685         * locate/Makefile.am: Don't link ../find/version.o
4686         * xargs/Makefile.am: Ditto
4687         * xargs/xargs.c (main): Use display_findutils_version()
4688         * locate/code.c (main): Ditto
4689         * locate/frcode.c (main): Ditto
4690         * locate/locate.c (dolocate): Ditto
4691         * locate/updatedb.sh (version): Display copyright information in
4692         the right format.   Also ensure that we exit with a nonzero status
4693         if there was an output error for --help and --version.
4694         * find/testsuite/config/unix.exp (find_version): Adjust for
4695         --version format change
4696         * locate/testsuite/config/unix.exp (locate_version): Ditto
4697         * xargs/testsuite/config/unix.exp (xargs_version): Ditto
4698         * NEWS: Mention the change
4699
4700 2007-07-19  Eric Blake  <ebb9@byu.net>
4701
4702         * po/POTFILES.in: Update to reflect current location of
4703         translatable strings.
4704
4705 2007-07-17  Eric Blake  <ebb9@byu.net>
4706
4707         Ensure 'make distcheck' can pass on cygwin.
4708         * configure.in: Rename...
4709         * configure.ac: ...to this, to match automake recommendations.
4710         * NEWS: Add release dates.
4711         * doc/find-maint.texi: Remove trailing whitespace.
4712         (Documentation): Document where release dates are usefully
4713         recorded.
4714         * locate/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Be
4715         aware of .exe.
4716         * .cvsignore: Ignore 'make dist' files.
4717         * po/.cvsignore: Ignore remove-potcdate.sed.
4718
4719 2007-07-14  Eric Blake  <ebb9@byu.net>
4720
4721         * import-gnulib.config (gnulib_version): Bump date, to pick
4722         up fix in canonicalize module testing.
4723
4724 2007-07-06  James Youngman  <jay@gnu.org>
4725
4726         * po/uk.po, po/nl.po, po/vi.po: Updated from Translation Project.
4727
4728 2007-07-04  James Youngman  <jay@gnu.org>
4729
4730         * NEWS: Fixed typos in description of bugfix for bug #20310.
4731
4732 2007-07-03  James Youngman  <jay@gnu.org>
4733
4734         Fix Savannah bug #20310.
4735         * m4/nullsort.m4: If we are cross compiling, assume "sort -z" does
4736         not work on the target.
4737
4738         Manpage improvements.
4739         * find/find.1: More consistent use of quotation marks.
4740         *  locate/locate.1 (HISTORY): New section.
4741
4742 2007-07-02  James Youngman  <jay@gnu.org>
4743
4744         * import-gnulib.sh: (run_gnulib_tool): Don't pass --gpl3 to
4745         gnulib-tool, since the program does not have that option (that was
4746         a local change which proved not to be necessary).
4747
4748         GPL3 migration.
4749         * COPYING: Migrate to version 3 of the GNU General Public license.
4750         * Makefile.am: ditto
4751         * build-aux/check-testfiles.sh: ditto
4752         * build-aux/src-sniff.py: ditto
4753         * debian/copyright: ditto
4754         * doc/find-maint.texi: ditto
4755         * find/defs.h: ditto
4756         * find/find.c: ditto
4757         * find/finddata.c: ditto
4758         * find/fstype.c: ditto
4759         * find/ftsfind.c: ditto
4760         * find/parser.c: ditto
4761         * find/pred.c: ditto
4762         * find/testsuite/config/unix.exp: ditto
4763         * find/tree.c: ditto
4764         * find/util.c: ditto
4765         * import-gnulib.config: ditto
4766         * import-gnulib.sh: ditto
4767         * lib/buildcmd.c: ditto
4768         * lib/buildcmd.h: ditto
4769         * lib/dircallback.c: ditto
4770         * lib/dircallback.h: ditto
4771         * lib/extendbuf.c: ditto
4772         * lib/extendbuf.h: ditto
4773         * lib/forcefindlib.c: ditto
4774         * lib/gnulib-version.h: ditto
4775         * lib/listfile.c: ditto
4776         * lib/listfile.h: ditto
4777         * lib/modetype.h: ditto
4778         * lib/nextelem.c: ditto
4779         * lib/nextelem.h: ditto
4780         * lib/printquoted.c: ditto
4781         * lib/printquoted.h: ditto
4782         * lib/qmark.c: ditto
4783         * lib/regexprops.c: ditto
4784         * lib/regextype.c: ditto
4785         * lib/regextype.h: ditto
4786         * lib/savedirinfo.c: ditto
4787         * lib/savedirinfo.h: ditto
4788         * lib/strspn.c: ditto
4789         * lib/wait.h: ditto
4790         * lib/waitpid.c: ditto
4791         * locate/bigram.c: ditto
4792         * locate/code.c: ditto
4793         * locate/frcode.c: ditto
4794         * locate/locate.c: ditto
4795         * locate/locatedb.h: ditto
4796         * locate/testsuite/config/unix.exp: ditto
4797         * locate/updatedb.sh: ditto
4798         * locate/word_io.c: ditto
4799         * po/fetch-po-files: ditto
4800         * xargs/testsuite/config/unix.exp: ditto
4801         * xargs/xargs.c: ditto
4802
4803         Typo fixes.
4804         * doc/find.texi (Deleting Files): Fixed a typo.
4805         (Deleting Files): Likewise.
4806
4807         New worked example for find.
4808         * doc/find.texi (Copying A Subset of Files): Added a new worked
4809         example.
4810
4811         * doc/find.texi (Updating A Timestamp File): Indicate that %A@ now
4812         includes a sub-second part on many systems.
4813
4814         Include <fcntl.h> unconditionally.
4815         * import-gnulib.config (modules): Also use the fcntl module.
4816         * find/find.c: #include <fcntl.h> unconditionally, since
4817         gnulib provides it if it is absent.
4818         * find/fstype.c: Likewise.
4819         * find/ftsfind.c: Likewise.
4820         * find/parser.c: Likewise.
4821         * find/util.c: Likewise.
4822         * locate/locate.c: Likewise.
4823
4824 2007-06-30  Eric Blake  <ebb9@byu.net>
4825
4826         * find/pred.c (pred_timewindow): Avoid gcc warnings.
4827         (format_date): Likewise.
4828         * find/tree.c (calculate_derived_rates): Likewise.
4829         * locate/word_io.c (getword): Likewise.
4830
4831 2007-06-30  James Youngman  <jay@gnu.org>
4832
4833         * find/find.1 (EXAMPLES): Added an example of using find and cpio -p
4834         to copy a directory tree, with pruning and omitted files.
4835
4836         * find/pred.c (format_date): Use verify_true for constant
4837         conditions rather than assert.
4838         * xargs/xargs.c (main): Ditto.
4839
4840         Enhancements to the code smell detector.
4841         * Makefile.am (findutils-check-smells): Automate the calling of
4842         build-aux/src-sniff.py.
4843         * build-aux/src-sniff.py: Rework to use a list of regex-based
4844         sniffers, to allow checking types of file other than C.  Allow
4845         file-based regex sniffers to give an indication of the line number
4846         where they think the problem (or part of the problem) exists.
4847         Added code smell detectors for a sample Bourne shell problem and
4848         for out-of-date FSF addresses.
4849
4850         * find/tree.c (get_pred_cost): Eliminate unused variable.
4851
4852         Fix Savannah bug #20263 in a more portable way.
4853         * find/tree.c (cost_table_comparison): Avoid casting function
4854         pointers to poiter-to-object, since this is not portable (or
4855         of course conforming).  Instead, use memcmp().
4856
4857 2007-06-28  Eric Blake  <ebb9@byu.net>
4858
4859         * import-gnulib.sh (run_gnulib_tool): Speed operation when
4860         updating an existing tree.
4861
4862         Allow 'make check' to work without prior 'make all'.
4863         * find/Makefile.am (SUBDIRS): Build in . before testsuite.
4864         * locate/Makefile.am (SUBDIRS): Likewise.
4865         * xargs/Makefile.am (SUBDIRS): Likewise.
4866
4867         Fix Savannah bug #20273, xargs -E with seekable stdin.
4868         * import-gnulib.config (modules): Sort, add closein.
4869         * xargs/testsuite/Makefile.am (EXTRA_DIST_EXP, EXTRA_DIST_XO)
4870         (EXTRA_DIST_XI): Add new test.
4871         * xargs/testsuite/config/unix.exp (xargs_start): Support optional
4872         argument to allow test to run a subshell.
4873         * xargs/testsuite/inputs/sv-bug-20273.xi: New file.
4874         * xargs/testsuite/xargs.posix/sv-bug-20273.xo: Likewise.
4875         * xargs/testsuite/xargs.posix/sv-but-20273.exp: Likewise.
4876         * xargs/xargs.c (main): Use close_stdin, not close_stdout.
4877         * NEWS: Document the fix.
4878
4879 2007-06-27  James Youngman  <jay@gnu.org>
4880
4881         Added a maintenance manual.
4882         * doc/find-maint.texi: New file.
4883         * doc/Makefile.am (info_TEXINFOS): Added doc/find-main.texi.
4884         * doc/find.texi (Introduction): Fixed typo.
4885
4886 2007-06-26  Eric Blake  <ebb9@byu.net>
4887
4888         * import-gnulib.config (modules): Allow ./configure
4889         --disable-assert.
4890
4891 2007-06-26  James Youngman  <jay@gnu.org>
4892
4893         * build-aux/src-sniff.py: Detect uses of struct stat where the
4894         header file was not included.
4895         * find/find.c: Fix this, and uses of assert without a following
4896         space (the coding standard requires a space, but there are still
4897         a number of cases where other functions are called with no
4898         following space).
4899         * find/fstype.c: Ditto.
4900         * find/ftsfind.c: Ditto.
4901         * find/parser.c: Ditto.
4902         * find/pred.c: Ditto.
4903         * find/tree.c: Ditto.
4904         * find/util.c: Ditto.
4905         * lib/buildcmd.c: Ditto.
4906         * lib/buildcmd.h: Ditto.
4907         * lib/extendbuf.c: Ditto.
4908         * locate/frcode.c: Ditto.
4909         * locate/locate.c: Ditto.
4910         * locate/word_io.c: Ditto.
4911         * xargs/xargs.c: Ditto.
4912
4913         * find/tree.c (cost_table_comparison): Avoid < comparison between
4914         function pointer types.  Instead cast the function pointers to
4915         (const void*).  Both alternatives are undefined C, but the former
4916         actually fails to compile on some systems.   This fixes Savannah
4917         bug #20263.
4918         * NEWS: mention the fix
4919
4920         * find/tree.c (calculate_derived_rates): Removed assignment to
4921         rate variable following an assert(0) call, which had been added to
4922         silence a "used before initialised" warning, and replace it with a
4923         call to abort, which (a) correctly halts execution if _NDEBUG is
4924         defined and (b) more accurately documents what's happening.
4925
4926         * find/parser.c (get_stat_Ytime): Removed redundant call to abort.
4927
4928         * find/util.c (debug_stat): For consistency, use assert (0) rather
4929         than assert (false).
4930
4931 2007-06-26  James Youngman  <jay@gnu.org>
4932
4933         * README-alpha: Mention the findutils-patches mailng list and the
4934         archives for findutils-patches and bug-findutils.
4935
4936         * po/bg.po: Updated from Translation Project.
4937
4938 2007-06-25  James Youngman  <jay@gnu.org>
4939
4940         * po/sv.po: Updated Swedish translation.
4941
4942 2007-06-24  James Youngman  <jay@gnu.org>
4943
4944         * build-aux/.gitignore, debian/.gitignore, doc/.gitignore,
4945         find/.gitignore, find/testsuite/.gitignore, .gitignore,
4946         lib/.gitignore, locate/.gitignore, locate/testsuite/.gitignore,
4947         m4/.gitignore, po/.gitignore, xargs/.gitignore,
4948         xargs/testsuite/.gitignore: New files to make it more painless to
4949         track findutils sources with git.
4950
4951         * NEWS: Mention the previous change to doc/find.texi.
4952
4953 2007-06-23  James Youngman  <jay@gnu.org>
4954
4955         * doc/find.texi (Introduction): Recommend that people check they
4956         are using the latest version before reporting a bug.
4957
4958 2007-06-22  James Youngman  <jay@gnu.org>
4959
4960         Better documentation for the fractional part of seconds fields for
4961         -printf and similar actions.
4962         * doc/find.texi (Time Components): Point out that the seconds
4963         field of the timestamp is often printed out with a fractional part
4964         of unspecified length and precision.  The '%Tc' field has no
4965         seconds part.
4966         (Combined Time Formats): Point out the same thing for '%T@'.
4967         * find/find.1 (%A): Point out the same thing.
4968         * NEWS: Mention these changes.
4969
4970         Fix various lint-type complaints taken from the rules in the
4971         coreutils Makefile.maint file (see build-aux/src-sniff.py).
4972         * xargs/xargs.c: Removed unnecessary parentheses in "#if defined"
4973         checks.
4974         (main): Don't cast the return value of xmalloc.
4975         (add_proc): Don't cast the return value of xmalloc.
4976         * lib/regextype.c: Don't include quotearg.h, we don't need it.
4977         * lib/dircallback.c, lib/nextelem.c, lib/prontquoted.c,
4978         lib/qmark.c, lib/strspn.c, lib/waitpid.c: Assume config.h is available.
4979         * lib/extendbuf.c: Ditto
4980         * lib/listfile.c: Ditto.  Also removed unnecessary parentheses in
4981         "#if defined" checks.
4982         (get_link_name): Don't cast the result of xmalloc.
4983         * lib/bigram.c: Removed unnecessary parentheses in "#if defined"
4984         checks.
4985         * lib/savedirinfo.c: Assume config.h is available.  Also removed
4986         unnecessary parentheses in "#if defined" checks.
4987         * lib/buildcmd.c (bc_do_insert): Don'tcast the result of xmalloc().
4988         * find/tree.c (build_expression_tree): Don't cast the argument to free().
4989         * find/ftsfind.c (set_close_on_exec): Removed unnecessary
4990         parentheses in "#if defined" checks.  Also changed "filesystem" ->
4991         "file system"
4992         * find/util.c (check_nofollow): Removed unnecessary parentheses in
4993         "#if defined" checks.
4994         * find/parser.c (estimate_fstype_success_rate): ditto.
4995         (insert_regex): Do not cast the result of xmaloc().  Removed unnecessary
4996         parentheses in "#if defined" checks.  Also changed "filesystem" ->
4997         "file system"
4998         * find/pred.c: ditto
4999         * find/find.c: "the the" -> "the", "filesystem" -> "file system"
5000         * find/fstype.c: "filesystem" -> "file system" (in comments and
5001         static functions)
5002         * locate/frcode.c: Removed unnecessary parentheses in "#if
5003         defined" checks.
5004         * locate/locate.c (search_one_database): Don't cast the return
5005         value of xmalloc.
5006         (dolocate): Mark error message for translation.
5007
5008 2007-06-21  Eric Blake  <ebb9@byu.net>
5009
5010         * locate/.cvsignore: Ignore dblocation.texi.
5011         * build-aux/.cvsignore: Ignore Makefile.
5012         * locate/locate.c (set_max_db_age): Fix typo in error message.
5013
5014 2007-06-19  Eric Blake  <ebb9@byu.net>
5015
5016         Fix compilation on cygwin, Savannah bug #20210.
5017         * import-gnulib.config (gnulib_version): Import strcasestr and
5018         updated canonicalize-lgpl-tests.
5019         * lib/dircallback.c (includes): Track gnulib changes.
5020
5021 2007-06-14  James Youngman  <jay@gnu.org>
5022
5023         * find/parser.c (parse_time): Use the variable comp, which holds
5024         the planned comparison type, rather than the structure tval, which
5025         has not been initialised yet and contains a random value.  This
5026         fixes Savannah bug #20139.
5027         * NEWS: Mention the bugfix.
5028
5029 2007-06-13  James Youngman  <jay@gnu.org>
5030
5031         * po/pl.po: Updated Polish translation.
5032
5033 2007-06-12  James Youngman  <jay@gnu.org>
5034
5035         Release 4.3.8.
5036
5037         * find/find.1 (HISTORY): Document when the find tests -readable,
5038         -writable, -executable and the option -regextype were introduced.
5039
5040 2007-06-12  Nix  <nix@esperi.org.uk> (tiny change)
5041
5042         * locate/locate.c (drop_privs): Use groups[0] rather than
5043         groups[1], since groups[] is a one-element array.  This is a
5044         buffer overrun affecting root only.  In theory it could affect
5045         setuid installations, but I (James Youngman) cannot find an explot
5046         mechanism for it.  This fixes Savannah bug#20157.
5047         * NEWS: Mention this fix.
5048
5049 2007-06-12  James Youngman  <jay@gnu.org>
5050
5051         Make the test suite work when run as root.
5052         * find/testsuite/config/unix.exp (fs_superuser): Abstract out the
5053         check which discovers if we have superuser privileges on the
5054         filesystem (taken from access.exp).
5055         * find/testsuite/find.gnu/access.exp: Call fs_superuser.
5056         * find/testsuite/find.gnu/fprint-unwritable.exp: Use fs_superuser.
5057
5058         * po/vi.po, ga.po, nl.po: Updated translations
5059         * po/findutils.pot: Updated template file
5060
5061 2007-06-09  James Youngman  <jay@gnu.org>
5062
5063         Release 4.3.7.
5064
5065         Check that we can correctly read old-format databases which are
5066         big-endian or little endian.
5067         * locate/testsuite/config/unix.exp (locate_from_db): New function;
5068         supports testing locate against a provided database.
5069         * locate/testsuite/locate.gnu/bigendian.exp: New test; make sure
5070         we can read an old-format big-endian database.
5071         * locate/testsuite/locate.gnu/bigendian.xo: Expected output from
5072         bigendian.exp test.
5073         * locate/testsuite/locate.gnu/littleendian.exp: New test; make sure
5074         we can read an old-format little-endian database.
5075         * locate/testsuite/locate.gnu/locateddb.old.powerpc.xi: Old format
5076         big endian database file, for supporting bigendian.exp.
5077         * locate/testsuite/locate.gnu/littleendian.xo: Expected output from
5078         littleendian.exp test.
5079         * locate/testsuite/locate.gnu/locateddb.old.x86.xi: Old format
5080         little endian database file, for supporting littleendian.exp.
5081         * locate/testsuite/Makefile.am: Distribute littleendian.exp,
5082         bigendian.exp and related .xi and .xo files.
5083
5084
5085         * doc/find.texi (Size Directives): Compare %b with %s/512, not
5086         %s/1024.  This fixes (again) Savannah bug #19596.
5087         * NEWS: mention the fix.
5088
5089         Avoid using the non-portable function putw().
5090         * locate/locatedb.h: Declare putword().
5091         * locate/frcode.c: Include <stdbool.h> as locatedb.h now requires
5092         it.
5093         * locate/code.c (main): Use putword() rather than putw(), because
5094         the latter was removed from SUSv3. This fixes Savannah bug #19980.
5095         Also include <stdbool.h> as locatedb.h now requires this.
5096         * locate/word_io.c (putword): Define the new function putword.
5097
5098         Ensure that <config.h> is included before any system header
5099         * find/defs.h: Do not include <config.h> from "defs.h".  Instead
5100         just complain if it was not already included, since it needs  to
5101         be included first of all, even before system headers (in case
5102         gnulib had replaced a system header).  Check
5103         ALREADY_INCLUDED_CONFIG_H to determine this.
5104         * configure.in: Always define ALREADY_INCLUDED_CONFIG_H in
5105         config.h.
5106         * find/find.c: Include config.h before defs.h.
5107         * find/finddata.c: ditto.
5108         * find/fstfind.c: ditto.
5109         * find/parser.c: ditto.
5110         * find/pred.c: ditto.
5111         * find/util.c: ditto
5112         * find/tree.c: ditto (fixing Savannah bug #20128).
5113
5114         * m4/noreturn.m4 (jy_AC_ATTRIBUTE_NORETURN): Use AC_LANG_PROGRAM
5115         inside AC_COMPILE_IFELSE.
5116
5117         * doc/find.texi (Security Considerations for locate): Discuss in
5118         detail the buffer overrun when reading old-format locate
5119         databases.  This is CVE reference CVE-2007-2452.
5120
5121 2007-06-05  James Youngman  <jay@gnu.org>
5122
5123         Guess the byte-order of old-format locate databases.
5124         * locate/word_io.c (getword): Make the endian_state_flag parameter
5125         an enum rather than an int.  If we are in the initial ("don't
5126         know") byte-order guessing state and the swapped value is out of
5127         range, use this as evidence that the byte order is native.
5128         * locate/locatedb.h: Declare getword accordingly.
5129         * locate/locate.c (struct process_data): Added endian_state
5130         member, which remembers for us what the big/little endian order
5131         guessing state is when we read an old-format database.
5132         (visit_old_format): Use the procdata.endian_state rather than a
5133         local variable, so that the information can persist across calls.
5134         (i_am_little_endian): Locate figures out if we needed to byteswap
5135         the words in an old-format database, but that is an implementation
5136         detail.  Therefore we figure out our own byte order so that we can
5137         produce a more relevant message for --statistics.  The
5138         i_am_little_endian() returns nonzero if the current host has
5139         little-endian byte order.
5140         (search_one_database): Report the byte-order of old-format
5141         databases.
5142
5143 2007-06-04  James Youngman  <jay@gnu.org>
5144
5145         * locate/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP):
5146         Added old_prefix.exp and old_prefix.xo, a new test case for long
5147         shared rpefixes with the old database format.
5148
5149         * locate/locate.c (visit_old_format): Use getword() from word_io.c
5150         instead of getw(), because getw() is not in POSIX.
5151         * locate/word_io.c: New file, providing replacement for getw().
5152         * locate/locatedb.h: Declare getword()
5153         * locate/Makefile.am (locate_SOURCES): Added word_io.c
5154
5155         * locate/testsuite/config/unix.exp (locate_start): Make the
5156         failure messages slightly more explicit; indicate what went wrong
5157         when a test fails.
5158
5159 2007-06-03  James Youngman  <jay@gnu.org>
5160
5161         * locate/locate.c (visit_old_format, extend, toolong): Extend the
5162         buffer used to build the current pathname when reading an
5163         old-format database.  The new function extend is called to do
5164         this.  The new function toolong is called to report a fatal error
5165         when the buffer size would otherwise exceed SIZE_MAX.  This fixes
5166         Savannah bug #20014, which is a security-related problem with the
5167         CVE identifier CVE-2007-2452.
5168
5169         * configure.in: Determine if the setgroups function is available,
5170         and set HAVE_SETGROUPS if so.
5171         * locate/locate.c (drop_privs): Call setgroups() only if
5172         HAVE_SETGROUPS indicates that it is available.  This fixes
5173         Savannah bug #19981.
5174
5175         * po/vi.po: Updated Vietnamese translation
5176
5177 2007-05-31  James Youngman  <jay@gnu.org>
5178
5179         * find/parser.c (parse_time): Once we have determined the
5180         comparison type, restore the original time argument since
5181         get_relative_timestamp() also wants to see it.  This fixes
5182         Savannah bug #20005.
5183
5184         * po/findutils.pot, ga.po, pt.po, tr.po, pl.po: updated from the TP
5185         website.
5186
5187 2007-05-31  Jakub Bogusz <qboosh@pld-linux.org>  (tiny change)
5188
5189         * find/parser.c (parse_group): Correct typo in error message.
5190         (check_path_safety): same
5191
5192 2007-05-27  James Youngman  <jay@gnu.org>
5193
5194         * import-gnulib.config (modules): Import sys_stat.
5195         (gnulib_version): Update to 2007-05-26.  This fixes a compilation
5196         error in stdlib.h with the DEC C compiler.  This fixes Savannah
5197         bug# 19983.
5198
5199         * find/parser.c (safe_atoi): New function, like atoi, but which
5200         calls error(1, ...) when the argument is invalid or out of range.
5201         (parse_group): Use safe_atoi.
5202         (insert_depthspec): Use safe_atoi
5203         (parse_user): Use safe_atoi
5204
5205         * configure.in: Check for fabs in libm (fixing a compilation error
5206         on Solaris).
5207
5208         * import-gnulib.config (modules): Import the wcwidth module to
5209         provide it on those systems (such as BeOS) which lack it.
5210
5211         * find/pred.c (file_sparseness): If st_blocks is not present in
5212         struct stat, the file has a sparseness of 1.0.
5213
5214         * doc/find.texi (Size Directives): Document the %S format
5215         directive for -printf.
5216
5217         * find/pred.c (mode_to_filetype): Don't use S_IFSOCK on systems
5218         which lack that macro.  POSIX systems are allowed to lack
5219         sockets (it's an XSI extension).
5220         (file_sparseness): If struct stat lacks st_blocks, assume all
5221         files have a spearseness of 1.0.
5222
5223         * import-gnulib.config (modules): Import fchdir inorder to fix an
5224         undefined-symbol error for fchdir on BeOS.
5225
5226 2007-05-26  James Youngman  <jay@gnu.org>
5227
5228         Code refactoring in locate.
5229         * locate/locate.c (visit): New function, into which we factor out
5230         the traversal of the inspector list.
5231         (process_simple): Use visit().
5232         (process_or): Use visit().
5233         (process_and): Use visit().
5234
5235         Speed improvements in locate for unibyte locales.
5236         * locate/locate.c (visit_substring_match_nocasefold_wide): Renamed
5237         from visit_substring_match_nocasefold.
5238         (visit_substring_match_casefold_wide): Renamed from
5239         visit_substring_match_casefold.
5240         (visit_substring_match_casefold_narrow): Special case of
5241         visit_substring_match_casefold_wide which we use for unibyte
5242         locales; we use strcasestr() rather than mbscasestr().
5243         (visit_substring_match_nocasefold_narrow): Ditto, using strstr()
5244         instead of mbsstr().
5245
5246         * find/parser.c (parse_gid): Return an explicit boolean constant
5247         rather than automatically converting from a pointer, because the
5248         gnulib substitute for bool (or _Bool) in c89 environments lacking
5249         bool does not support that conversion.  One affected system is Sun
5250         WorkShop Compilers 5.0 98/12/15 C 5.0 on Solaris 7.  This is
5251         Savannah bug #19970, reported by Nelson Beebe.
5252         (parse_inum): Ditto.
5253         (parse_links): Ditto.
5254         (parse_uid): Ditto.
5255         (check_path_safety): declarations need to go before code, not
5256         interspersed.  Move declaration of char* s.
5257
5258         * xargs/testsuite/xargs.posix/rc-125.exp: Explain Savannah bug
5259         #19969.   This bug is not yet fixed.
5260
5261         * find/defs.h: #include <stdint_.h>, for uintmax_t.  This should
5262         fix a compilation error on DEC C V5.9-005 on Digital UNIX V4.0F
5263         (Rev. 1229).  This is Savannah bug #19965, reported by Nelson
5264         Beebe.
5265
5266         * find/defs.h: Don't include <errno.h>, since it is not needed in
5267         the header file itself.  The "extern int errno;" declaration is
5268         now obsolete.
5269         * find/parser.c: Include <errno.h>
5270         * find/pred.c: Dito
5271         * find/util.c: Ditto
5272
5273 2007-05-24  James Youngman  <jay@gnu.org>
5274
5275         * find/util.c (check_nofollow): If O_NOFOLLOW is defined but 0,
5276         act as if it is undefined.  This should prevent a runtime
5277         assertion failure on IRIX 6.5.  This fixes Savannah bug #19948,
5278         reported by Nelson Beebe.
5279
5280         * m4/noreturn.m4: New file, testing for support of __attribute__
5281         ((__noreturn__)).  Defines jy_AC_ATTRIBUTE_NORETURN and sets
5282         HAVE_ATTRIBUTE_NORETURN.
5283         * configure.in: Call jy_AC_ATTRIBUTE_NORETURN.
5284         * find/defs.h (ATTRIBUTE_NORETURN): Define to nothing if
5285         HAVE_ATTRIBUTE_NORETURN is not set in config.h.  This should fix a
5286         compilation error with non-GCC compilers.   This is Savannah bug
5287         #19967, reported by Nelson Beebe.
5288
5289         * configure.in (FINDLIBS): Update FINDLIBS to link against -lm for
5290         modf.   This fixed a link error on HP-UX.   This fixes Savannah
5291         bug #19966, reported by Nelson Beebe.
5292         * find/Makefile.am (LDADD): Use @FINDLIBS@
5293
5294 2007-05-21  James Youngman  <jay@gnu.org>
5295
5296         Release 4.3.6.
5297
5298         * build-aux/Makefile.am (EXTRA_DIST): Added man-lint.sh.
5299
5300         * locate/locate.c (drop_privs): pass the correct list of groups to
5301         setgroups().  Previously, if root invoked locate, their group ID
5302         would have been set to a random value.  The same bug also caused
5303         an array overrun past the end of the local array groups[].  The
5304         variable which gets overwritten by the buffer overrun on x86 is
5305         'what'.  The value of that variable is always changed before it is
5306         used, and so I believe that this buffer overrun will not cause a
5307         crash.  The only effect of the bug therefore would be for locate
5308         to change group to a random group ID since groups[0] is
5309         uninitialised.  On my test system this random group ID is 0
5310         anyway.  The effect does not depend on any externally-controllable
5311         information, so it is unlikely this is exploitable.   This bug is
5312         detailed as bug# 19923.
5313
5314 2007-05-19  James Youngman  <jay@gnu.org>
5315
5316         * find/find.1: Spurious .R directives (.R is not a directive)
5317         should be .B.   This fixes Savannah bug #19871.
5318         * build-aux/man-lint.sh: New file; verifies that the specified
5319         manual pages do not provoke error messages from troff.  This is
5320         used to detect further occurrences of Savannah bug #19871.
5321         * find/Makefile.am (dist-hook): Run findutils-check-manpages,
5322         which invokes man-lint.sh.
5323         * locate/Makefile.am (dist-hook): ditto
5324         * xargs/Makefile.am (dist-hook): ditto
5325
5326         * .cvsignore: Ignore ylwrap, which automake-1.10 wants us to have
5327         a copy of for some reason
5328
5329         * import-gnulib.sh (main): New option -a which just runs the
5330         autotools without reimporting gnulib.
5331
5332         * Makefile.am (jy-regex-fix): The previous explanatory comment
5333         refers to the jy-regex-fix target, not to dist-hook, so it has
5334         been moved.
5335
5336 2007-05-08  James Youngman  <jay@gnu.org>
5337
5338         * find/defs.h (struct predicate.args): str is now const.
5339
5340         * find/parser.c (get_comp_type): get_comp_type now takes a const
5341         char* parameter.
5342         (get_num): ditto
5343         (get_relative_timestamp): ditto.  Also use collect_arg().
5344         (collect_arg_stat_info): New function; collects a command-line
5345         argument and returns its xstat information, in one go.
5346         error(1,...)  is called if the stat fails.
5347         (parse_anewer): Use collect_arg().
5348         (parse_cnewer): ditto
5349         (parse_fprint): ditto
5350         (parse_fstype): ditto
5351         (parse_group): ditto
5352         (parse_ilname): ditto
5353         (parse_iname): ditto
5354         (parse_iwholename): ditto
5355         (parse_lname): ditto
5356         (insert_depthspec): ditto
5357         (parse_name): ditto
5358         (parse_newer): ditto
5359         (parse_wholename): ditto
5360         (parse_perm): ditto
5361         (parse_regextype): ditto
5362         (insert_regex): ditto
5363         (parse_samefile): ditto
5364         (parse_used): ditto
5365         (parse_user): ditto
5366         (insert_type): ditto
5367         (parse_time): ditto
5368         (parse_size): When the size argument is invalid but consists only
5369         of a valid suffix char, avoid issuing an error message about a
5370         blank argument.  Append the suffix letter again.
5371         (parse_xdev, parse_ignore_race, parse_noignore_race, parse_warn,
5372         parse_xtype): Remove casts to void for some function parameters
5373         that were, in fact, used.
5374
5375         * find/testsuite/find.gnu/fprint-unwritable.exp: new test
5376         * find/testsuite/find.gnu/fprint0_stdout.exp: new test
5377         * find/testsuite/find.gnu/fprint0_stdout.xo: new test
5378         * find/testsuite/find.gnu/mindepth-arg.exp: new test
5379         * find/testsuite/find.gnu/mindepth-arg.xo: new test
5380         * find/testsuite/find.gnu/mindepth-badarg.exp: new test
5381         * find/testsuite/find.gnu/print_stdout.exp: new test
5382         * find/testsuite/find.gnu/print_stdout.xo: new test
5383         * find/testsuite/find.gnu/samefile-missing.exp: new test
5384         * find/testsuite/find.gnu/samefile-p-brokenlink.exp: new test
5385         * find/testsuite/find.gnu/samefile-p-brokenlink.xo: new test
5386         * find/testsuite/find.gnu/used-invarg.exp: new test
5387         * find/testsuite/find.gnu/used-missing.exp: new test
5388         * find/testsuite/find.gnu/user-invalid.exp: new test
5389         * find/testsuite/find.posix/group-empty.exp: new test
5390         * find/testsuite/find.posix/group-missing.exp: new test
5391         * find/testsuite/find.posix/name-missing.exp: new test
5392         * find/testsuite/find.posix/size-invalid.exp: new test
5393         * find/testsuite/find.posix/size-missing.exp: new test
5394         * find/testsuite/find.posix/typearg.exp: new test
5395         * find/testsuite/find.posix/user-empty.exp: new test
5396         * find/testsuite/find.posix/user-missing.exp: new test
5397
5398 2007-05-06  James Youngman  <jay@gnu.org>
5399
5400         * find/tree.c: (costlookup): Added pred_fls to the optimiser's
5401         predicate cost lookup table.
5402
5403         * lib/printquoted.c (print_quoted): Change return value from void
5404         to int, to allow the caller to detect failures.
5405         * lib/printquoted.h (print_quoted): Change declaration
5406         accordingly.
5407
5408         * find/defs.h (struct format_val): Incldue a 'filename' member so
5409         that we can provide more useful error messages (e.g. when we fail
5410         to flush or close an output file).
5411         (nonfatal_file_error): declare new function.
5412
5413         * find/util.c (traverse_tree): Utility function which calls a
5414         callback on every node of the parse tree.
5415         (flush_and_close_output_files): Flush all output streams.  Close
5416         all output files.  Report any errors.
5417         (cleanup): Use traverse_tree() to invoke
5418         complete_pending_execdirs().
5419         (report_file_err): refactored error reporting function, extracted
5420         from fatal_file_error.
5421         (nonfatal_file_error): New function.
5422
5423         * find/pred.c (checked_fprintf): New function, which performa an
5424         fprinf(), and checkes the result.  If the operation resulted in an
5425         error, a nonfatal error message is issued.
5426         (checked_print_quoted): Ditto, for print_quoted rather than
5427         fprintf.
5428         (checked_fwrite): Ditto for fwrite instead of fprintf.
5429         (checked_fflush): Ditto for fflush
5430         (do_fprintf): Use the checked_*() functions rather than their
5431         direct counterparts, to ensure that I/O errors are detected.  This
5432         fixes Savannah bug #19416.
5433         (pred_fls): Use args.printf_vec instead of args.stream, which has
5434         now been removed.
5435         (pred_ls): just call pred_fls.
5436         (pred_fprint0): use args.printf_vec, instead of the now removed
5437         args.stream.
5438         (pred_print0): just call pred_fprint0
5439
5440         * find/parser.c: (insert_fprintf): Make the caller collect the
5441         format argument from the argument list.
5442         (open_output_file): Enhance to set up defaults in
5443         our_pred->args.printf_vec as well as opening the output file.
5444         Also record the filename for possible later use in an error
5445         message.
5446         (collect_arg): Convenience function for collecting an argument
5447         from the argument list.
5448         (insert_fls): Refactored the body of parse_fls out so that
5449         parse_ls can use it.
5450         (parse_fls): call insert_fls.
5451         (parse_ls): ditto
5452         (parse_fprint): Instead of setting up our_pred->args.printf_vec
5453         manually, call open_output_file() to do it.
5454         (parse_print): Same, but by calling open_stdout().
5455         (insert_fprint): Make the caller collect the filename argument,
5456         and delegate the setup of our_pred->args.printf_vec to either
5457         open_output_file() (for parse_fprint and parse_fprint0) or
5458         open_stdout (parse_print0).
5459         (parse_fprint0): Use collect_arg().
5460         (parse_print0): Use insert_fprint(), just like parse_fprint0.
5461         (parse_printf): Use collect_arg().
5462         (parse_fprintf): Use collect_arg().
5463
5464 2007-05-05  James Youngman  <jay@gnu.org>
5465
5466         Release 4.3.5.
5467
5468         * find/parser.c (parse_samefile): Hold a file descriptor open on
5469         the reference file in order to prevent pred_samefile getting
5470         fooled by inode reuse.  Pay attention to race conditions on
5471         systems lacking O_NOFOLLOW when the -P option is in force.  This
5472         fixes Savannah bug #19806.
5473
5474         * find/defs.h (struct samefile_file_id): New struct, like dir_id
5475         but including a file descriptor on the reference file.
5476
5477         * find/pred.c (pred_type): -type should return false if the file
5478         has mode 00000, as opposed to having an assertion failure.   This
5479         fixes Savannah bug #16378.
5480
5481         * find/ftsfind.c (consider_visiting): Issue a warning message if
5482         none of the mode bits are set for a file (i.e. st_mode==00000).
5483         * find/util.c (get_statinfo): ditto
5484         * find/util.c (hook_fstatat): Introduced debug code (normally
5485         disabled) for testing Savannah bug #16378.
5486
5487 2007-05-01  James Youngman  <jay@gnu.org>
5488
5489         * find/find.c (wd_sanity_check): corrected the type of %ld fprintf
5490         arguments in error messages.
5491         * find/fstype.c: include "error.h" for the declaratio of error().
5492         * find/ftsfind.c: include "error.h" for the declaratio of
5493         error().  Include dircallback.h for the correct declararion of
5494         run_in_dir().
5495         * find/parser.c: include getdate.h (for declaration of getdate)
5496         and error.h (for the declaration of error).
5497         (find_parser): Removed unused variable p.
5498         * find/pred.c (pred_timewindow): Removed unused variable delta.
5499         (do_fprintf): Removed unused variable cc.
5500         * find/tree.c: Include error.h (for the declaration of error()).
5501         (build_expression_tree): removed sourious extra arguments in call
5502         to error().
5503         * find/util.c: include error.h.
5504         * lib/buildcmd.h (get_line_max): Comment out unused function.
5505         * lib/listfile.c: Include dircallback.h.
5506         * locate/code.c: Include errno.h, erorr.h, progname.h and
5507         xlloc.h.
5508         (inerr): New function for reporting read errors.
5509         (outerr): New function for reporting output errors.
5510         (main): Call inerror when fgets fails.  Call outerr when fwrite
5511         or putc or putw fails.
5512         * locate/frcode.c (put_short): Return boolean value indicating
5513         success.
5514         (outerr): New function for reporting write errors.
5515         (main): Call outerr if call to putc() or puts() or put_short()
5516         fails.
5517         * locate/locate.c (search_one_database): diagnose corruption if a
5518         traditional-style database is too short to include a complete
5519         bigram table.
5520
5521 2007-04-30  James Youngman  <jay@gnu.org>
5522
5523         * find/defs.h: Change all predicate functions to take a const
5524         char* argument as the pathname, not a char*.  Modify the parser
5525         table definition accordingly.
5526         * find/parser.c: Ditto
5527         * find/pred.c: Ditto
5528         * find/pred.c (do_fprintf): copy the pathname string for the %H
5529         and %h cases, since we can no longer modify the string in place.
5530         * lib/listfile.c (print_name, list_file,
5531         print_name_without_quoting, print_name_with_quoting): Use const
5532         char * param for pathname.
5533         * lib/listfile.h (list_file): Use const char * param for
5534         pathname.
5535
5536 2007-04-29  James Youngman  <jay@gnu.org>
5537
5538         * find/defs.h: Declare fatal_file_error(), a function for
5539         reporting immediately-fatal file errors, which appropriately
5540         quotes the file name.  The function does not return.  Also define
5541         ATTRIBUTE_NORETURN.  Record the currently-required quoting style
5542         in struct options.
5543
5544         * find/find.c, find/ftsfind.c, find/parser.c, find/pred.c,
5545         find/util.c: Call fatal_file_error() for fatal file errors.  Use
5546         quotearg_n_style() to quote filenames which are used in error
5547         message that aren't fatal.  Use options.err_quoting_style as the
5548         quoting style.  This fixes Savannah bug #18203.
5549         * locate/locate.c: ditto
5550         * xargs/xargs.c: ditto
5551
5552         * lib/listfile.c: To use alloca, just #include <alloca.h>.  Gnulib
5553         handles the rest.  Also these days, <stdlib.h> and <string.h> can
5554         just be included unconditionally.
5555         * lib/qmark.c: Fixed comment on first line describing the module.
5556
5557 2007-04-29  Michael Haubenwallner <michael.haubenwallner@salomon.at> (tiny change)
5558
5559         * find/defs.h (pred_open) Rename to pred_openparen to avoid
5560         problems with the macrtos which build the parser tabnles on
5561         platforms where 'open' is in fact a macro which expands to
5562         open64.   The problem was that token pasting put pred_open64 into
5563         the parser table, but the function was still defined as
5564         parse_open.   This fixes Savannah bug #19371.
5565         (pred_close): ditto
5566         * find/parser.c (parse_open, parse_close): ditto.  Also change
5567         repferences to pred_open and pred_close similarly.
5568         * find/parser.c (parse_openparen, parse_closeparen): ditto
5569
5570 2007-04-28  James Youngman  <jay@gnu.org>
5571
5572         * find/testsuite/find.gnu/deletedir.exp,
5573         find/testsuite/find.gnu/deletedir.xo: New test.
5574         * find/testsuite/find.gnu/deletefile.exp,
5575         find/testsuite/find.gnu/deletefile.xo: New test.
5576         * find/testsuite/Makefile.am: Distribute the new tests
5577         deletefile.exp and deletedir,exp, with their expected-output (.xo)
5578         files too.
5579         * find/testsuite/config/unix.exp (find_start): Add a new "setup"
5580         parameter called just before each time find is invoked.  This
5581         allows last-minute tasks to be performed.  This feature is
5582         essential for find commands that modify the filesystem, since
5583         otherwise we cannot use our strategy of invoking both binaries at
5584         each optimisation level.
5585
5586         * find/util.c (optionh_stat, optionp_stat, optionl_stat): Assert
5587         that state.cwd_dir_fd is valid.
5588
5589         * find/parser.c (parse_delete): Set need_stat to false, since we
5590         don't need the stat information in pred_delete.
5591         * find/pred.c (pred_delete): If unlinkat() with a zero flags
5592         parameter fails with errno==EISDIR, just try again with
5593         flags=AT_REMOVEDIR.  That way we normally avoid the cost of a
5594         stat.  If we happen to have the stat information to hand anyway,
5595         we make sure we get it right the first time.
5596
5597         * lib/buildcmd.c (bc_init_controlinfo): Eliminate confusing extra
5598         variable arg_max.  Add return value
5599         BC_INIT_CANNOT_ACCOMODATE_HEADROOM for the case where the
5600         environment itself is not too large, but the required headroom
5601         cannot also be accomodated.  The caller now passes in the amount
5602         of headroom required.
5603         (bc_use_sensible_arg_max): Use the environment size consistently;
5604         this is accounted for already in posix_arg_size_max, so there is
5605         no need to re-measure the size of the environment.
5606         * lib/buildcmd.h: Define BC_INIT_CANNOT_ACCOMODATE_HEADROOM and
5607         add the headroom parameter to the prototype of bc_init_controlinfo().
5608         * xargs/xargs.c (main): Define XARGS_POSIX_HEADROOM as 2048 and
5609         use that symbolic value.  Pass XARGS_POSIX_HEADROOM to
5610         bc_init_controlinfo().  Handle the case where
5611         BC_INIT_CANNOT_ACCOMODATE_HEADROOM is returned by
5612         bc_init_controlinfo().
5613         * find/parser.c (new_insert_exec_ok): Pass the required headroom to
5614         bc_init_controlinfo() and handle the error return
5615         BC_INIT_CANNOT_ACCOMODATE_HEADROOM.
5616
5617         * xargs/xargs.1: Correct the description of the default value and
5618         maximum value for the -s option of xargs.
5619
5620         * xargs/xargs.c (main): Modify the assertions not to assume that
5621         bc_ctl.arg_max is 2KiB less than ARG_MAX, since sysconfig() may
5622         have returned a value for _SC_ARG_MAX which is greater.  For
5623         example, AIX 5.3 can do this.  This should fix Savannah bug
5624         #19391.
5625
5626 2007-04-25  James Youngman  <jay@gnu.org>
5627
5628         * find/tree.c (predlist_dump, predlist_merge_nosort): These
5629         functions were unused and commented out.  Removed.
5630         (mark_stat) No longer used.  Removed.
5631         (mark_type) No longer used.  Removed.
5632
5633         * find/parser.c (new_insert_exec_ok): When checking for {} in the
5634         arguments to -exec..., use mbsstr() rather than strstr() in order
5635         to cope bettwe with multibyte locales.
5636
5637         * lib/buildcmd.c: Don't define mbsstr() locally.  Instead, call
5638         gnulib's mbsstr().
5639
5640 2007-04-24  James Youngman  <jay@gnu.org>
5641
5642         * lib/buildcmd.c: Added some comments outlining how we might
5643         change the implementation to support figuring out the real ARG_MAX
5644         limit.
5645
5646 2007-04-23  James Youngman  <jay@gnu.org>
5647
5648         * find/defs.h (struct predicate_performance_info): New data
5649         structure for holding perofmance statistics.
5650         (struct predicate: include predicate_performance_info
5651         (apply_predicate): change from macro to function
5652         (pred_is): new macro, for predicate identity testing
5653         (enum DebugOption): Added DebugSuccessRates
5654         * find/find.1: Document option "-D rates" which turns on
5655         DebugSuccessRates.
5656         * doc/find.texi: ditto
5657         * find.c (main): Call show_success_rates() before exiting.
5658         (apply_predicate): remove the macro defintion, declare equivalent
5659         function in defs.h.
5660         * find/ftsfind.c (main): Call show_success_rates() before
5661         exiting.  Use apply_predicate().
5662         (show_outstanding_execdirs): use pred_is().
5663
5664
5665
5666 2007-04-22  Eric Blake  <ebb9@byu.net>
5667
5668         * xargs/xargs.c (main): Don't assume LINE_MAX exists (i.e. is
5669         #defined).
5670
5671         * locate/updatedb.sh (PRUNEPATHS): Exclude /proc by default.
5672
5673 2007-04-22  James Youngman  <jay@gnu.org>
5674
5675         * doc/Makefile.am: When cross-compiling, 'make clean' should not
5676         delete doc/regexprops.texi, becaue we can't regenerate it.  Fixes
5677         Savannah bug #19658.
5678
5679         * locate/Makefile.am (BUILT_SOURCES): Automatically generate
5680         dblocation.texi, which records the default database location.
5681         * doc/find.texi: Collect the default database location from
5682         ../locate/dblocation.texi, and use LOCATE_DB in various places.
5683         Document the fact that updatedb can generate slocate-compatible
5684         databases.  Document the --dbformat option of updatedb.
5685         * locate/frcode.c (main): Implemented the -S option which allows the
5686         generation of an slocate secure database.
5687         * locate/updatedb.sh: New option --dbformat which selects which
5688         database format to use.
5689         * locate/updatedb.1 (--dbformat): Document the new option.
5690
5691
5692         * find/testsuite/find.gnu/access.exp: fixed a typo which prevented
5693         the test correctly being skipped when run as root.   This re-fixes
5694         Savannah bug# 18414, I hope.
5695
5696 2007-04-21  James Youngman  <jay@gnu.org>
5697
5698         Release 4.3.4.
5699
5700         * find/locate/locatedb.5: Clarifications to the description of the
5701         LOCATE02 format.  Organised the material under a number of
5702         headings.  Documented the slocate database format.
5703
5704 2007-04-21  James Youngman  <jay@gnu.org>
5705
5706         * find/testuite/Makefile.am (EXTRA_DIST_EXP): added
5707         find/testsuite/find.posix/sv-bug-19617.exp
5708
5709 2007-04-20  Maxim V. Dziumanenko <dziumanenko@gmail.com>
5710
5711         * po/uk.po: New Ukrainian translation.
5712         * configure.in: Added "uk" for Ukranian.
5713
5714 2007-04-19  Peter Breitenlohner <peb@mppmu.mpg.de> (tiny change)
5715
5716         * locate/bigram.c (main): Set the initial pathname to the empty
5717         string, to avoid decompression problems if the initial pathname
5718         begins with a space.  This fixes Savannah bug #19484.
5719         * locate/code.c (main): ditto
5720
5721 2007-04-19  James Youngman  <jay@gnu.org>
5722
5723         * locate/updatedb.1 (--help): Option name should be bold, not
5724         italic.
5725
5726         * find/testsuite/find.gnu/execdir-hier.exp: Avoid running
5727         -execdir based tests if "." is on $PATH.  Fixes Savannah bug
5728         #19634.
5729         * find/testsuite/find.gnu/execdir-in-unreadable.exp: ditto
5730
5731         * find/testsuite/config/unix.exp (touch): New procedure touch,
5732         replacing "exec touch" for greater efficiency.
5733         * find/testsuite/find.posix/depth1.exp: Change "exec touch" to
5734         "touch".
5735         * find/testsuite/find.posix/files-not-expressions1.exp: ditto
5736         * find/testsuite/find.posix/files-not-expressions2.exp: ditto
5737         * find/testsuite/find.posix/files-not-expressions3.exp: ditto
5738         * find/testsuite/find.posix/links.exp: ditto
5739         * find/testsuite/find.posix/perm-vanilla.exp: ditto
5740         * find/testsuite/find.posix/sv-bug-15235.exp: ditto
5741         * /find/testsuite/find.posix/sv-bug-19613.exp: ditto
5742
5743         * find/testsuite/find.gnu/access.exp: Fix savannah bug #18414 by
5744         skipping the test if the user can read any file (e.g. is root or
5745         is an Admin user under Cygwin).
5746
5747 2007-04-17  James Youngman  <jay@gnu.org>
5748
5749         * import-gnulib.config (gnulib_version): Use the 2007-04-17
5750         version of gnulib to fix a compilation error on Cygwin.  This
5751         fixes Savannah bug #19619.
5752
5753         * find/testsuite/find.posix/sv-bug-19605.exp: New test, for
5754         Savannah bug #19605.
5755         * find/testsuite/find.posix/sv-bug-19617.exp: New test, for
5756         Savannah bug #19617.
5757         * find/ftsfind.c (consider_visiting): if fts_read() returns
5758         enf->fts_info==FTS_NS, check for and diagnose a symbolic link
5759         loop.  This fixes Savannah bugs #19605 and #19617.
5760
5761         * find/find.c (process_path): collect the stat information for
5762         directories even if we already have the mode information, because
5763         we need to use the members st_nlink and st_rdev in for the leaf
5764         optimisation and loop detection, respectively.  This fixes
5765         Savannah bug #19616.
5766
5767         * find/ftsfind.c (is_fts_enabled): Return a copy of ftsoptions,
5768         not a copy of the (uninitialised) input argument.  This fixes
5769         Savannah bug #19615.
5770
5771         * find/ftsfind.c (consider_visiting): If fts_read() returned
5772         FTS_NS, then remember that the stat information is not valid, and
5773         therefore don't set state.have_type or state.have_stat.  This
5774         fixes Savannah bug #19613.
5775
5776         * find/testsuite/find.posix/sv-bug-91613.exp,
5777         * find/testsuite/find.posix/sv-bug-91613.xo: New test for Savannah
5778         bug 19613 (assertion failure on symbolic link loop).
5779
5780         * find/testsuite/config/unix.exp: Correctly diagnose a test case
5781         which fails because find was expected to fail and instead
5782         succeeded.
5783         * find/testsuite/find.gnu/exec-many-rtn-failure.exp: The child
5784         process in this test should return non-zero, not zero.  Therefore
5785         run "false" instead of "true".
5786
5787 2007-04-15  James Youngman  <jay@gnu.org>
5788
5789         Release 4.3.3.
5790
5791         * find/find.1: "-printf %b": blocks are 512 bytes.   Fixes
5792         Savannah bug #19596.
5793
5794         * doc/Makefile.am (regexprops.texi): Do not use $(RM) because many
5795         versions od make do not set it, and so it expands to nothing.
5796         This avoids suprious emission of the regexprops.texi file to stdout.
5797
5798         * find/find.c (main, safely_chdir_lstat, safely_chdir_nofollow):
5799         Only use O_LARGEFILE if it is #defined (NetBSD-3.1 does not define
5800         it).
5801         * find/ftsfind.c (main): ditto
5802         * find/pred.c (pred_empty, prep_child_for_exec): ditto
5803
5804
5805         * import-gnulib.config: Update to gnuliv 2007-04-14.
5806
5807         * lib/Makefile.am, import-gnulib.sh: Create lib/gnulib-version.c
5808         in import-gnulib.sh, not in lib/Makefile.
5809
5810         * build-aux/Makefile.am: New file; distribute check-tstfiles.sh.
5811
5812         * locate/Makefile.am: mkinstalldirs is now in build-aux.
5813
5814         * doc/Makefile.am: We also need getdate.texi.
5815
5816 2007-04-14  James Youngman  <jay@gnu.org>
5817
5818         * doc/.cvsignore: Ignore getdate.texi
5819
5820         * find/defs.h: #include "buildcmd.h" near the top of the file, not
5821         in the middle.
5822
5823         * all: Pass O_LARGEFILE when opening directories.
5824
5825         * all: Changes to allow us to use the FTS_CWDFD mode of fts().
5826         These are quite extensive changes, and are detailed below.
5827
5828         * find/defs.h (struct exec_val): New member dirfd, the directory
5829         in which the exec should take place.
5830         (is_fts_enabled): Tell the caller which flags are passed to
5831         fts_open().
5832         (get_start_dirfd): New function.  Returns value of start_desc.
5833         (get_current_dirfd): New function.  Returns the fd of the
5834         directory fts is currently traversing.  If this is the current
5835         directory, AT_FDCWD is returned.
5836         (complete_pending_execdirs): takes a new argument, indicating
5837         where the exec is to take place.  Ugh.
5838         (get_info): the file name is taken from state.rel_pathname, so
5839         we don't need it as a function argument.
5840         (enum DebugOption): Added DebugExec ("-D exec").
5841         (struct state): Added cwd_dir_fd, the directory we are examining
5842         with fts().  If fts() is not in use, this is AT_FDCWD.  Also added
5843         execdirs_outstanding, which is a boolean which tells us if there
5844         are any not-yet-execed -execdir or -okdir actions (with +).  This
5845         is not really used yet.
5846         * find/ftsfind.c (set_close_on_exec): New function.
5847         (get_current_dirfd): Return an fd open on the directory that fts()
5848         is currently examining.
5849         (left_dir): Signal that our previous ides of which dirctory fts is
5850         searching is now out of date.
5851         (inside_dir): Indicate which directory fts is now searching.
5852         (complete_execdirs_cb): Callback for run_in_dir() to complete
5853         pending execdirs in this directory.
5854         (show_outstanding_execdirs): Supports "-D exec"
5855         consider_visiting(): Do not allow building-up of pending execdirs,
5856         as a workaround to Savannah bug #18466.
5857         (ftsoptions): Make this a static module variable.
5858         * find/parser.c (insert_exec_ok): New parameter describing which
5859         directory the exec should occur in.
5860         (parse_version): for FTS, add a list of options being used.
5861         * find/pred.c (pred_and, pred_comma): No need to pass the relative
5862         path name to get_info(), it can pull it from state.rel_pathname.
5863         (pred_delete): use unlinkat().
5864         (pred_empty): use openat().
5865         (new_impl_pred_exec): Accept an fd parameter describing where the
5866         exec is to take place.
5867         (pred_executable, pred_writable, pred_readable): Use run_in_dir()
5868         to ensure that access() is called in a working directory which is
5869         suitable for the pathname we pass in.
5870         (prep_child_for_exec): In the child process, change to the
5871         appropriate directory becore the exec().
5872         * find/util.c (debugassoc): Support "-D exec".
5873         (get_info): No longer need to pass the relative path to
5874         get_statinfo().
5875         (do_complete_pending_execdirs): Refactored body of what used to be
5876         complete_pending_execdirs().
5877         (complete_pending_execdirs): Pull body out into
5878         do_complete_pending_execdirs() and call that only if there is work
5879         to do.
5880         (fallback_stat, optionh_stat, optionp_stat, optionl_stat): Use fstatat().
5881         (get_start_dirfd): New access function for starting_desc.
5882         * find/testsuite/find.gnu/execdir-hier.exp: New test
5883         * find/testsuite/find.gnu/execdir-hier.xo: Expected outut for new test
5884         * lib/dircallback.c, lib/dircallback.h: New function,
5885         run_in_dir(), which runs a callback function in a specified
5886         directory.
5887         * lib/listfile.c: Use run_in_dir() to call readlink() in the right
5888         directory.
5889         (get_link_name_at): Call get_link_name_cb via run_in_dir.
5890         (get_link_name_cb): New callback function, wrappting
5891         get_link_name().
5892
5893         * find/testsuite/find.gnu/execdir-pwd.exp: Since we have disabled
5894         thebuilding-up of command lines for -execdir, Savannah bug #18466
5895         has been neutralised (but not fixed - we just don't allow the
5896         problem circumstance to occur).
5897
5898 2007-04-09  James Youngman  <jay@gnu.org>
5899
5900         * doc/find.texi: Change fully-specified @node directives to
5901         single-argument @node directives in order to accommodate the
5902         inclusion of getdate.texi.
5903
5904         * doc/find.texi: Document -newerXY.
5905
5906         * doc/find.texi (Security Considerations): updated to describe
5907         differences in the fts-based implementation.
5908
5909         * find/find.1: Indicate that testing the birth time where this is
5910         not supported produces a negative result for files where the birth
5911         time is not known (or a fatal error if the file of interest is a
5912         reference file).
5913
5914 2007-04-08  James Youngman  <jay@gnu.org>
5915
5916         * configure.in: Set @AUXDIR@ (to the location of the build-aux
5917         directory).
5918         * build-aux/check-testfiles.sh: New script, which checks that all
5919         the DejaGnu test files have been included in the distribution and
5920         (more helpfully) lists any that are missing.
5921         * Makefile.am (findutils-check-testfiles): Use
5922         build-aux/check-testfiles.sh.
5923         * locate/testsuite/Makefile.am (EXTRA_DIST_EXP): distribute
5924         locate/testsuite/locate.gnu/sv-bug-14535.exp.
5925
5926         * config.rpath, depcomp, missing: Moved into build-aux/.
5927         * configure.in(AC_CONFIG_AUX_DIR): Find aux files in $SRCDIR/build-aux,
5928         not in $SRCDIR.
5929
5930 2007-03-31  James Youngman  <jay@gnu.org>
5931
5932         * find/tree.c (build_expression_tree): Issue more specific error
5933         messages; distinguish the case where the predicate is invalid from
5934         the cases where a required argument is missing, and a supplied
5935         argument is invalid.
5936
5937         * import-gnulib.config (gnulib_version): Update to 2007-03-30
5938         version of gnulib.
5939
5940 2007-03-28  James Youngman  <jay@gnu.org>
5941
5942         * find/defs.h (set_stat_placeholders): utility function for
5943         initialising the struct stat fields that NetBSD doesn't always set
5944         (like st_birthtime where the file is on a filesystem not
5945         supporting birthtime).
5946         * find/util.c: set_stat_placeholders(): new function
5947         (get_statinfo): Call set_stat_placeholders().
5948         (optionh_stat, optionl_stat, optionp_stat): ditto
5949         * find/find.c (main, wd_sanity_check, safely_chdir_lstat,
5950         process_dir): use set_stat_placeholders().
5951         * find/parser.c (parse_anewer, parse_cnewer, parse_newer,
5952         parse_newerXY): ditto.
5953         (get_stat_Ytime): Support birth time ('B').
5954         (parse_newerXY): Support st_birthtime.
5955         * find/fstype.c (set_fstype_devno): Use set_stat_placeholders().
5956         * find/pred.c (pred_xtype): Use set_stat_placeholders().
5957         (pred_newerXY): Support birth time.
5958         (pred_fprintf, format_date): ditto ("%Bx").
5959
5960 2007-03-25  James Youngman  <jay@gnu.org>
5961
5962         * xargs/xargs.c (main): For "xargs --show-limits" where stdin is a
5963         terminal, warn the user that the program specified (or /bin/echo)
5964         will be run at least once, if that is what will happen.
5965
5966 2007-03-24  James Youngman  <jay@gnu.org>
5967
5968         * import-gnulib.sh: Added option -d, allowing the user to use a
5969         local version of gnulib, perhaps because they have local changes.
5970
5971 2007-03-13  James Youngman  <jay@gnu.org>
5972
5973         * find/parser.c (parse_quit): Estimated success rate of -quit is
5974         100%.
5975
5976 2007-03-08  James Youngman  <jay@gnu.org>
5977
5978         * find/find.1 (TESTS): Document -newerXY, indicate that reference
5979         files are only examined once.
5980         (HISTORY): Indicate when various features were added
5981         (BUGS): Indicate that -ok ignores LC_COLLATE.
5982
5983 2007-03-07  James Youngman  <jay@gnu.org>
5984
5985         * import-gnulib.config: (gnulib_version): Use gnulib version
5986         2007-03-05
5987         (modules): Added getdate
5988
5989         * find/Makefile.am (LDADD): Added @LIB_CLOCK_GETTIME@ for
5990         clock_gettime(), if it is available.
5991
5992         * find/defs.h: (enum xval): New enumeration, representing the
5993         value of X used in the -newerXY test.  It is stored in the reftime
5994         member of 'union args'.
5995         (struct predicate): reftime is also used by -newerXY.
5996         (enum arg_type): Added ARG_SPECIAL_PARSE for -newerXY, because the
5997         parsing function needs to look at the name of the test.
5998         (struct options): start_time is now a struct timespec, not a
5999         time_t.
6000
6001         * find/parser.c: (parse_newerXY): New parsing function for
6002         -newerXY, a feature copied from FreeBSD (also present other BSD
6003         implementations too)
6004         (get_stat_Ytime): New function; returns st_atime, st_mtime or
6005         st_ctime from struct stat, as a timespec, as required according to
6006         the value of Y in -newerXY.
6007         (found_parser): Factored the tail out of find_parser.
6008         (find_parser): Moved tail into found_parser.  Add special handling
6009         for -newerXY.
6010         (do_parse_xmin): New argument xv, indicating the value to which
6011         predicate->reftime.xval should be set.
6012         (parse_amin): Pass XVAL_ATIME to do_parse_xmin.
6013         (parse_cmin): Pass XVAL_CTIME to do_parse_xmin.
6014         (parse_mmin): Pass XVAL_MTIME to do_parse_xmin.
6015         (parse_newer): Set args.reftime.xval to XVAL_MTIME.
6016
6017         * find/pred.c (pred_table): added pred_XY.
6018         (pred_fls): options.start_time is now a struct timespec, so just
6019         pass the tv_sec member to list_file.
6020         (pred_ls): ditto
6021         (pred_newerXY): New function, implementing -newerXY.
6022
6023         * find/tree.c (costlookup): pred_newerXY needs stat information.
6024         (build_expression_tree): For predicates of type ARG_SPECIAL_PARSE,
6025         pass them in the name of the predicate (that is, don't advance
6026         argc).
6027
6028         * find/util.c (now): New function for setting options.start_time.
6029         Use nanoseconds where it is available.
6030         (set_option_defaults): Use now() rather than time().
6031
6032 2007-03-03  James Youngman  <jay@gnu.org>
6033
6034         * import-gnulib.sh: Pass --with-tests to gnulib-tool so that relevant
6035         gnulib unit tests are built and are run for "make check".
6036
6037         * configure.in (AC_CONFIG_FILES): Add tests/Makefile (the makefile
6038         for the gnulib unit tests).
6039
6040         * Makefile.am: Add 'tests' to SUBDIRS.
6041
6042         * .cvsignore: Add 'tests'.
6043
6044         * import-gnulib.config (modules): Also use Gnulib modules
6045         mbscasestr and mbsstr in order to perform correct string searching
6046         in multibyte strings, in order to fix Savannah bug #14535.
6047
6048         * locate/testsuite/locate.gnu/sv-bug-14535.exp: new test case for
6049         Savannah bug #14535.
6050
6051         * locale/locate.c (visit_substring_match_nocasefold): Use mbsstr
6052         rather than strstr, in order to correctly support multibyte
6053         strings.
6054         (visit_substring_match_casefold): Use mbscasestr rather than
6055         strstr in order to correctly support case-folding in a multibyte
6056         environment (e.g. with UTF-8 characters outside the normal ASCII
6057         range).  This fixes Savannah bug #14535.
6058         (struct casefolder): No longer needed, removed
6059         (visit_casefold): No longer needed, removed.
6060         (lc_strcpy): No longer needed, removed.
6061         (search_one_database): Removed redundant variable need_fold and
6062         the code which used to set it.  It had controlled the adding of
6063         the visitor function visit_casefold, but that function itself is
6064         no longer required.  Also there is now no need to pass in a
6065         lower-case argument to visit_substring_match_casefold, so don't
6066         pass that in the context argument.
6067
6068         * locate/locate.c (usage): Fixed typo.
6069
6070 2007-03-01  James Youngman  <jay@gnu.org>
6071
6072         * doc/find.texi (Multiple Files): Document the construct
6073         -exec sh -c 'cmd "$@" final-args' {} + - fixing Savannah bug
6074         #18554.
6075
6076 2007-02-28  James Youngman  <jay@gnu.org>
6077
6078         * import-gnulib.config: New file.  Specifies which version of
6079         Gnulib we need to check out and build from.
6080
6081         * import-gnulib.sh: Use import-gnulib.config.
6082
6083         * README-CVS: Describe the new method of building from CVS.
6084
6085         * lib/gnulib-version.h, lib/gnulib-version.sh: New files; code for
6086         reporting which version of Gnulib we built findutils from.
6087
6088         * lib/Makefile.am: Build gnulib-version.c out of
6089         ./gnulib-version.config by using lib/gnulib-version.sh.
6090
6091         * Makefile.am: Ship import-gnulib.config and import-gnulib.sh.
6092
6093         * .cvsignore: Ignore gnulib-cvs
6094
6095         * lib/.cvsignore: Ignore gnulib-version.c
6096
6097         * find/parser.c, locate/code.c, locate/locate.c, xargs/xargs.c:
6098         Report which version of Gnulib we were built from.
6099
6100 2007-02-25  James Youngman  <jay@gnu.org>
6101
6102         * find/find.c (process_dir): Removed duplicated (shadow)
6103         declaration of did_stat.  Assert that we did not use subdirs_left
6104         if subdirs_unreliable is true.
6105
6106         * find/parser.c (parse_size): Removed unused variable rate.
6107         (parse_time): Removed unused variable num_days_approx.
6108         (get_num): Removed unused variables ok and suffixes.
6109
6110         * find/pred.c (do_fprintf): Indicate that the function needs a
6111         return value (referring to Savannah bug #19146).
6112
6113         * find/tree.c (predlist_dump): Commented out unused function
6114         (predlist_merge_nosort): Commented out unused function
6115         (getrate): Returns type is float, so return 1.0f not 1.0.
6116         (calculate_derived_rates): Removed unused variable rate.  Use a
6117         switch statement rater than ifs.
6118
6119         * find/util.c (usage): Removed unused variable i.
6120
6121         * lib/buildcmd.c (bc_do_insert): Removed unused variable
6122         need_prefix.
6123         (bc_init_controlinfo): annotate a line (with #warning) which is
6124         probably a bug.
6125
6126         * locate/locate.c: #include <grp.h> for the benefit of the
6127         setgroups() call in drop_privs.
6128         (slocate_db_pathname): Commented out unused variable.
6129         (set_max_db_age): error command has no format directive, so
6130         remove the unused extra argument.
6131         (looking_at_slocate_db): Removed unused variables magic and
6132         lenwanted.  Fix bug where result is indeterminate (due to falling
6133         off the end of the function) if the first character is a nondigit.
6134         (search_one_database): Eliminate (spurious) compiler warning
6135         rlating to possible use before initialisation of slocate_seclevel.
6136
6137         * xargs/xargs.c (get_char_oct_or_hex_escape): Eliminate spurious
6138         compiler warning on variable p.
6139         (main): Removed unused varible env_too_big
6140
6141
6142 2007-02-24  James Youngman  <jay@gnu.org>
6143
6144         * find/parser.c (pred_sanity_check): define this function even for
6145         _NDEBUG, but do nothing in that case.
6146         (estimate_timestamp_success_rate): correct (invert) the sense of
6147         the subtraction used to find the file's age.
6148
6149         * import-gnulib.sh (findutils_modules): Import Gnulib modules
6150         xstrtod and timespec.
6151
6152         * find/parser.c (get_comp_type): Refactored out of get_num.
6153         (get_num): call get_comp_type to find the comparison type.
6154         (get_relative_timestamp): new function replacing get_num_days.
6155         (get_num_days): Remove.
6156         (do_parse_xmin): Support fractional arguments and
6157         nanosecond timestamps.
6158         (parse_used): ditto
6159         (parse_time): ditto
6160
6161         * xargs/xargs.c (read_line): Give a warning message if a NUL is
6162         found in the input (this function is called only when -0 is not in
6163         effect).
6164
6165         * xargs/xargs.c (nullwarning_given): New variable indicating if
6166         the NULL character warning had already been issued.
6167
6168         * doc/find.texi (Multiple Files): Describe how trailing blanks are
6169         handled when -L is in effect.
6170
6171         * xargs/xargs.c (read_line): Use an enum rather than
6172         preprocessor macro values for the lexer state.
6173
6174         * lib/savedirinfo.c (free_dirinfo): Fixed memory leak (trivial
6175         patch from Supriya Kannery)
6176
6177 2007-01-22  James Youngman  <jay@gnu.org>
6178
6179         * .cvsignore (install-sh): Ignore, since the install-sh file is no
6180         longer held in the findutils CVS repository.
6181
6182         * find/testsuite/config/unix.exp (find_start): allow a test to be
6183         skipped for either the old or the new find executable.
6184         * find/testsuite/find.gnu/execdir-pwd.exp,
6185         find/testsuite/Makefile.am:
6186         New test, covering Savannah bug #18466.  This test currently fails
6187         for the ftsfind binary and passes for the oldfind binary.  Due to
6188         a limitation in  the way that we perform the test, we can't tell
6189         the test suite to expect a failure in the new binary but not the
6190         old.  Therefore we skip the test for the old binary.
6191
6192         * lib/regeprops.c (describe_regex_syntax): fixed a typo in the text
6193         * doc/find.texi (Multiple Files): fixed a typo
6194
6195 2007-01-16  James Youngman  <jay@gnu.org>
6196
6197         (ctime_format): format the time manually (rather than using ctime)
6198         in order to include the sub-second part of the time.
6199         (weekdays, months): new static variables used by ctime_format.
6200         (format_date): append a the sub-second part of the timestamp to
6201         the seconds part of date/time output.
6202
6203 2007-01-15  James Youngman  <jay@gnu.org>
6204
6205         * find/defs.h (time_val): define struct; use timespec to hold time
6206         in the 'reftime' member.
6207         (args): use struct timespec instead of time_t for predicates
6208         -newer, -anewer, -cnewer.  * find/parser.c (includes): include
6209         stat-time.h.
6210         (parse_anewer, parse_cnewer, parse_newer): use struct timespec to
6211         hold timestamps.  * find/pred.c (compare_ts): new function for
6212         comparing timestamps in struct timespec.
6213         (pred_anewer, pred_cnewer, pred_newer): use compare_ts() to
6214         compare timestamps (hence takinng acoung of sub-second
6215         granularity).
6216         * find/ftsfind.c: Various improvements to comments.
6217         (is_fts_enabled): Newline before function name to comply with GNU
6218         coding standard.
6219
6220 2007-01-13  James Youngman  <jay@gnu.org>
6221
6222         * lib/regexprops.c (describe_regex_syntax): fixed typo
6223
6224         * xargs/xargs.c (read_line): Fixed Savannah bug# 18714; VT and FF
6225         are not separators, according to POSIX (in the POSIX locale).
6226
6227         * xargs/testsuite/Makefile.am,
6228           xargs/testsuite/input/formfeeds.xi,
6229           xargs/testsuite/input/verticaltabs.xi,
6230           xargs/testsuite/xargs.posix/sv-bug-18714.exp,
6231           xargs/testsuite/xargs.posix/sv-bug-18714.xo,
6232           xargs/testsuite/xargs.posix/sv-bug-18714b.exp,
6233           xargs/testsuite/xargs.posix/sv-bug-18714b.xo: Tests for Savannah
6234           bug #18714.
6235
6236         * xargs/xargs.c (usage): Removed suprious "[" in --help output
6237         (fixes Savannah bug #18384).
6238
6239         * locate/locate.c: Implement the option --max-database-age.
6240         (main) Accept the option.
6241         (set_max_db_age): Parse the argument.
6242
6243         * locate/locate.c (dolocate): If the database is more than N days
6244         old, indicate its actual age in the warning message we produce.
6245
6246         * locate/locate.1, docs/find.texi: Document --max-database-age
6247
6248         * THANKS: Thank Dean Gaudet for the idea of -sparse.
6249
6250         * po/findutils.pot: Updated from Translation Project
6251
6252         * po/ga.po, po/pl.po, po/nl.po, po/tr.po, po/hu.po: Updated from
6253         the Translation Project
6254
6255 2007-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6256
6257         * doc/find.texi: Fix some typos. (tiny change)
6258
6259 2007-01-07  James Youngman  <jay@gnu.org>
6260
6261         * find/parser.c (parse_perm), find/testsuite/find.gnu/perm000.exp,
6262           find/testsuite/find.gnu/perm000.xo: -perm /000 is now quivalent
6263           to -perm -000, as dscussed in Savannah bug #14748.  The warning
6264           message we issue when the user does this now explains that the
6265           definition changed as we promised it would in 2005.
6266
6267         * xargs/xargs.c (read_line): Correctly handle quoted empty
6268         arguments occurring first or last on a line (by adding an empty
6269         argument to the output).  Fixes Savannah bug #18713.
6270
6271         * xargs/testsuite/xargs.sysv/sv-bug-18713.exp,
6272         xargs/testsuite/xargs.sysv/sv-bug-18713.xo,
6273         xargs/testsuite/input/empty.xi: Test case for Savannah bug #18713.
6274
6275
6276 2006-12-29  James Youngman  <jay@gnu.org>
6277
6278         * find/testsuite/config/unix.exp:
6279         Verify that find_start is invoked with wither a p (pass) or an f
6280         (fail) argument.
6281
6282         * lib/listfile.c, lib/listfile.h:
6283         define find_blocksize() and provide a declaration for get_link_name()
6284
6285         * find/testsuite/config/unix.exp: Updated copyright years.
6286
6287         * 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:
6288         Avoid tests using -execdir if $PATH contains a relative directory
6289
6290         * find/parser.c:
6291         Also flag $PATH values containing relative directories as being dangerous.
6292
6293         * find/parser.c, find/defs.h, find/util.c:
6294         Instead of selecting the old or new exec handling code with the NEW_EXEC macro, just use the new code all the time
6295
6296         * locate/testsuite/config/unix.exp:
6297         Fixed Savannah bug #13252, test suite failure caused by the fact that 'file normalize' is not available in Tcl 8.3
6298
6299         * NEWS, find/pred.c:
6300         Fixed Savannah bug #18433, compilation failure with configure --enable-debug
6301
6302 2006-12-28  James Youngman  <jay@gnu.org>
6303
6304         * NEWS: Document addition of %S.
6305
6306         * find/defs.h, find/find.1, find/parser.c, find/pred.c:
6307         Implemented %S (sparseness) printf format, and general refactoring and cleanup of printf predicate
6308
6309 2006-12-01  James Youngman  <jay@gnu.org>
6310
6311         * NEWS, configure.in: Begin work on findutils 4.2.30
6312
6313         * find/find.c:
6314         Fix compilation error for oldfind if --enable-debug was passed to configure
6315
6316         * NEWS, configure.in: Prepare for work on findutils-4.3.3
6317
6318 2006-11-25  James Youngman  <jay@gnu.org>
6319
6320         Release 4.3.2.
6321
6322         * find/testsuite/Makefile.am: Added test case for Savannah bug #17782
6323
6324         * doc/textinfo.tex: Removed; we now use the version supplied
6325         by automake.
6326
6327         * m4/mkinstalldirs.m4: Added this file.  It's an excerpt from an
6328         old version of gnulib's m4/nls.po file.  The current version of
6329         gnulib does not expand MKINSTALLDIRS, but gettext-0.14.6's version
6330         of po/Makefile.in.in expects it to be expanded.  This m4 file
6331         fills the gap.
6332
6333 2006-11-20  James Youngman  <jay@gnu.org>
6334
6335         * po/et.po, po/bg.po, po/pl.po, po/nl.po, po/tr.po: Updated
6336         translations for Bulgarian, Estonian, Dutch, Polish and Turkish.
6337
6338 2006-11-08  James Youngman <jay@gnu.org>
6339
6340         * find/testsuite/Makefile.am:
6341         Oops, indicate the right directory for the new test files
6342
6343         * 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:
6344         Savannah bug#18222 - test case
6345
6346         * ChangeLog, lib/buildcmd.c:
6347         Fixed Svannah bug #17782 ('./' prefix added at start of arg while it should be added at the start of the expansion of {})
6348
6349         * find/ftsfind.c (process_all_startpoints): Set
6350         state.starting_path_length for every pathname argument.
6351         This fixes Savannah bug #18222.
6352
6353         * find/pred.c (pred_prune): -prune should have an effect only if we are
6354          currently considering a directory (Savannah bug #15531).
6355
6356 2006-10-15  James Youngman <jay@gnu.org>
6357
6358         * lib/buildcmd.c: Fixed Savannah bug #17782, in which "find
6359         -execdir echo "foo {}" runs 'echo ./foo filename' instead of the
6360         correct command 'echo foo ./filename'.
6361
6362         * po/hu.po, po/sl.po: Updated Hungarian and Slovenian po files
6363
6364 2006-08-21  James Youngman <jay@gnu.org>
6365
6366         * find/parser.c, find/testsuite/Makefile.am, find/testsuite/find.gnu/sv-bug-17490.exp:
6367         Fixed Savannah bug #17490, which was a coiredump when -regex ZZZ was the final test on the command line
6368
6369 2006-08-20  James Youngman <jay@gnu.org>
6370
6371         * find/parser.c: Merged the fix for the trailing % in "find -printf".
6372
6373 2006-08-20  Paul Eggert  <eggert@cs.ucla.edu>
6374
6375         Port recent fixes for symbolic modes involving X from gnulib,
6376         and clarify the documentation in this area.
6377         * doc/find.texi: Use "file mode bits" when talking about
6378         all the file mode bits (including setuid, setgid, and sticky),
6379         and "permissions" when talking only about permissions bits
6380         (read, write, execute/search).  Use "execute/search" to
6381         talk about the x bit, since it means both.  You do not need
6382         permission to the linked-to file to follow a symlink for
6383         syscalls like "stat", but you do need search permission for
6384         the directories you traverse.  Clarify the explanation of
6385         -perm.  Use "that" instead of "which" when "which" isn't
6386         quite correct English.
6387         (Mode Bits): Renamed from Permissions.  All uses changed.
6388         * doc/perm.texi: Sync from coreutils 6.0.
6389         * find/defs.h (struct perm_val.val): Now an array of two items,
6390         one for non-directories, and one for directories.  This is
6391         to handle symbolic modes like +X correctly.
6392         * find/parser.c (parse_perm): Likewise.  Also, adjust to
6393         latest gnulib interface for mode_adjust.
6394         * find/pred.c (pred_perm): Likewise.
6395         * find/testsuite/Makefile.am (EXTRA_DIST_XO): Add find.posix/perm-X.xo.
6396         (EXTRA_DIST_EXP): Add find.posix/perm-X.exp.
6397         * find/testsuite/find.posix/perm-X.exp: New file.
6398         * find/testsuite/find.posix/perm-X.so: New file.
6399
6400 2006-08-19  Paul Eggert  <eggert@cs.ucla.edu>
6401
6402         Port to latest gnulib, and simplify the bootstrapping procedure.
6403         * intl: Remove this directory and everything in it.
6404         * depcomp, install-sh, missing, mkinstalldirs, doc/texinfo.tex:
6405         Remove these files from CVS, as they are now gotten from gnulib.
6406         * README-CVS: Don't recommend "autoreconf -i", as it doesn't work
6407         for us.
6408         * import-gnulib.sh (findutils_files): New var.  Grab this stuff
6409         from gnulib.
6410         (findutils_modules): Add fopen-safer; remove stdio-safer.  This
6411         adjusts to latest gnulib.
6412         (modules): Remove obsolete reference to intl_modules.
6413         * .cvsignore: Remove stamp-h; add stamp-h1.
6414         * doc/.cvsignore: Add regexprops.texi.
6415         * find/.cvsignore: Add oldfind.
6416         * lib/.cvsignore: Add .deps, regexprops.
6417         * m4/.cvsignore: Add Makefile.
6418         * po/.cvsignore: Add stamp-po.
6419
6420 2006-08-19  James Youngman <jay@gnu.org>
6421
6422         * locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/bigprefix1.exp:
6423         Explicit checks for parefixes which are within range of a short, but outside the one-byte range
6424
6425         * locate/testsuite/locate.gnu/bigprefix1.exp, locate/testsuite/locate.gnu/exceedshort.exp, locate/testsuite/locate.gnu/space1st.exp:
6426         New file.
6427
6428         * locate/testsuite/Makefile.am, locate/testsuite/locate.gnu/exceedshort.exp, locate/testsuite/locate.gnu/space1st.exp:
6429         Patch from Tavis Ormandy; check frcode handles initial space end encodes paths with more than 2^16 characters in the common prefix (tiny change)
6430
6431         * locate/frcode.c: Changes to avoid overflows
6432
6433 2006-08-11  James Youngman <jay@gnu.org>
6434
6435         * locate/frcode.c:
6436         Avoid producing an invalid database if the first item begins with a space
6437
6438 2006-08-10  James Youngman <jay@gnu.org>
6439
6440         * find/pred.c, import-gnulib.sh, lib/listfile.c:
6441         Updated callers of the gnnulib filemode module so that they work with the 2006-07-09 version of gnulib
6442
6443         * config.rpath: Updated config.rpath from autotools
6444
6445 2006-08-08  James Youngman <jay@gnu.org>
6446
6447         * locate/locatedb.h:
6448         Automatically verify (at compile time) that the frcode datastream
6449         cannot get desynchronised.
6450
6451         * find/ftsfind.c:
6452         Fixed Savannah bug #10494 (-maxdepth does not yield the same stat savinf in ftsfind as oldfind)
6453
6454         * find/ftsfind.c: display fts_level for find -D search
6455
6456         * find/util.c: Support find -D search
6457
6458         * locate/locate.c:
6459         If the user specified -E but the database is an slocate database, do
6460         not produce a list of files they cannot stat.  Issue an error message
6461         explaining the problem.
6462
6463         * locate/locate.c:
6464         Issue states messages in a way which indicates more clearly what's
6465         happening when the numbers are reduced because not every filename
6466         matched the pattern.
6467
6468         * locate/locate.c: Better error checking in drop_privs().
6469
6470 2006-08-07  James Youngman <jay@gnu.org>
6471
6472         * NEWS, locate/locate.c, locate/locatedb.h:
6473         Added support for slocate database format
6474
6475         * xargs/xargs.c:
6476         Removed unused code (tivial patch from Miloslav Trmac).
6477
6478         * xargs/xargs.c: Removed unused code.
6479
6480         * doc/find.texi:
6481         Clarify that the output format for locate -S differs from BSD's.
6482
6483         * NEWS, find/find.1:
6484         Savannah bug #15360: explain global vs. positional options more clearly in the manual page
6485
6486         * NEWS: Typo in subsection header (* should be **).
6487
6488         * NEWS, find/find.1:
6489         Savannah bug #15360: explain global vs. positional options more clearly in the manual page
6490
6491         * doc/find.texi: Fixed some clumsy phrasing
6492
6493         * NEWS, configure.in:
6494         Now diverging again from the released tarball, so change once more to -CVS version number suffixes
6495
6496 2006-08-06  James Youngman <jay@gnu.org>
6497
6498         * locate/locate.c: Fixed a typo in a comment.
6499
6500         * NEWS, configure.in: Moving on towards 4.3.2...
6501
6502         Release 4.3.1.
6503
6504         * find/testsuite/config/unix.exp:
6505         Check that we can see the find.o file in the right position relative
6506         to $base_dir to ensure that we are indeed testing the program we just built.
6507
6508         * find/testsuite/config/unix.exp:
6509         Be more paranoid about whether we're really checking the right version
6510         of find.
6511
6512         * NEWS, configure.in: Prepare for release of 4.3.1
6513
6514         * doc/find.texi: Document the -O and -D options
6515
6516         * find/defs.h, find/find.1, find/util.c:
6517         'find -D help' now explains the available debugging options
6518
6519         * 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:
6520         Make dist changed all the po files again
6521
6522 2006-08-05  James Youngman <jay@gnu.org>
6523
6524         * NEWS: Described more changes in 4.3.1.
6525
6526         * locate/testsuite/config/unix.exp:
6527         Set the  environment variable so that updatedb knows where to find it; it's not in BINDIR yet during 'make check'
6528
6529         * 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:
6530         Make dist changed all the po files again :)
6531
6532         * po/et.po, po/vi.po: UPdated the Estonian and Vietnamese translations
6533
6534         * NEWS, configure.in: Prepare for release of findutils-4.2.28
6535
6536         * 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:
6537         Make dist changed all the po files again :)
6538
6539         * configure.in: Added Bulgarian translation.
6540
6541         * po/bg.po: Include Bulgarian translation
6542
6543         * configure.in: Added Bulgarian translation.
6544
6545         * po/et.po, po/vi.po: Updated Estonian and Vietnamese translations
6546
6547         * NEWS: Removed spurious comma.
6548
6549         * NEWS: Listed the updated translations.
6550
6551         * find/parser.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c:
6552         Fixed Savannah bug#16738, find does not subtract environment size in find .. -exec {} +
6553
6554         * NEWS: Updated the list of bugfixes etc.
6555
6556 2006-06-15  James Youngman <jay@gnu.org>
6557
6558         * NEWS: Described recent changes
6559
6560         * configure.in: fix to how we invoke the gnulib regex module
6561
6562         * find/find.1:
6563         Savannah bug #16269: avoid confusion over what type of quotes to use
6564         in an example.
6565
6566         * find/parser.c: Option -nowarn should not itself produce a warning
6567
6568         * find/defs.h: Remoevd useless declaration of last_pred
6569
6570 2006-06-14  James Youngman <jay@gnu.org>
6571
6572         * 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:
6573         Updated translation files ga pl sv tr nl ca vi bg fr
6574
6575         * locate/updatedb.sh:
6576         Fixed Savannah bug #16579 (su false should be su -c false)
6577
6578 2006-04-01  James Youngman <jay@gnu.org>
6579
6580         * find/find.c:
6581         Fixed Savannah bug #15800: "Hard link count is wrong" reports wrong
6582         directory name.
6583
6584 2006-03-31  James Youngman <jay@gnu.org>
6585
6586         * po/hu.po: Updated Hungarian translation
6587
6588 2006-01-04  James Youngman <jay@gnu.org>
6589
6590         * find/testsuite/find.posix/sizetype.exp, find/testsuite/find.posix/sizetype.xo, find/testsuite/find.posix/typesize.exp, find/testsuite/find.posix/typesize.xo:
6591         Additional tests for -type -size and -size -type
6592
6593         * 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:
6594         Initial implementation of a cost-based optimiser
6595
6596 2005-12-23  James Youngman <jay@gnu.org>
6597
6598         * find/parser.c: Refactor of parse_[acm]time
6599
6600         * find/defs.h, find/find.c, find/finddata.c, find/ftsfind.c, find/tree.c, find/util.c:
6601         last_pred can be a static in tree.c rather than a global variable
6602
6603         * find/tree.c, find/finddata.c:
6604         Moved some global data out of finddata.o and into static variables in tree.c
6605
6606         * 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:
6607         Fixed many compilation warnings
6608
6609         * find/find.c, find/ftsfind.c, find/util.c:
6610         Evaluating the predicates can change the contents of the data structure (for example to add another exec item)
6611
6612         * find/defs.h, find/find.c, find/ftsfind.c, find/tree.c, find/util.c:
6613         Re-factored a lot of common expression-handling code out of find.c and ftsfind.c, mainly into tree.c
6614
6615         * find/find.c, find/ftsfind.c, find/tree.c:
6616         Savannah bug #15271: more helpful error messages for cases where there is a missing expression
6617
6618 2005-12-20  James Youngman <jay@gnu.org>
6619
6620         * 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:
6621         Savannah bug #15195: more helpful error messages for 'find . ( )' or 'find . \!'
6622
6623         * ChangeLog: Added entries for recent changes.
6624
6625         * find/defs.h, find/find.c, find/ftsfind.c, find/testsuite/find.posix/bracket-depth.exp, find/util.c:
6626         Further fix to bug# 15235: a leading comma is a filename not an expression
6627
6628         * find/defs.h, find/parser.c, find/testsuite/Makefile.am, find/testsuite/find.posix/empty-parens.exp, find/tree.c:
6629         Accept 'find ( -depth )' but reject 'find ( )'
6630
6631         * 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:
6632         did make dist
6633
6634         * find/testsuite/find.gnu/delete.exp:
6635         Use the new find program, and the new way of locating it (/ instead of )
6636
6637         * find/testsuite/Makefile.am: Added bracket-depth.exp.
6638
6639         * NEWS, configure.in: We have moved on from 4.3.0
6640
6641         * 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:
6642         Avoid getting confused by filename arguments of which the first
6643         character looks like a predicate, for example ',x' or '!x' or
6644         '(x' (Savannah bug #15235).
6645
6646 2005-12-20  James Youngman <jay@gnu.org>
6647
6648         * find/defs.h, find/find.c, find/ftsfind.c,
6649         find/testsuite/find.posix/bracket-depth.exp, find/util.c: Further
6650         fix to bug# 15235: a leading comma is a filename not an expression
6651
6652         * find/defs.h, find/parser.c, find/testsuite/Makefile.am,
6653         find/testsuite/find.posix/empty-parens.exp, find/tree.c: Accept
6654         'find ( -depth )' but reject 'find ( )'
6655
6656         * find/testsuite/find.gnu/delete.exp: Use the new find program,
6657         and the new way of locating it ($OLDFIND/$FTSFIND instead of $FIND)
6658
6659         * find/testsuite/Makefile.am: Added bracket-depth.exp.
6660
6661         * NEWS, configure.in: We have moved on from 4.3.0
6662
6663         * find/defs.h, find/find.c, find/ftsfind.c,
6664         find/testsuite/Makefile.am, find/testsuite/find.gnu/delete.exp,
6665         find/testsuite/find.posix/files-not-expressions1.exp,
6666         find/testsuite/find.posix/files-not-expressions1.xo,
6667         find/testsuite/find.posix/files-not-expressions2.exp,
6668         find/testsuite/find.posix/files-not-expressions2.xo,
6669         find/testsuite/find.posix/files-not-expressions3.exp,
6670         find/testsuite/find.posix/files-not-expressions3.xo, find/util.c:
6671         Avoid getting confused by filename arguments of which the first
6672         character looks like a predicate, for example ',x' or '!x' or '(x'
6673         (Savannah bug #15235).
6674
6675 2005-12-19  James Youngman <jay@gnu.org>
6676
6677         * find/testsuite/config/unix.exp:
6678         Run every test twice, once with the old (non-fts) binary and once with
6679         the new (fts-enabled) binary.
6680
6681 2005-12-19  Eric Blake <ebb9@byu.net>
6682
6683         * find/testsuite/Makefile.am,
6684         find/testsuite/find.posix/sv-bug-15235.xo,
6685         find/testsuite/find.posix/sv-bug-15235.exp: New tests for Savannah
6686         bug 15235.
6687
6688         * NEWS, find/find.1, doc/find.texi (Invoking find): Document bug
6689         fix for Savannah bug 15235.
6690
6691 2005-12-16  James Youngman <jay@gnu.org>
6692
6693         * xargs/xargs.1, xargs/xargs.c: Fixed bug# 15211, that xargs
6694         --show-limits is not documented in the manpage or in the usage
6695         message
6696
6697 2005-12-12  James Youngman <jay@gnu.org>
6698
6699         Release 4.3.0.
6700
6701         * find/testsuite/find.gnu/access.exp:
6702         Don't leave junk files lying around the place
6703
6704         * README-CVS: Update the the instructions for getting gnulib; the
6705         CVS arrangements at Savannah have changed.
6706
6707         * ChangeLog, NEWS, doc/find.texi, doc/perm.texi, find/defs.h, find/parser.c:
6708         Merged changes from 4.2.x branch again
6709
6710         * NEWS, doc/find.texi, find/defs.h, find/find.c, find/ftsfind.c,
6711         find/parser.c, find/pred.c, find/util.c, lib/listfile.c,
6712         lib/listfile.h: Initial code to allow control over how -ls quote
6713         (or does not quote) control characters; not enabled yet
6714
6715 2005-12-11  James Youngman <jay@gnu.org>
6716
6717         * ChangeLog, THANKS, xargs/xargs.c:
6718         Fixed spelling errors in Bob Proulx's name.  Sorry, Bob.
6719
6720 2005-12-10  James Youngman <jay@gnu.org>
6721
6722         * doc/perm.texi:
6723         Aaron Hawley: Updated perm.texi from the coreutils distribution
6724
6725         * find/parser.c:
6726         Avoid using entries which have the same name as POSIX library
6727         functions (fprintf, printf, exec) as the implementation is allowed to
6728         #define these.  That generates hard-to-grok compilation errors.
6729
6730 2005-12-10  Andreas Metzler <gnu@downhill.at.eu.org>
6731
6732         * ChangeLog, NEWS, configure.in, find/defs.h, find/parser.c:
6733         Applied patch from Andreas Metzler fixing Savannah bug #15181:
6734         implicit declaration of parse_openparen
6735
6736 2005-12-08  James Youngman  <jay@gnu.org>
6737
6738         * doc/find.texi: Typo and spelling corrections from Aaron Hawley
6739
6740 2005-12-05  James Youngman  <jay@gnu.org>
6741
6742         * Released findutils-4.2.27
6743
6744 2005-12-05  James Youngman  <jay@gnu.org>
6745
6746         * doc/find.texi, find/find.1, locate/locate.1, xargs/xargs.1:
6747         Savannah patch #3775 from Aaron Hawley: reconciling man pages
6748         differences; did not apply the patch, but resolved all the
6749         remaining issues manually by updating the documentation (mostly
6750         the Texinfo documentation, which was missing a number of specific
6751         technical statements about the behaviour of various options)
6752
6753 2005-12-04  James Youngman  <jay@gnu.org>
6754
6755         * doc/find.texi: Document --show-limits
6756
6757         * xargs/xargs.c:
6758         Correctly display the size of the argument buffer we really allocated.
6759
6760         * doc/find.texi, find/find.1, find/parser.c, find/pred.c, NEWS:
6761         Savannah bug #14748 (which this change does NOT fix): issue
6762         warning of future changes in the behaviour of -perm /000
6763
6764 2005-11-30  James Youngman  <jay@gnu.org>
6765
6766         * xargs/xargs.c:
6767         Typo correction from Benno Schulenberg <benno@nietvergeten.nl>
6768         (tiny change)
6769
6770 2005-11-29  James Youngman  <jay@gnu.org>
6771
6772         * xargs/xargs.c:
6773         Typo "Ilegal"; change to "Invalid" since this is not really illegal!
6774         Bug report by Primoz Peterlin.
6775
6776         * lib/regexprops.c, xargs/xargs.c:
6777         Prefer the word 'Invalid' or the phrase 'not allowed' over
6778         'Illegal', as per the GNU coding standards, and as per the
6779         suggestion from Benno Schulenberg
6780
6781 2005-11-24  James Youngman  <jay@gnu.org>
6782
6783         * NEWS, lib/buildcmd.c, lib/buildcmd.h: Merge to trunk from 4.2.x fixes
6784
6785         * lib/buildcmd.h:
6786         Deleted inaccurate comment about the default value of ctl->args_per_exec.
6787
6788         * NEWS, lib/buildcmd.c, lib/buildcmd.h:
6789         Be more conservative about the total number of arguments we will
6790         allow (to avoid exec limits on Linux/PPC)
6791
6792 2005-11-23  James Youngman  <jay@gnu.org>
6793
6794         * NEWS: Bug #14921 has been fixed.
6795
6796         * find/fstype.c:
6797         Savannah bug #14921: when a Linux bind filesystem is in use, find
6798         would expand '-printf %F' to 'none' if a bind mount targeted the same
6799         filesystem as the one containing the file to be described.
6800
6801         * NEWS: Updated to describe recent changes
6802
6803         * doc/find.texi, find/find.1: Documented find -printf %M
6804
6805         * lib/buildcmd.c, xargs/testsuite/Makefile.am,
6806         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp,
6807         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo,
6808         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp,
6809         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo:
6810         Ensure that the test suite still passes even if the current
6811         system's value of ARG_MAX is different from the development/test
6812         system
6813
6814         * lib/buildcmd.c: reindent and untabify
6815
6816         * configure.in: The CVS code is moving on from the previous release.
6817
6818 2005-11-22  James Youngman  <jay@gnu.org>
6819
6820         * ChangeLog: Updated with recent changes.
6821
6822 2005-11-21  James Youngman  <jay@gnu.org>
6823
6824         * locate/testsuite/config/unix.exp:
6825         Even if we expect locate to return a nonzero status, the test should
6826         still fail if updatedb fails!
6827
6828         * locate/testsuite/locate.gnu/ignore_case2.exp:
6829         Set the current directory for updatedb.  This test case is supposed to
6830         fail because the filename is not matched, not because updatedb fails!
6831
6832         * locate/updatedb.sh:
6833         Check the binaries actually exist in the place we expect.
6834
6835 2005-11-20  James Youngman  <jay@gnu.org>
6836
6837         * locate/locate.1, xargs/xargs.1: Escape '-' as '\-' where appropriate.
6838
6839         * find/find.1:
6840         Escape '-' as '\-' where appropriate.   Fixes last part of bug #14556.
6841
6842 2005-11-19  James Youngman  <jay@gnu.org>
6843
6844         * doc/find.texi, find/find.1:
6845         Applied edited form of Andreas Metzler's -perm /mode documentation
6846         patch resolving Savannah bug #14619.
6847
6848         * lib/extendbuf.c:
6849         In the success case, extendbuf() should preserve the previous value of
6850         errno.  Fixes Savannah bug #14842.
6851
6852         * xargs/testsuite/Makefile.am: Added new test files
6853
6854         * find/find.1:
6855         Correctly indicate the default regular expression syntax (fixes
6856         Savannah bug #14836).
6857
6858         * NEWS, configure.in: Released findutils-4.2.26
6859
6860         * ChangeLog, NEWS, lib/buildcmd.c,
6861         xargs/testsuite/inputs/16383-ys.xi,
6862         xargs/testsuite/inputs/32767-ys.xi,
6863         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp,
6864         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo,
6865         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp,
6866         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo: Applied
6867         bugfix from Jim Meyering (tiny change), where many short arguments
6868         would cause xargs (and probably find -exec .. {} +) to fail
6869         because execve() returns E2BIG, which we should avoid
6870
6871         * xargs/testsuite/inputs/16383-ys.xi,
6872         xargs/testsuite/inputs/32767-ys.xi,
6873         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp,
6874         xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.xo,
6875         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp,
6876         xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.xo: New file.
6877
6878         * po/be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po,
6879         findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po,
6880         ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po,
6881         ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po,
6882         zh_TW.po: Updated Portuguese .po file and did update-po
6883
6884 2005-11-18  Jim Meyering  <jim@meyering.net> (tiny change)
6885
6886         * lib/buildcmd.c (bc_push_arg): When exec'ing, don't exceed
6887         Linux's limit on the maximum number of command line arguments.
6888
6889 2005-11-11  James Youngman  <jay@gnu.org>
6890
6891         * NEWS, find/find.c, find/fstype.c: Savannah bug #14922: if we need the
6892         list of mounted filesystems but it is not available, exit fatally
6893         with a message.  If it is not available but we don't need it,
6894         there is no need for an error.
6895
6896         * po/ro.po, ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po,
6897         zh_CN.po, zh_TW.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po,
6898         pt_BR.po, be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po,
6899         fi.po, findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po,
6900         it.po, ja.po: Updated Polish translation
6901
6902 2005-10-31  James Youngman  <jay@gnu.org>
6903
6904         * doc/find.texi:
6905         Removed redundant additional description of "--regextype".
6906
6907 2005-10-08  James Youngman  <jay@gnu.org>
6908
6909         * find/find.c, lib/regextype.c: Fixed Savannah bug #14616, which
6910         was that c99 code had crept in and it didn't compile on c89
6911         compilers
6912
6913         * doc/find.texi: Savannah patch #4371 from Andreas Metzler; the
6914         argument of -I is mandatory
6915
6916 2005-09-21  James Youngman  <jay@gnu.org>
6917
6918         * xargs/xargs.1, xargs/xargs.c: Clarified the -E option
6919
6920 2005-09-20  James Youngman  <jay@gnu.org>
6921
6922         * NEWS, configure.in, doc/find.texi, xargs/xargs.1, xargs/xargs.c:
6923         Documentation clarification: -L and -I take a mandatory argument;
6924         -l and -i do not
6925
6926 2005-09-17  James Youngman  <jay@gnu.org>
6927
6928         * xargs/xargs.c:
6929         Fixed Savannah bug #14550 - if environment is too large to allow
6930         exec() to work, we cannot even use "xargs --help".
6931
6932         * find/find.1:
6933         Avoid the use of -perm +mode, using -perm /mode instead.  From comment
6934         by Andreas Metzler (though I didn't read the patch).
6935
6936         * ChangeLog, doc/find.texi, find/find.1, xargs/xargs.1:
6937         Typo fix from A Costa (tiny change)
6938
6939         * NEWS: Corrections for find manual page - symbolic permissions.
6940
6941         * find/find.1:
6942         Corrected an inaccuracy in the EXAMPLES section - in symbolic modes,
6943         'o' stands for 'others' and 'u' stands for 'user' (i.e. the owner).
6944
6945 2005-09-17  A Costa <agcosta@gis.net>  (tiny change)
6946
6947         docs/find.texi: Fixed typo
6948         find/find.1: Fixed typo
6949         xargs/xargs.1: Fixed typo
6950
6951 2005-09-17  James Youngman  <jay@gnu.org>
6952
6953         * NEWS: Corrections for find manual page - symbolic permissions.
6954
6955         * find/find.1:
6956         Corrected an inaccuracy in the EXAMPLES section - in symbolic modes,
6957         'o' stands for 'others' and 'u' stands for 'user' (i.e. the owner).
6958
6959 2005-09-06  James Youngman  <jay@gnu.org>
6960
6961         * xargs/xargs.c: Typo in "IEEE" in a comment.
6962
6963 2005-09-04  James Youngman  <jay@gnu.org>
6964
6965         * find/defs.h, find/find.c, find/parser.c, find/pred.c,
6966         Work around compilation failure with GCC 4 and AIX 5.1, in which
6967         open is #defined to open64
6968
6969         * po/be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po,
6970         findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po,
6971         ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po,
6972         ru.po, rw.po, sk.po, sl.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po,
6973         zh_TW.po: Work around compilation failure with GCC 4 and AIX 5.1,
6974         in which open is #defined to open64
6975
6976 2005-09-03  James Youngman  <jay@gnu.org>
6977
6978         * find/testsuite/find.gnu/quit.exp: Fixed Savannah bug#14390, by
6979         avoiding an accidental assumption in quit.exp that directory
6980         entries are returned by readir() in any particular order
6981
6982         * NEWS, configure.in, doc/find.texi, xargs/testsuite/Makefile.am,
6983         xargs/testsuite/inputs/helloworld.xi,
6984         xargs/testsuite/xargs.gnu/delim-o.exp,
6985         xargs/testsuite/xargs.gnu/delim-o.xo, xargs/xargs.1,
6986         xargs/xargs.c: Added the --delimiter option to xargs, resolving
6987         Savannah support request sr #102914
6988
6989         * ChangeLog, NEWS, configure.in: Released findutils-4.2.25
6990
6991         * po/sr.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po, sl.po, be.po,
6992         ca.po, da.po, de.po, el.po, eo.po, es.po, et.po, fi.po,
6993         findutils.pot, fr.po, ga.po, gl.po, hr.po, hu.po, id.po, it.po,
6994         ja.po, ko.po, lg.po, ms.po, nl.po, pl.po, pt.po, pt_BR.po, ro.po,
6995         ru.po, rw.po, sk.po: Did update-po
6996
6997 2005-09-02  James Youngman  <jay@gnu.org>
6998
6999         * doc/find.texi, find/find.1:
7000         Improved documentation in response to Savannah bug #14376
7001
7002 2005-09-01  James Youngman  <jay@gnu.org>
7003
7004         * po/ChangeLog, ChangeLog: Updated with recent changes.
7005
7006         * locate/locate.c: Removed unused struct stringbuf.soffs.
7007
7008         * doc/find.texi: Typo fix from Jim Meyering (tiny change)
7009
7010 2005-09-01  Jim Meyering  <jim@meyering.net>
7011
7012         * locate/locate.c (struct stringbuf) [soffs]: Remove unused member.
7013         (locate): Remove initialization, too.
7014
7015 2005-09-01  James Youngman  <jay@gnu.org>
7016
7017         * doc/find.texi: Typo fix from Jim Meyering (tiny change)
7018
7019 2005-08-30  James Youngman  <jay@gnu.org>
7020
7021         * find/defs.h, find/find.c, find/fstype.c, find/pred.c:
7022         Attempted fix for compilation when AFS is #defined
7023
7024 2005-08-24  James Youngman  <jay@gnu.org>
7025
7026         * po/sl.po: Updated from Translation Project
7027
7028 2005-08-13  James Youngman  <jay@gnu.org>
7029
7030         * find/find.1: Remind the user to quote the pattern argument to -iname.
7031
7032 2005-08-12  James Youngman  <jay@gnu.org>
7033
7034         * NEWS: Corrected typo.
7035
7036 2005-08-11  James Youngman  <jay@gnu.org>
7037
7038         * po/fr.po: Updated French translation and added new PO file zh_TW.po
7039         for Chinese (traditional)
7040
7041 2005-08-09  James Youngman  <jay@gnu.org>
7042
7043         * NEWS: Indicate that regexprops.texi is built on Cygin now that
7044         Savannah bug #14025 has been fixed.
7045
7046         * lib/Makefile.am, lib/regexprops.c: Fixed compilation failure on
7047         Cygwin - Savannah Bug #14025 (tiny change, three lines), reported
7048         and fixed by Eric Blake
7049
7050         * find/testsuite/Makefile.am,
7051         find/testsuite/find.posix/sv-bug-14070.exp,
7052         find/testsuite/find.posix/sv-bug-14070.xo: Added new test case for
7053         SourceForge bug #14070
7054
7055         * find/testsuite/find.posix/sv-bug-14070.exp,
7056         find/testsuite/find.posix/sv-bug-14070.xo: New file.
7057
7058         * find/defs.h, find/ftsfind.c, find/pred.c, find/util.c:
7059         Ensure we can still build with --enable-debug
7060
7061         * find/testsuite/config/unix.exp,
7062         find/testsuite/find.gnu/execdir-one.exp,
7063         find/testsuite/find.gnu/execdir-root-only.exp,
7064         find/testsuite/find.gnu/sv-bug-12230.exp: If . is on $PATH,
7065         indicate that the -execdir tests cannot be carried out, as opposed
7066         to indicating that those tests fail
7067
7068 2005-08-07  James Youngman  <jay@gnu.org>
7069
7070         * NEWS: Indicated that some test suite files have been renamed.
7071
7072         * xargs/testsuite/Makefile.am, xargs/testsuite/inputs/eof.xi,
7073         xargs/testsuite/inputs/eof1.xi,
7074         xargs/testsuite/xargs.sysv/eof.exp,
7075         xargs/testsuite/xargs.sysv/eof.xo,
7076         xargs/testsuite/xargs.sysv/eof1.exp,
7077         xargs/testsuite/xargs.sysv/eof1.xo,
7078         xargs/testsuite/xargs.posix/lc_l2.exp,
7079         xargs/testsuite/xargs.posix/lc_l2.xo,
7080         xargs/testsuite/xargs.sysv/l2.exp,
7081         xargs/testsuite/xargs.sysv/l2.xo,
7082         xargs/testsuite/xargs.sysv/lc_l2.exp,
7083         xargs/testsuite/xargs.sysv/lc_l2.xo,
7084         xargs/testsuite/xargs.posix/L2.exp,
7085         xargs/testsuite/xargs.posix/l2.exp,
7086         xargs/testsuite/xargs.posix/L2.xo,
7087         xargs/testsuite/xargs.posix/l2.xo,
7088         xargs/testsuite/xargs.posix/uc_L2.exp,
7089         xargs/testsuite/xargs.posix/uc_L2.xo: Work around problems with
7090         CVS clients on case-insentitive operating systems
7091
7092         * debian/Changelog: Removed Changelog file since changelog is the
7093         one we should be using and having both files upsets Cygwin
7094         systems which cannot tell the dirrerence between changelog and
7095         Changelog
7096
7097         * find/ftsfind.c:
7098         If DEBUG is defined, show the symbolic names fro fts_info values.
7099
7100         * find/ftsfind.c: Added additional diagnostics.
7101
7102 2005-08-02  James Youngman  <jay@gnu.org>
7103
7104         * po/tr.po, vi.po:
7105         Updated Vietnamese and Turkish translations from Translation Project
7106
7107         * 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:
7108         Did update-po
7109
7110         * po/et.po, sk.po, ro.po:
7111         Updated Romanian, Slovak and Estonian translations from Translation Project
7112
7113 2005-08-01  James Youngman  <jay@gnu.org>
7114
7115         * ABOUT-NLS, INSTALL, Makefile.am, configure.in, depcomp,
7116         doc/texinfo.tex, install-sh, missing, mkinstalldirs: By adding the
7117         missing AM_GNU_GETTEXT_VERSION call, allowed autopoint to update
7118         those files of which it has updated copies.
7119
7120         * po/Makevars.template, po/Makefile.in.in, po/findutils.pot:
7121         Using AM_GNU_GETTEXT_VERSION, allowed gettext to update the infrastructure
7122
7123         * po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed:
7124         Files added by autopoint now that we are using AM_GNU_GETTEXT_VERSION
7125
7126         * find/testsuite/Makefile.am: Added find.gnu./perm-slash.{exp,xo}.
7127
7128         * po/nl.po: Updated Dutch translation from Translation Project
7129
7130         * po/ga.po: Updated Irish translation from the Translation Project
7131
7132         * po/da.po: Updated Danish translation from the Translation Project
7133
7134         * po/ca.po: Updated Catalan translation from Translation Project
7135
7136 2005-07-31  James Youngman  <jay@gnu.org>
7137
7138         * find/testsuite/excuses.txt: We now have tests for -perm.
7139
7140         * NEWS, configure.in, find/parser.c,
7141         find/testsuite/find.gnu/perm-slash.exp,
7142         find/testsuite/find.gnu/perm-slash.xo: Fixed bug which caused find
7143         -perm /440 to be treated the same as find -perm 440
7144
7145         * find/testsuite/Makefile.am:
7146         Generic tests for -perm -NNN and -perm NNN
7147
7148         * find/testsuite/excuses.txt: New file - list of test cases that
7149         still need to be written, along with excuses why they haven't been
7150         done yet
7151
7152         * find/testsuite/find.posix/perm-vanilla.exp,
7153         find/testsuite/find.posix/perm-vanilla.xo: Generic tests for -perm
7154         -NNN and -perm NNN
7155
7156         * find/testsuite/find.gnu/inum.exp:
7157         Ensure that the test would fail if -inum just always returned true
7158
7159         * find/testsuite/Makefile.am, find/testsuite/find.gnu/ilname.exp,
7160         find/testsuite/find.gnu/ilname.xo,
7161         find/testsuite/find.gnu/inum.exp, find/testsuite/find.gnu/inum.xo,
7162         find/testsuite/find.gnu/lname.exp,
7163         find/testsuite/find.gnu/lname.xo,
7164         find/testsuite/find.gnu/xtype.exp,
7165         find/testsuite/find.gnu/xtype.xo,
7166         find/testsuite/find.posix/links.exp,
7167         find/testsuite/find.posix/links.xo: New test cases for -ilname,
7168         -inum, -lname, -xtype
7169
7170         * find/testsuite/Makefile.am, find/testsuite/find.gnu/delete.exp,
7171         find/testsuite/find.gnu/delete.xo,
7172         find/testsuite/find.gnu/iregex1.exp,
7173         find/testsuite/find.gnu/iregex1.xo,
7174         find/testsuite/find.gnu/regex1.exp,
7175         find/testsuite/find.gnu/regex1.xo,
7176         find/testsuite/find.gnu/regex2.exp,
7177         find/testsuite/find.gnu/regex2.xo,
7178         find/testsuite/find.gnu/samefile-copy.exp,
7179         find/testsuite/find.gnu/samefile-copy.xo,
7180         find/testsuite/find.gnu/samefile-link.exp,
7181         find/testsuite/find.gnu/samefile-link.xo,
7182         find/testsuite/find.gnu/samefile-same.exp,
7183         find/testsuite/find.gnu/samefile-same.xo,
7184         find/testsuite/find.gnu/samefile-symlink.exp,
7185         find/testsuite/find.gnu/samefile-symlink.xo: Further test cases
7186
7187         * find/find.1: Indicate that -delete implies -depth (find.texi
7188         already mentioned this).
7189
7190         * find/testsuite/Makefile.am:
7191         Brought the list of .exp and .xo files in Makefile.am into sync with
7192         the actual contents of the CVS repository.
7193
7194         * find/testsuite/Makefile.am, find/testsuite/find.gnu/depth-d.exp,
7195         find/testsuite/find.gnu/depth-d.xo,
7196         find/testsuite/find.gnu/empty.exp,
7197         find/testsuite/find.gnu/empty.xo,
7198         find/testsuite/find.gnu/execdir-one.exp,
7199         find/testsuite/find.gnu/execdir-one.xo,
7200         find/testsuite/find.gnu/false.exp,
7201         find/testsuite/find.gnu/false.xo,
7202         find/testsuite/find.gnu/follow-basic.exp,
7203         find/testsuite/find.gnu/follow-basic.xo,
7204         find/testsuite/find.gnu/gnu-or.exp,
7205         find/testsuite/find.gnu/gnu-or.xo,
7206         find/testsuite/find.gnu/gnuand.exp,
7207         find/testsuite/find.gnu/gnuand.xo,
7208         find/testsuite/find.gnu/gnunot.exp,
7209         find/testsuite/find.gnu/gnunot.xo,
7210         find/testsuite/find.gnu/iname.exp,
7211         find/testsuite/find.gnu/iname.xo,
7212         find/testsuite/find.gnu/ipath.exp,
7213         find/testsuite/find.gnu/ipath.xo,
7214         find/testsuite/find.gnu/iwholename.exp,
7215         find/testsuite/find.gnu/iwholename.xo,
7216         find/testsuite/find.gnu/path.exp, find/testsuite/find.gnu/path.xo,
7217         find/testsuite/find.gnu/print0.exp,
7218         find/testsuite/find.gnu/print0.xo,
7219         find/testsuite/find.gnu/quit.exp, find/testsuite/find.gnu/quit.xo,
7220         find/testsuite/find.gnu/true.exp, find/testsuite/find.gnu/true.xo,
7221         find/testsuite/find.gnu/wholename.exp,
7222         find/testsuite/find.gnu/wholename.xo,
7223         find/testsuite/find.posix/and.exp,
7224         find/testsuite/find.posix/and.xo,
7225         find/testsuite/find.posix/exec-one.exp,
7226         find/testsuite/find.posix/exec-one.xo,
7227         find/testsuite/find.posix/grouping.exp,
7228         find/testsuite/find.posix/grouping.xo,
7229         find/testsuite/find.posix/name.exp,
7230         find/testsuite/find.posix/name.xo,
7231         find/testsuite/find.posix/posixnot.exp,
7232         find/testsuite/find.posix/posixnot.xo,
7233         find/testsuite/find.posix/prune.exp,
7234         find/testsuite/find.posix/prune.xo: Added new test cases for many
7235         of the actions and tests of find
7236
7237         * find/find.c (default_prints):
7238         not a static function, so do not declare it as one.
7239
7240         * m4/withfts.m4: Fixed underquoted definition of FIND_WITH_FTS.
7241         [this change is currently on a branch only]
7242
7243 2005-07-30  James Youngman  <jay@gnu.org>
7244
7245         * find/finddata.c, find/ftsfind.c, find/parser.c, find/pred.c,
7246         find/util.c, m4/Makefile.am, m4/withfts.m4: Initial attempt to
7247         convert find to use gnulib's fts()
7248         [this change is currently on a branch only]
7249
7250         * find/finddata.c, find/ftsfind.c, m4/withfts.m4: New file.
7251         [this change is currently on a branch only]
7252
7253         * NEWS, configure.in, find/Makefile.am, find/defs.h, find/find.c,
7254         import-gnulib.sh: Initial attempt to convert find to use gnulib's
7255         fts() [this change is currently on a branch only]
7256
7257 2005-07-29  James Youngman  <jay@gnu.org>
7258
7259         * NEWS, configure.in
7260         Prepared for the release of findutils-4.2.24
7261
7262         * ChangeLog: Updated with recent changes.
7263
7264         * NEWS, find/find.1, doc/find.texi:
7265         Indicate that -ok and -okdir redirect stdin from /dev/null.
7266
7267         * NEWS: Explain the directory link count change more throroughly.
7268
7269         * NEWS: Fixed bug #13973.
7270
7271         * find/pred.c (pred_fprintf): Fix Savannah bug #13973: Modify the
7272         handling of -printf %Y so that it no longer modifies stat_buf
7273
7274         * find/testsuite/find.gnu/printf-symlink.exp,
7275         find/testsuite/find.gnu/printf-symlink.xo: Detect Savannah bug
7276         #13973: pollution of stat_buf by the %Y directive (trivial change
7277         from Andreas Metzler)
7278
7279         * INSTALL, depcomp, doc/texinfo.tex, install-sh, missing, mkinstalldirs:
7280         Updated auxiliary files from the automake-1.9 distribution
7281
7282         * configure.in:
7283         Introduce new Automake conditional, CROSS_COMPILING, true when we are corss compiling
7284
7285         * find/find.c:
7286         If we decline to follow a symbolic link due to the safety check, issue a more self-explanatory warning message
7287
7288         * lib/Makefile.am: Don't build regexprops if we are cross compiling
7289
7290         * doc/Makefile.am:
7291         Depend on the regex.h file rather than the 'regexprops' binary,
7292         because the header file will always exist even if we are doing "make
7293         dist".  Otherwise "make distcheck" fails because it tries to rebuild
7294         find.info while the source-directory is read-only.
7295
7296 2005-07-28  James Youngman  <jay@gnu.org>
7297
7298         * find/find.1:
7299         Say "other users" rather than "rest of the world" when talking about
7300         Unix permissions.  Fixes Savannah bug #4246.
7301
7302 2005-07-27  James Youngman  <jay@gnu.org>
7303
7304         * xargs/testsuite/Makefile.am: Added new test case 'childfail.exp'.
7305
7306         * doc/find.texi:
7307         Updated the description of the safe-dir-change operation to reflect
7308         what find now does on systems that lack O_NOFOLLOW.
7309
7310         * NEWS, find/parser.c: Indicate in the output of find --version if
7311         the leaf optimisation is enabled or not
7312
7313         * find/find.c: Fixed typo.
7314
7315         * find/find.c: If the link count of a directory starts off less
7316         than two, disable the leaf optimisation for this directory.
7317
7318 2005-07-26  James Youngman  <jay@gnu.org>
7319
7320         * lib/regexprops.c: Further small corrections from Karl.
7321
7322         * doc/find.texi:
7323         Reordered the sections in the manual to put the "Common Tasks" and
7324         "Worked Examples" chapters together.
7325
7326         * configure.in, find/find.c: Allow the leaf optimisation to be
7327         disabled by default with the configure option
7328         --disable-leaf-optimisation
7329
7330         * find/find.c: Removed old code for antuqie version of savedir().
7331
7332         * lib/regextype.c: Put the syntaxes in alphabetical order.
7333
7334         * lib/regexprops.c: Karl made some more readability suggestions.
7335
7336 2005-07-24  James Youngman  <jay@gnu.org>
7337
7338         * doc/Makefile.am: If the regexprops program has changed we should
7339         re-run it, since it will probably now produce different output
7340
7341         * lib/regextype.h:
7342         Allow the caller to detect if one regex type is identical to another.
7343
7344         * configure.in:
7345         Define the preprocessor macro FINDUTILS for that code int he lib/
7346         directory can be slightly more reusable.
7347
7348         * lib/regextype.c:
7349         Allow the caller to detect if one regex type is identical to another.
7350
7351         * lib/regexprops.c:
7352         Made Texinfo style corrections suggested by Karl Berry.
7353
7354 2005-07-22  James Youngman  <jay@gnu.org>
7355
7356         * xargs/testsuite/xargs.posix/childfail.exp, xargs/xargs.c: Fix
7357         Savannah bug #13878, in which xargs deals incorrectly with child
7358         failure, returning 0 when it should return 123
7359
7360 2005-07-17  James Youngman  <jay@gnu.org>
7361
7362         * find/find.1: (tiny change) Corrections by Greg Wooledge
7363
7364 2005-07-16  James Youngman  <jay@gnu.org>
7365
7366         * doc/find.texi: Updates following comments by Dave Gilbert.
7367
7368         * NEWS: Corrected a typo.
7369
7370         * doc/find.texi:
7371         Added in the example about updating an aggregate timestamp file.
7372
7373 2005-07-15  James Youngman  <jay@gnu.org>
7374
7375         * po/da.po: Updated Danish translation from translation project
7376
7377 2005-07-14  James Youngman  <jay@gnu.org>
7378
7379         * NEWS, doc/Makefile.am, doc/find.texi, lib/Makefile.am,
7380         lib/regexprops.c, lib/regextype.c, lib/regextype.h: Added
7381         --regextype and -regextype options to locate and find
7382         respectively, and documented these
7383
7384         * doc/find.texi: We use GNU Emacs regexps by default now.
7385
7386         * doc/find.texi:
7387         We require GNU sort in order for locate to handle newlines correctly,
7388         not just GNU find.
7389
7390 2005-07-10  James Youngman  <jay@gnu.org>
7391
7392         * doc/find.texi:
7393         Applied several documentation improvement patches from Aaron Hawley
7394
7395         * ChangeLog, NEWS: Updated with recent changes.
7396
7397         * NEWS: Recent gnulib changed have fixed -iregex
7398
7399         * doc/find.texi, xargs/xargs.1:
7400         Tiny patch from Andreas Metzler: xargs -I is like xargs -i, but the latter is deprecated
7401
7402 2005-07-06  James Youngman  <jay@gnu.org>
7403
7404         * find/defs.h, find/find.c, find/parser.c, find/pred.c:
7405         Fixed Savannah bug #13650; programs run by -exec cannot read stdin
7406
7407 2005-07-04  James Youngman  <jay@gnu.org>
7408
7409         * NEWS: *** empty log message ***
7410
7411         * doc/find.texi:
7412         Added a "Worked Examples" section.   It currently only contains a
7413         (long) example about deleting files.
7414
7415         * .cvsignore: Some extra stuff to ignore.
7416
7417 2005-07-03  James Youngman  <jay@gnu.org>
7418
7419         * find/Makefile.am: Don't need regexprops.c really...
7420
7421         * lib/regextype.c, lib/regextype.h:
7422         New files for selecting regex type based on a keyword
7423
7424         * locate/locate.1: Documented the fact that we now use Emacs-style
7425         regexps, not POSIX EREs, for compatibility with find -regex.
7426
7427         * lib/Makefile.am, locate/locate.c, doc/find.texi,
7428         find/Makefile.am, find/defs.h, find/find.1, find/find.c,
7429         find/parser.c: Fixed Savannah bug #13495: find now uses
7430         Emacs-style regexps by default
7431
7432 2005-07-02  James Youngman  <jay@gnu.org>
7433
7434         * configure.in, find/defs.h, find/fstype.c, find/parser.c,
7435         intl/dcigettext.c, lib/buildcmd.c, lib/listfile.c,
7436         lib/savedirinfo.c, locate/locate.c, xargs/xargs.c: Assume unistd.h
7437         is present - avoid using HAVE_UNISTD_H
7438
7439 2005-07-01  Jim Meyering  <jim@meyering.net>
7440
7441         With `-fprint F' or `-fprintf F', don't write diagnostics
7442         to F when stderr is closed.
7443
7444         * find/parser.c: Include "stdio-safer.h".
7445         (open_output_file): Use fopen_safer, not fopen.
7446         * import-gnulib.sh (findutils_modules): Add stdio-safer.
7447
7448 2005-07-01  James Youngman  <jay@gnu.org>
7449
7450         * doc/find.texi:
7451         Aaron pointed out a potentially-confusing sentence.  I fixed it.
7452
7453         * find/defs.h, find/find.1, find/find.c, find/parser.c,
7454         find/pred.c, find/util.c: Allow consistency-checking of the
7455         predicates, checking for example that actions all have side
7456         effects
7457
7458 2005-06-29  James Youngman  <jay@gnu.org>
7459
7460         * doc/find.texi: Applied patch from Aaron Hawley (Savannah patch
7461         #3751: Typos and small suggestions to find.texi)
7462
7463 2005-06-27  James Youngman  <jay@gnu.org>
7464
7465         * ChangeLog, locate/locate.c: Applied patch from Bas Van Gompel to
7466         move match counting into a (new) visitor function
7467
7468         * NEWS, configure.in: No longer 4.2.23, as we're moving on now
7469
7470 2005-06-24  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7471
7472         * locate/locate.c (visit_count, visit_limit): New functions.
7473         (locate): Use visit_limit or visit_count. Simplify main loop.
7474         (main) Bail out early when limit is reached.
7475
7476 2005-06-20  James Youngman  <jay@gnu.org>
7477
7478         * xargs/xargs.c:
7479         Removed some code which had already been disabled via the preprocessor.
7480
7481 2005-06-19  Dmitry V. Levin <ldv@altlinux.org>
7482
7483         * lib/savedirinfo.c: Fix two compilation warnings (which would
7484         prevent compilation if "-Wall -Werror" is in effect).
7485
7486 2005-06-19  James Youngman  <jay@gnu.org>
7487
7488         * ChangeLog: Indicate that we made (are making) a release.
7489
7490         * ChangeLog, NEWS, configure.in: Preparing to release 4.2.23
7491
7492         * doc/find.texi: Fixed Texinfo syntax error in previous change
7493
7494         * doc/find.texi, xargs/xargs.1:
7495         Document the fact that the -i and -L options are currently
7496         incompatible (Savannah bug 13041).
7497
7498         * locate/updatedb.1, locate/updatedb.sh: Fix Savannah bug 13411 -
7499         reject trailing slashes in updatedb's --prunepaths, bacsue these
7500         will never be matched
7501
7502         * NEWS: Released findutils-4.2.23.
7503
7504         * doc/find.texi, xargs/xargs.1:
7505         Document the fact that the -i and -L options are currently
7506         incompatible (Savannah bug 13041).
7507
7508         * locate/updatedb.1, locate/updatedb.sh: Fix Savannah bug 13411 -
7509         reject trailing slashes in updatedb's --prunepaths, because these
7510         will never be matched.
7511
7512 2005-06-18  James Youngman  <jay@gnu.org>
7513
7514         * po/ga.po, tr.po: Updated Irish and Turkish translations.
7515
7516         * po/pl.po: Did update-po
7517
7518         * po/pl.po:
7519         Updated Polish translation file from the Translation Project
7520
7521         * 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:
7522         Did update-po
7523
7524 2005-06-18  Martin Buchholz (tiny change)
7525
7526         * find/defs.h, find/find.c, find/parser.c, doc/find.texi: Fix
7527         typos/spelling errors (mostly in source code comments).
7528
7529 2005-06-18  Dmitry V. Levin  <ldv@altlinux.org>
7530
7531         Additional documentation tweaks for -execdir/-okdir actions.
7532         * find/parser.c (parse_help): Mention -execdir and -ordir options.
7533         * doc/find.texi, find/find.1: Additionally document new options.
7534
7535 2005-06-12  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7536
7537         * locate/locate.c: Implement --all (-A).
7538
7539         * NEWS, doc/find.texi, locate/locate.1: Document locate --all (-A)
7540
7541 2005-06-12  James Youngman  <jay@gnu.org>
7542
7543         * find/find.c, NEWS:
7544         Savannah bug #13381 (Debian bug 313081): if we have O_NOFOLLOW,
7545         safely_chdir() does not need to call stat().  However, process_dir()
7546         used to rely on using that stat information.  To work around this
7547         problem, there is now an output parameter in safely_chdir() which
7548         indicates if the stat buffer is valid.
7549         This bug has possible security implications.
7550
7551         * find/find.1, doc/find.texi:
7552         Applied patch from Andreas Metzler, improving the wording for the
7553         documentation of the %k and %b format directives.  This patch does
7554         not require a copyright assignment as it consists of several
7555         copies of the same small wording change.
7556
7557 2005-06-11  James Youngman  <jay@gnu.org>
7558
7559         * find/find.1: Corrected spelling error 'writeable' to 'writable'.
7560
7561         * find/find.1, locate/locate.1:
7562         Fixed Savannah bug #13363, typos in manpages (tiny change)
7563
7564 2005-06-10  James Youngman  <jay@gnu.org>
7565
7566         * find/find.c, lib/savedirinfo.c, lib/savedirinfo.h: Switch to a
7567         new scheme for saving directory entry data which is extensible to
7568         allow additional data to be saved.
7569
7570 2005-06-09  James Youngman  <jay@gnu.org>
7571
7572         * locate/testsuite/config/unix.exp:
7573         Use the new normalize_dir procedure throughout.
7574
7575         * locate/testsuite/config/unix.exp: Move the normalisation into a
7576         procedure.  Don't rely on the "file normalize" command being
7577         available (it's new in Tcl 8.4).
7578
7579 2005-06-08  James Youngman  <jay@gnu.org>
7580
7581         * ChangeLog, NEWS, configure.in: Updated for recent changes
7582
7583         * doc/find.texi:
7584         Explain that you should put the argument of -name in quotes.
7585
7586         * find/find.1:
7587         Added a new "NON-BUGS" section pointing out things that look like bugs
7588         but are caused by mistakes or misunderstandings.
7589
7590         * doc/find.texi, locate/locate.1: Applied Bas van Gompel's patch
7591         which allows the database to be read from stdin.
7592
7593         * locate/locate.c:
7594         Read the database in by using the "visitor" pattern.  Modified file
7595         header comment to indicate that we no longer use the efficient
7596         algorith described in ;login:.  Emit an error message if the
7597         LOCATE_PATH variable implies that we should read stdin twice.
7598         Most of this code is from Bas van Gompel.
7599
7600         * AUTHORS: Credit Bas van Gompel for his work on locate.
7601
7602         * lib/printquoted.h: Appled patch from Bas - fixing compiler warning.
7603
7604 2005-06-07  James Youngman  <jay@gnu.org>
7605
7606         * ChangeLog, NEWS, configure.in: Updates prior to release
7607
7608         * config.rpath: Added file required for 'make dist'
7609
7610         * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po,
7611         po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po,
7612         po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
7613         po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po,
7614         po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/rw.po, po/sk.po,
7615         po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po:
7616         updated the po files for release
7617
7618         * xargs/testsuite/Makefile.am:
7619         Added in all the test files from Dmitry V. Levin.
7620
7621 2005-06-08  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7622
7623         * NEWS, locate/locate.1, doc/find.texi: Document usage of `-'
7624         to refer to stdin in database-path for locate.
7625         * locate/locate.c: Change prototype for visitors and processors
7626         throughout. Move reading the database and generating base_name
7627         into visitors. Allow `-' to refer to stdin in database-path.
7628
7629         * lib/printquoted.h: Include stdio.h.
7630
7631 2005-06-07  James Youngman  <jay@gnu.org>
7632
7633         * COPYING, debian/copyright, depcomp, doc/texinfo.tex,
7634         find/defs.h, find/find.c, find/fstype.c, find/parser.c,
7635         find/pred.c, find/testsuite/config/unix.exp, find/tree.c,
7636         find/util.c, import-gnulib.sh, intl/Makefile.in,
7637         intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c,
7638         intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c,
7639         intl/dngettext.c, intl/explodename.c, intl/finddomain.c,
7640         intl/gettext.c, intl/gettext.h, intl/gettextP.h,
7641         intl/hash-string.h, intl/intl-compat.c, intl/l10nflist.c,
7642         intl/libgettext.h, intl/libgnuintl.h, intl/loadinfo.h,
7643         intl/loadmsgcat.c, intl/localcharset.c, intl/locale.alias,
7644         intl/localealias.c, intl/ngettext.c, intl/plural.c, intl/plural.y,
7645         intl/ref-add.sin, intl/ref-del.sin, intl/textdomain.c,
7646         lib/buildcmd.c, lib/buildcmd.h, lib/extendbuf.c, lib/extendbuf.h,
7647         lib/forcefindlib.c, lib/listfile.c, lib/listfile.h,
7648         lib/modetype.h, lib/nextelem.c, lib/nextelem.h, lib/printquoted.c,
7649         lib/printquoted.h, lib/qmark.c, lib/savedirinfo.c,
7650         lib/savedirinfo.h, lib/strspn.c, lib/wait.h, lib/waitpid.c,
7651         locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c,
7652         locate/locatedb.h, locate/testsuite/config/unix.exp,
7653         locate/updatedb.sh, missing, po/fetch-po-files,
7654         xargs/testsuite/config/unix.exp, xargs/xargs.c:
7655         Updated the FSF's postal address
7656
7657         * ChangeLog: Corrected Bas's email address.
7658
7659         * locate/locate.c: Updated copyright years.
7660
7661 2005-06-07  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7662
7663          * locate/locate.c: Fold case once, only when needed.
7664
7665 2005-06-07  James Youngman  <jay@gnu.org>
7666
7667         * NEWS: Updated with recent changes.
7668
7669         * mdate-sh: Use the mdate-sh from automake
7670
7671         * find/parser.c, find/pred.c, find/tree.c, find/util.c,
7672         lib/Makefile.am, lib/forcefindlib.c, lib/listfile.c,
7673         lib/listfile.h, locate/code.c, locate/locate.c, find/defs.h,
7674         find/find.c: Fix Savannah bug #13324: Fix compiler warnings for
7675         GCC-3.4
7676
7677         * locate/locate.c:
7678         Fixed Savannah bug #13325: Quoting of output filenames in locate
7679         should match find.
7680
7681         * find/parser.c:
7682         Fixed Savannah bug #13319: C9X-ism in parser.c (declaration after
7683         statements).
7684
7685         * find/pred.c, lib/Makefile.am, lib/listfile.c, lib/nextelem.c,
7686         lib/printquoted.c, lib/printquoted.h, lib/qmark.c, NEWS,
7687         doc/find.texi, find/defs.h, find/find.1, find/parser.c: Fixed
7688         Savannah bug #13303, find should filter out non-printable
7689         characters if outputting to tty
7690
7691 2005-05-30  James Youngman  <jay@gnu.org>
7692
7693         * locate/locate.c: rename new_locate() to locate() since
7694           old_locate() has gone the way of the dodo.
7695
7696 2005-05-29  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7697
7698         Add a ``--print'' (``-p'') option. (to cancel side-effects of -c/-S)
7699         Allow ``--statistics'' in combination with non-options.
7700         * doc/find.texi: Add documentation for locate --print (-p), and the
7701         use of non-options with --statistics.
7702         * locate/locate.1: ditto.
7703         * locate/locate.c: Read each database only once.
7704
7705 2005-05-23  Paul Eggert  <eggert@cs.ucla.edu>
7706
7707         Adjust to recent gnulib changes.
7708         * import-gnulib.sh: Get config.rpath from gnulib/build-aux,
7709         not gnulib/config.
7710         * find/parser.c (parse_perm): Ignore umask when parsing
7711         symbolic permissions.  Adjust to new modechange API.
7712
7713 2005-05-16  James Youngman  <jay@gnu.org>
7714
7715         * find/find.c, find/parser.c, find/pred.c, find/tree.c:
7716         Trivial change: don't use i18n support for debug-only messages
7717
7718         * ChangeLog: Added ChangeLog entry crediting Dmitry
7719
7720 2005-05-09  James Youngman  <jay@gnu.org>
7721
7722         * find/parser.c:
7723         The previous change fixed Savannah bug #12999.  This change doesn't do
7724         anything, it's only intended to be a place to record the Savannah bug
7725         ID we've just fixed.
7726
7727         * find/parser.c:
7728         Oops.  Initialise the variable which indicates which regex syntax to
7729         use.  We use POSIX basic regular expressions.
7730
7731         * find/parser.c:
7732         Suggestion by Ed Avis: point out that "-name foo/bar" will almost
7733         always evaluate to false.   Suggest to the user what alternatives they
7734         might find useful.
7735
7736 2005-05-02  James Youngman  <jay@gnu.org>
7737
7738         * AUTHORS:
7739         Added Dimitry (his new test suite contribution required a copyright
7740         assignment).
7741
7742 2005-05-03  Dmitry V. Levin
7743
7744         * Added xargs test suite tests by Dmitry V. Levin, together with
7745           bugfixes which ensure that the tests pass.
7746
7747 2005-04-18  James Youngman  <jay@gnu.org>
7748
7749         * Added test suite tests for Bas van Gompel's changes.
7750
7751 2005-04-18  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7752
7753         * doc/find.texi: Document locate --non-existing (-E).
7754         * locate/locate.1: Ditto.
7755         * locate/locate.c: Implement --non-existing (-E).
7756
7757 2005-04-04  James Youngman  <jay@gnu.org>
7758
7759         * configure.in, import-gnulib.sh:
7760         We no longer need gnulib/m4/Makefile.am
7761
7762         * po/vi.po: Updated Vietnamese translation
7763
7764         * locate/updatedb.sh:
7765         Savannah bug #12491: Only use the "-s" option to "su" if it is
7766         supported.
7767
7768 2005-04-01  James Youngman  <jay@gnu.org>
7769
7770         * locate/locate.1, locate/updatedb.1, xargs/xargs.1: Trivial
7771         change from A Costa <agcosta@gis.net>, fixing typos in manual
7772         pages for xargs, locate and updatedb; fixes Savannah bug #12500,
7773         Debian bug #301934
7774
7775 2005-03-22  James Youngman  <jay@gnu.org>
7776
7777         * import-gnulib.sh: Include the new gnulib module stat-macros
7778
7779         * configure.in:
7780         CVS code is (will shortly be) no longer identical to the 4.2.20 release
7781
7782 2005-03-17  James Youngman  <jay@gnu.org>
7783
7784         * configure.in: Preprare for release of 4.2.20.
7785
7786         * NEWS: Updated prior to release of 4.2.20.
7787
7788         * ChangeLog: Updated with recent changes.
7789
7790         * THANKS: Thank Bas van Gompel, but only once.
7791
7792         * THANKS: Thank Bas van Gompel and Aaron S. Hawley.
7793
7794         * po/vi.po: Updated Vietnamese PO file
7795
7796 2005-03-10  James Youngman  <jay@gnu.org>
7797
7798         * po/nl.po: Updated Dutch PO file
7799
7800 2005-03-08  Bas van Gompel  <patch-findutils.buzz@bavag.tmfweb.nl>
7801
7802         * import-gnulib.sh: Re-enable creation of gnulib/m4/Makefile.am.
7803
7804 2005-03-07  James Youngman  <jay@gnu.org>
7805
7806         * Released findutils-4.2.19.
7807
7808         * find/testsuite/find.posix/sizes.exp:
7809         Use 2>/dev/null instead of 2>&1, because Tcl understands the former
7810         but not the latter.
7811
7812         * find/testsuite/Makefile.am: Also distribute sv-bug-12181.xo.
7813
7814         * find/testsuite/Makefile.am: Distribute sv-bug-12181.
7815
7816         * find/testsuite/Makefile.am: Distribute sv-bug-12230.
7817
7818         * NEWS: Updated with new news.
7819
7820         * ChangeLog: Brought up to date.
7821
7822         * lib/buildcmd.c, find/testsuite/find.gnu/sv-bug-12230.exp: Fixed
7823         Savannah bug #12230, in which '-exec echo == {} +' is always run,
7824         even if there were no matched files.
7825
7826 2005-03-06  James Youngman  <jay@gnu.org>
7827
7828         * ChangeLog: Added latest changes.
7829
7830         * po/pt.po, configure.in: Added Portuguese translation
7831
7832 2005-03-04  James Youngman  <jay@gnu.org>
7833
7834         * configure.in: Modernized the way we call AC_INIT and
7835         AM_INIT_AUTOMAKE
7836
7837         * locate/locate.c, find/pred.c, find/find.c:
7838         Eliminated some compiler warnings
7839
7840         * find/pred.c: Clarified the meaning of a comment.
7841
7842         * find/testsuite/Makefile.am: Added sizes.exp, sizes.xo.
7843
7844         * find/testsuite/find.posix/sizes.xo,
7845         find/testsuite/find.posix/sizes.exp: Added tests for -size
7846         predicate
7847
7848 2005-03-03  James Youngman  <jay@gnu.org>
7849
7850         * find/find.c:
7851         safely_chdir_lstat(): if we didn't end up in the right place, and then
7852         fchdir() fails, we can't return to the directory we started in.
7853         Therefore, issue a fatal error message and exit.
7854
7855 2005-03-01  James Youngman  <jay@gnu.org>
7856
7857         * find/find.c, find/testsuite/find.posix/sv-bug-12181.exp,
7858         find/testsuite/find.posix/sv-bug-12181.xo: Fixed SourceForge bug
7859         12181 (find -H symlink-to-dir reports 'Too many Symbolic links')
7860         and bug 12044 (find still hangs on dead NFS filesystems on
7861         Solaris)
7862
7863 2005-02-28  James Youngman  <jay@gnu.org>
7864
7865         * doc/find.texi: Typo: O_NOFOLLOW, not O_FOLLOW
7866
7867         * import-gnulib.sh:
7868         Suggestion from Martin Buchholz; unset CDPATH to prevent "cd" echoing
7869         the new directory.
7870
7871 2005-02-27  James Youngman  <jay@gnu.org>
7872
7873         * README: Indicate how the reader can verify the release.
7874
7875 2005-02-26  James Youngman  <jay@gnu.org>
7876
7877         * po/sk.po, po/sl.po, po/sr.po, po/sv.po, po/tr.po, po/vi.po,
7878         po/zh_CN.po, po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po,
7879         po/eo.po, po/es.po, po/et.po, po/fi.po, po/findutils.pot,
7880         po/fr.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
7881         po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po,
7882         po/pt_BR.po, po/ro.po, po/ru.po: Added new Vietnamese translation
7883
7884         * configure.in: Added new Vietnamese translation.
7885
7886 2005-02-25  James Youngman  <jay@gnu.org>
7887
7888         * po/ga.po: Updated Irish po file
7889
7890 2005-02-23  James Youngman  <jay@gnu.org>
7891
7892         * Makefile.am: Fix Savannah bug #12064 - 'make distclean' deletes
7893         regex.c but should not.
7894
7895         * find/testsuite/Makefile.am,
7896         find/testsuite/find.gnu/printf-h.exp,
7897         find/testsuite/find.gnu/printf-h.xo: Added test case for Savannah
7898         bug #12085 (-printf %h).
7899
7900         * NEWS, doc/find.texi, find/find.1, find/pred.c:
7901         %h now expands to '.' instead of nothing.
7902
7903 2005-02-22  James Youngman  <jay@gnu.org>
7904
7905         * find/find.c:
7906         Fixed Savannah bug #12099 (misinterpretation of system versions
7907         leading to possible incorrect disabling of O_NOFOLLOW).  Reported by
7908         Dmitry V. Levin.
7909
7910         * find/pred.c:
7911         For the %h format, don't bail out early as the format might contain
7912         something else too.
7913
7914 2005-02-21  James Youngman  <jay@gnu.org>
7915
7916         * find/find.c: Fixed accidental C99 dependency.
7917
7918 2005-02-20  James Youngman  <jay@gnu.org>
7919
7920         * po/be.po, po/ca.po, po/da.po, po/de.po, po/el.po, po/eo.po,
7921         po/es.po, po/et.po, po/fi.po, po/findutils.pot, po/fr.po,
7922         po/ga.po, po/gl.po, po/hr.po, po/hu.po, po/id.po, po/it.po,
7923         po/ja.po, po/ko.po, po/lg.po, po/ms.po, po/nl.po, po/pl.po,
7924         po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sr.po,
7925         po/sv.po, po/tr.po, po/zh_CN.po: Updated italian translation
7926
7927         * doc/find.texi: Corrected a typo.
7928
7929         * find/find.c:
7930         Read the mounted device list afer parsing the command line, so that
7931         for example "find --version" still works (in response to Savannah bug
7932         #12044).
7933
7934         * configure.in: We've moved on from findutils-4.2.18.
7935
7936 2005-02-19  James Youngman  <jay@gnu.org>
7937
7938         * NEWS: Corrected the summary of the "find -depth" bug.
7939
7940 2005-02-16  James Youngman  <jay@gnu.org>
7941
7942         * NEWS, configure.in: Prepared for release of 4.2.18.
7943
7944         * ChangeLog: Updated prior to release of 4.2.18.
7945
7946         * find/testsuite/Makefile.am:
7947         Distribute the test cases for the recent "find -depth" bug.
7948
7949         * find/testsuite/find.posix/depth1.exp, find/testsuite/find.posix/depth1.xo:
7950         Added test case for find -depth bug reported by Joseph S. Myers
7951
7952         * find/find.c:
7953         If -depth is in effect, processing of the subdirectories invalidates
7954         the information in 'state'.  Therefore once we get around to
7955         processing the predicates, restore the information that we keep in
7956         'state' and in 'stat_buf'.
7957
7958 2005-02-15  James Youngman  <jay@gnu.org>
7959
7960         * ChangeLog: Updated with recent changes
7961
7962         * find/find.1:
7963         Emphasise that -L causes find to recurse into subdirectories pointed
7964         to by symbolic links.
7965
7966         * find/find.1:
7967         Patch to find.1 from Aaron Hawley <Aaron.Hawley@uvm.edu>:
7968
7969         * Notes about -H actually apply to -L.
7970         * Said paragraph is duplicated two paragraphs later.
7971         * Typos: nno, ibmue, surrpounding
7972
7973 2005-02-15  Aaron Hawley  <Aaron.Hawley@uvm.edu>
7974
7975         * find/find.1: Notes about -H actually apply to -L.  Said
7976         paragraph is duplicated two paragraphs later.  Also typos: nno,
7977         ibmue, surrpounding
7978
7979 2005-02-13  James Youngman  <jay@gnu.org>
7980
7981         * find/find.1: Miscellaneous small clarifications and improvements.
7982
7983         * doc/find.texi: Added Info nodes and menus under "Changing the
7984         Current Working Directory" so that it doesn't generate such a huge
7985         Info page.
7986
7987         * find/find.c: Parenthesise #if defined(...).
7988
7989 2005-02-13  Dmitry V. Levin  <ldv@altlinux.org>
7990
7991         * find/find.c: remove test code snippet (time(NULL) was used to
7992         place a marker for spotting with strace(), but was not actually
7993         needed).
7994
7995         * find/find.c (safely_chdir_nofollow): must not fall back on
7996         safely_chdir_lstat() because that will expose it to race condition
7997         exploits, making it pointless.
7998
7999         * find/find.c (safely_chdir_lstat): Move
8000         complete_pending_execdirs() up into safely_chdir(), because we
8001         need to do that in either case.
8002
8003 2005-02-12  James Youngman  <jay@gnu.org>
8004
8005         * configure.in, doc/find.texi, find/defs.h, find/find.c,
8006         find/parser.c: Fix for Savannah bug #11879, that
8007         init_mounted_dev_list() causes find to hang on systems which are
8008         clients to dead NFS servers
8009
8010 2005-02-10  James Youngman  <jay@gnu.org>
8011
8012         * doc/find.texi: Talk about the problem where find will not work
8013         if you have a filesystem mounted from an unresponsive NFS server.
8014
8015 2005-02-09  James Youngman  <jay@gnu.org>
8016
8017         * find/find.1: Indicate that $TZ affects from printf-format
8018         results, and add extra cross-references in the SEE ALSO section.
8019
8020 2005-02-08  James Youngman  <jay@gnu.org>
8021
8022         * xargs/testsuite/Makefile.am: Distribute the .xe files also.
8023
8024         * Makefile.am: Check that we have the right number of .xe files in
8025         the distribution also.
8026
8027         * ChangeLog, NEWS, configure.in
8028         Preparing to release findutils-4.2.17
8029
8030 2005-02-07  James Youngman  <jay@gnu.org>
8031
8032         * find/testsuite/config/unix.exp: Re-sort the .xo file using the
8033         calling user's locale, because our 'pre-sorted' .so output file
8034         may not be sorted with the same collating order as 'sort' used to
8035         order the output of "find.  Bug spotted by Vin Shelton and Dimitry
8036         V. Levin.
8037
8038         * find/testsuite/Makefile.am:
8039         New test, find/testsuite/find.gnu/follow-arg-parent-symlink.exp.
8040
8041         * find/testsuite/find.gnu/follow-arg-parent-symlink.exp,
8042         find/testsuite/find.gnu/follow-arg-parent-symlink.xo, find/find.c:
8043         Fix for starting point /foo/bar/baz where bar is a symlink but baz
8044         is not - we should chdir into bar there even if it is a symbolic
8045         link
8046
8047 2005-02-07  James Youngman  <jay@gnu.org>
8048
8049         * find/testsuite/Makefile.am:
8050         New test, find/testsuite/find.gnu/follow-arg-parent-symlink.exp.
8051
8052         * find/testsuite/find.gnu/follow-arg-parent-symlink.exp,
8053         find/testsuite/find.gnu/follow-arg-parent-symlink.xo, find/find.c:
8054         Fix for starting point /foo/bar/baz where bar is a symlink but baz
8055         is not - we should chdir into bar there even if it is a symbolic
8056         link
8057
8058 2005-02-06  James Youngman  <jay@gnu.org>
8059
8060         * doc/find.texi:
8061         -size: Clarification - -size gives a result consistent with 'wc -c'
8062          for example.
8063
8064         * Makefile.am, find/testsuite/Makefile.am,
8065         find/testsuite/find.gnu/execdir-root-only.exp,
8066         find/testsuite/find.gnu/execdir-root-only.xo,
8067         locate/testsuite/Makefile.am, xargs/testsuite/Makefile.am:
8068         dist-hook: Ensure that we distribute all the .po files and all the
8069         testsuite files
8070
8071         * po/pl.po: Updated Polish translation from TP website
8072
8073 2005-02-05  Dmitry V. Levin  <ldv@altlinux.org>
8074
8075         * find/parser.c, find/pred.c: Additional tweaks for
8076         -execdir/-okdir actions.
8077
8078         * find/parser.c (new_insert_exec_ok): Disable ignore_readdir_race
8079         for -execdir/-okdir.
8080
8081         * find/pred.c (pred_execdir, pred_okdir): Use state.rel_pathname
8082         instead of basename(pathname).  Do not add "./" prefix for
8083         absolute pathnames.
8084
8085         * find/find.c (process_top_path): Treat "/" similarly to ".".
8086
8087         * xargs/testsuite/xargs.posix/savannah-11865.exp,
8088         xargs/testsuite/xargs.posix/savannah-11865.xo, xargs/xargs.c:
8089         Fixed Savannah bug #11866 (not resetting number of used chars in
8090         the command buffer) - reported by Dimitry V. Levin
8091
8092 2005-02-05  James Youngman  <jay@gnu.org>
8093
8094         * THANKS:
8095         Added thanks for Dimitry - has produced many patches, bugfixes and
8096         suggestions.
8097
8098         * find/pred.c:
8099         Fixed Savannah bug #11866: typo in pred_okdir() renders it useless
8100
8101         * find/pred.c:
8102         Savannah bug #11861: undefined symbol 'basename' on IRIX 5.3
8103
8104         * NEWS, configure.in, po/be.po, po/ca.po, po/el.po, po/eo.po,
8105         po/fi.po, po/ga.po, po/hr.po, po/hu.po, po/ja.po, po/lg.po,
8106         po/ms.po, po/ro.po, po/sl.po, po/sr.po, po/zh_CN.po: Added new
8107         translations
8108
8109         * ChangeLog: Updated from CVS prior to release of 4.2.16.
8110
8111         * po/ChangeLog: Updated from CVS.
8112
8113         * NEWS, configure.in: Preparing to release 4.2.16
8114
8115         * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot,
8116         po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po,
8117         po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sl.po, po/sv.po,
8118         po/tr.po: make update-po prior to 'make distcheck'
8119
8120         * po/fetch-po-files: This is the first version we actually used.
8121
8122         * find/find.c: process_top_path() fixed compilation warning.
8123
8124         * find/find.c: process_top_path(): avoid processing this item if
8125         we can't chdir to the basename of the named file.
8126
8127         * lib/Makefile.am: Always build forcefindlib.c
8128
8129         * locate/locate.c: Say 'base name' rather than 'basename' in comments
8130
8131         * find/pred.c, find/find.c: process_top_path(): Proper bugfix for
8132         correct handling of items at depth 0 (i.e. specified on the
8133         command line) - do an extra chdir to ensure that we're in the
8134         directory containing the item before calling process_path().
8135         Hnece also undo the previous 'quick fix' for the same problem
8136
8137         * doc/find.texi:
8138         -execdir no longer has to treat anything as special, even at depth 0.
8139
8140 2005-02-03  James Youngman  <jay@gnu.org>
8141
8142         * doc/find.texi, find/pred.c: When state.curdepth is 0, our
8143         working directory is not the directory containing the file we are
8144         processing.
8145
8146 2005-02-02  James Youngman  <jay@gnu.org>
8147
8148         * find/pred.c:
8149         To allow compilation on cygwin, use base_name(), not basename().
8150
8151         * po/tr.po: Updated Turkish translation from TP
8152
8153         * po/ro.po: Updated Romanian translation from TP
8154
8155         * po/da.po, po/et.po: Updated translations from MT project website
8156
8157 2005-02-01  James Youngman  <jay@gnu.org>
8158
8159         * ChangeLog: Updated from CVS log.
8160
8161 2005-01-31  James Youngman  <jay@gnu.org>
8162
8163         * find/find.c, lib/nextelem.c, lib/nextelem.h, locate/code.c,
8164         locate/frcode.c, locate/testsuite/config/unix.exp,
8165         xargs/testsuite/config/unix.exp, xargs/xargs.c: Updated/corrected
8166         the email address for David MacKenzie, one of the original authors
8167         of findutils
8168
8169         * doc/Makefile.am: The HTML version of the manual generated for
8170         the GNU project website has each node in a separate file, not each
8171         chapter in a separate file; adjust filenames accordingly
8172
8173         * find/parser.c, find/pred.c, lib/savedirinfo.c:
8174         Removed some unused variables (patch from Dmitry V. Levin)
8175
8176         * find/find.c:
8177         Patch from Dmitry V. Levin <ldv@altlinux.org>: Add subfs to the list
8178         of filesystems which are likely to be automounted.
8179
8180         * m4/findlib.m4: Corrected typo (pointed out by Dmitry V. Levin).
8181
8182         * find/testsuite/config/unix.exp,
8183         find/testsuite/find.gnu/name-period.xo,
8184         find/testsuite/find.gnu/posix-dflt.xo,
8185         find/testsuite/find.gnu/posix-h.xo,
8186         find/testsuite/find.gnu/posix-l.xo,
8187         find/testsuite/find.gnu/printf.exp,
8188         find/testsuite/find.gnu/printf.xo: Systems differ in the order in
8189         which filenames are returned by readdir.  Hence sort the output of
8190         'find' before comparing against the expected-output file.  We
8191         therefore also have the lines in the .xo files ready-sorted.
8192
8193         * po/ca.po: Updated from Translation Project
8194
8195         * po/ChangeLog: Updated from CVS logs.
8196
8197         * po/de.po, es.po, et.po, fr.po, gl.po, id.po, it.po, ko.po, nl.po,
8198         pl.po, pt_BR.po, ru.po, sk.po, sv.po, tr.po, da.po: Ran update-po
8199
8200         * po/be.po, ca.po, el.po, eo.po, fi.po, hr.po, hu.po, ja.po, lg.po,
8201         ms.po, ro.po, sl.po, sr.po, zh_CN.po: Added new translation files
8202         from the Translation Project web site
8203
8204         * po/da.po, de.po, es.po, et.po, fr.po, ga.po, gl.po, id.po, it.po,
8205         ko.po, nl.po, pl.po, pt_BR.po, ru.po, sk.po, sv.po, tr.po: Updated
8206         .po files from the Translation Project site
8207
8208 2005-01-30  James Youngman  <jay@gnu.org>
8209
8210         * doc/Makefile.am:
8211         Added rules for extra targets that we buld to update the web site.
8212
8213 2005-01-29  James Youngman  <jay@gnu.org>
8214
8215         * configure.in: No longer version 4.2.15 - we've changed the manual.
8216
8217         * doc/find.texi:
8218         Clarified the txt about adding extra tests with post-processing via
8219         xargs, and recommend -execdir instead for security reasons.
8220
8221         * doc/find.texi: Patch from Karl Berry:
8222         - more entries for the dir file
8223         - use @copying so the copyright ends up in the HTML etc. output.
8224           (This is the only really important change.)
8225         - put @contents after the title page, for conventional toc location.
8226         - use @ifnottex to wrap the Top node instead of @ifinfo, for the sake of
8227           HTML output, etc.
8228
8229         * NEWS, configure.in, po/da.po, po/de.po, po/es.po, po/et.po,
8230         po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po,
8231         po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po,
8232         po/sv.po, po/tr.po: Prepared to release findutils-4.2.15
8233
8234         * ChangeLog: Updated from CVS log.
8235
8236 2005-01-28  James Youngman  <jay@gnu.org>
8237
8238         * configure.in:
8239         Make --enable-d_type-optimization and --enable-d_type-optimisation
8240         both work.
8241
8242         * configure.in: Assume --enable-d_type-optimisation by default
8243
8244         * find/parser.c: Indicate which features are enabled/disabled
8245
8246         * locate/testsuite/config/unix.exp:
8247         Clean up the files left behind by the locate_textonly test
8248
8249 2005-01-27  James Youngman  <jay@gnu.org>
8250
8251         * doc/find.texi: Documented --regex.
8252
8253         * NEWS, locate/locate.1, locate/locate.c, locate/testsuite/Makefile.am, locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/regex1.exp:
8254         Implemented locate --regex - but needs documenting in Texinfo manual.
8255
8256 2005-01-25  James Youngman  <jay@gnu.org>
8257
8258         * configure.in: Bumped version no.
8259
8260         * doc/find.texi:
8261         Document --mmap and --stdio as being synonyms of -m and -s.
8262
8263         * locate/locate.1:
8264         Document --mmap and --stdio as synonyms of -m and -s.
8265
8266         * locate/locate.c:
8267         Document -m and -s (both no-ops) in the usage message.
8268
8269         * doc/find.texi, locate/locate.1: Document -m and -s as no-ops.
8270
8271         * ChangeLog: Updated for release of findutils-4.2.14.
8272
8273         * 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:
8274         Preparing to release findutils-4.2.14
8275
8276 2005-01-25  James Youngman  <jay@gnu.org>
8277
8278         * NEWS, configure.in, po/da.po, po/de.po, po/es.po, po/et.po,
8279         po/findutils.pot, po/fr.po, po/gl.po, po/id.po, po/it.po,
8280         po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po,
8281         po/sv.po, po/tr.po: Preparing to release findutils-4.2.14
8282
8283 2005-01-24  James Youngman  <jay@gnu.org>
8284
8285         * Makefile.am: Work around the fact that automake-1.7 actually
8286         works, and correctly distributes regex.c; hence dist-hook should
8287         only copy gnulib/lib/regex.c if this has not already been done.
8288
8289         * find/defs.h, find/find.c, find/pred.c,
8290         find/testsuite/Makefile.am,
8291         find/testsuite/find.gnu/printf-symlink.exp,
8292         find/testsuite/find.gnu/printf-symlink.xo,
8293         find/testsuite/find.gnu/xtype-symlink.exp,
8294         find/testsuite/find.gnu/xtype-symlink.xo: Fixes for -xtype and
8295         -printf %Y, which had been the wrong way around.
8296
8297         * NEWS: Avoid including the find.gnu subdirectory in the
8298         distributed file more than once
8299
8300         * locate/locate.c:
8301         Move the printing of the statistics into a new function, print_stats()
8302
8303         * find/testsuite/Makefile.am: Avoid including the find.gnu
8304         subdirectory in the distributed file more than once
8305
8306         * import-gnulib.sh:
8307         We need the regex module anyway, to allow compilation on Solaris
8308
8309 2005-01-23  James Youngman  <jay@gnu.org>
8310
8311         * configure.in:
8312         Invoke gl_INCLUDED_REGEX directly to ensure successful compilation on
8313         systems like Solaris, which lacks those functions in libc (fixes GNU
8314         Savannah bug #11710).
8315
8316         * locate/locate.1: -S is a synonym for --statistics
8317
8318         * doc/find.texi: Documented the new -H, -L and -P options.
8319
8320         * locate/locate.1, locate/locate.c: Implement options -L
8321         (default), -H and -P, which mean the same things as for find,
8322         except for the fact that the default is -L rather than -P
8323
8324         * find/find.1: Corrected definition of the exit status for -quit.
8325
8326         * find/find.c, find/pred.c: If DEBUG_STAT is set, issue a debug
8327         message when we call chdir() so that we can figure out what is
8328         actually being stat()ed
8329
8330         * locate/updatedb.sh:
8331         Removed spurious newline from help message (bug report from Karl
8332         Berry).
8333
8334         * po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot,
8335         po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po,
8336         po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po, po/tr.po,
8337         Makefile.am, NEWS, configure.in, find/defs.h, find/find.c,
8338         find/parser.c, find/pred.c, find/tree.c, find/util.c,
8339         import-gnulib.sh, lib/savedirinfo.c: Merged the d_type
8340         optimisation code; this is disabled by default, and can be enabled
8341         with 'configure --enable-d_type-optimisation'
8342
8343         * NEWS:
8344         Updated optimisation NEWS item to indicate the effect on runtime.
8345
8346 2005-01-22  James Youngman  <jay@gnu.org>
8347
8348         * NEWS, configure.in: Prepare for release of findutils-4.2.12
8349
8350         * ChangeLog: Brought up to date with recent changes.
8351
8352         * Makefile.am, import-gnulib.sh, po/Makefile.in.in, po/Makevars,
8353         po/da.po, po/de.po, po/es.po, po/et.po, po/findutils.pot,
8354         po/fr.po, po/gl.po, po/id.po, po/it.po, po/ko.po, po/nl.po,
8355         po/pl.po, po/pt_BR.po, po/remove-potcdate.sin, po/ru.po, po/sk.po,
8356         po/sv.po, po/tr.po: Switch to using the gnulib gettext module, to
8357         ensure that 'make distcheck' works with current xgettext,
8358         autoconf, etc.
8359
8360         * find/testsuite/config/unix.exp:
8361         Oops, we do need to clean up after all.
8362
8363 2005-01-21  James Youngman  <jay@gnu.org>
8364
8365         * xargs/testsuite/Makefile.am: Added name of missing input file.
8366
8367         * find/testsuite/Makefile.am:
8368         Distribute a few files that we had forgotten about
8369
8370         * xargs/testsuite/Makefile.am: Added some missing files.
8371
8372         * lib/Makefile.am: Also need buildcmd.h.
8373
8374         * xargs/testsuite/Makefile.am: Fixed a typo.
8375
8376         * NEWS: Indicate the d_type performance improvement
8377
8378 2005-01-18  James Youngman  <jay@gnu.org>
8379
8380         * lib/savedirinfo.h: Added on d_type_optimisation also
8381
8382         * lib/savedirinfo.c: Added on branch d_type_optimisation also.
8383
8384         * find/pred.c: Added assert that we actually know the file type by
8385         the time pred_type() is called
8386
8387         * find/find.c: Always initialise state.have_stat = false when
8388         starting to work with a new file
8389
8390 2005-01-17  James Youngman  <jay@gnu.org>
8391
8392         * ChangeLog: Brought up to date with recent changes.
8393
8394         * NEWS: Documented the changes so far.
8395
8396         * find/testsuite/find.gnu/exec-many-rtn-success.xo:
8397         Expected output for exec-many-rtn-success.exp
8398
8399         * find/find.1:
8400         Indicate that -quit still ensures that pending commands are invoked
8401
8402         * doc/find.texi:
8403         Indicate that -quit still causes partial command lines to be invoked,
8404         but there are some types of fatal error which leave such commands
8405         uninvoked.
8406
8407         * find/defs.h, find/find.c, find/pred.c, find/testsuite/Makefile.am, find/testsuite/config/unix.exp:
8408         Fixed savannah bug  #11625 Wrong return status for -exec ... \; when command fails; also execute any pending commands when doing -quit
8409
8410         * 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:
8411         Various test cases for succeeding and failing forms of -exec \; and -exec {} +
8412
8413         * find/pred.c: "-exec ... {} +" always returns "true".
8414
8415         * configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, find/tree.c, find/util.c:
8416         Implemented d_type optimisation but not working correctly, so currently disabled
8417
8418         * lib/savedirinfo.h, lib/savedirinfo.c:
8419         Initial implementation (temporarily disabled).
8420
8421         * lib/Makefile.am: Resolved merge conflict.
8422
8423         * lib/Makefile.am:
8424         Make sure nextelem.h is included in the list of sources.
8425
8426         * find/parser.c, lib/nextelem.c, lib/nextelem.h, locate/locate.c:
8427         Use prototypes for next_element() to make sure it is called correctly.
8428
8429 2005-01-16  James Youngman  <jay@gnu.org>
8430
8431         * find/find.c, find/pred.c:
8432         When completing incomplete multiple execs, use 'eval_tree' not 'predicates'
8433
8434         * lib/buildcmd.c:
8435         Oops, initialise state->cmd_initial_argv_chars to zero.
8436
8437         * find/find.1:
8438         Document the way that -execdir and -okdir will refuse to wqork if ">"
8439         is on $PATH.  Also document -okdir in the manpage.
8440
8441         * find/parser.c:
8442         -execdir and -okdir are insecure if $PATH includes the current
8443          directory, and so they refuse to work if the user has done that.
8444
8445         * find/pred.c:
8446         Oops; for -exec ... {} +, pass arguments to bc_push_arg() in the right
8447         order.   Problem spotted by Geoff Clare.
8448
8449         * TODO: Removed items which have now been done.
8450
8451         * lib/buildcmd.c: Tidied up formatting of arg list for bc_do_insert
8452
8453 2005-01-15  James Youngman  <jay@gnu.org>
8454
8455         * find/testsuite/find.gnu/printf.exp, find/testsuite/find.gnu/printf.xo:
8456         Added extra tests for more printf formats; patch by Andreas Metzler
8457
8458         * locate/locate.c:
8459         Ensure that the new long options have a relevang short option too.
8460         Also bring usage message into line with the options actually
8461         supported.  Thanks to Bas van Gompel for noticing this defect.
8462
8463         * locate/locate.1:
8464         Escape "-" in SYNOPSIS.  Thanks to Bas van Gompel for noticing this
8465         defect.
8466
8467         * ChangeLog: Fixed typos.
8468
8469         * doc/find.texi:
8470         Documented -execdir, and the "+" variants of -exec and -execdir.
8471
8472         * find/find.1: Documented -execdir.
8473
8474         * xargs/xargs.c:
8475         Updated to bring into line with bc_*() interface changes
8476
8477         * ChangeLog: Updated with recent changes.
8478
8479         * find/defs.h, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h:
8480         Implemented -execdir and -okdir
8481
8482         * find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c:
8483         First working version of -exec ...+
8484
8485 2005-01-09  James Youngman  <jay@gnu.org>
8486
8487         * find/defs.h, find/find.c, find/parser.c, find/pred.c, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c:
8488         Initial implementation of -exec ..{} +, but currently disabled since not yet working
8489
8490 2005-01-08  James Youngman  <jay@gnu.org>
8491
8492         * find/find.c: Fixed typo in comment.
8493
8494         * find/defs.h, find/find.c, find/parser.c, find/pred.c:
8495         We now understand but do not implement -execdir (a *BSD invention, and a very useful security enhancement) and -okdir (the obvious companion to it)
8496
8497         * locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c:
8498         The GNU coding standard requires a space between the function name and
8499         its parenthesised argument list.
8500
8501         * find/defs.h:
8502         Understand the -exec ... {} \+ construction (for multiple
8503         replacement).  No support yet.
8504
8505         * locate/locate.1:
8506         Indicate that empty elements in the dbpath are treated as synonyms for
8507         the default database.
8508
8509         * locate/locate.c:
8510         Support empty elements in the dbpath as synonyms for the default
8511         database.  These colons can be leading, trailing or in the middle of
8512         the string.  We no longer com,plain if the user does this.
8513
8514         * lib/nextelem.c:
8515         If curdir_ok is 0 and an element is empty, return "" instead of NULL
8516         so that the caller knows to keep calling us.
8517
8518         * find/find.c, find/pred.c, import-gnulib.sh, locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c:
8519         Savannah bug 11517: find, xargs, locate, etc. should not hide write failures; patch from Jim Meyering
8520
8521         * 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:
8522         changed .pot creation date
8523
8524         * THANKS, AUTHORS: Take into account the FSF copyright-assignments list
8525
8526         * doc/find.texi:
8527         If -quit is used, the exit value can be nonzero if errors have occurred.
8528
8529         * find/find.1:
8530         Removed incorrect comment about -H, -P and -follow in HISTORY.
8531
8532 2005-01-07  James Youngman  <jay@gnu.org>
8533
8534         * lib/Makefile.am, lib/buildcmd.c, lib/buildcmd.h, xargs/xargs.c:
8535         Refactored xargs to use an external library function from the new file buildcmd.c
8536
8537         * configure.in: no longer the same as the released 4.2.11 version
8538
8539 2005-01-06  James Youngman  <jay@gnu.org>
8540
8541         * xargs/testsuite/inputs/lines.xi, xargs/testsuite/xargs.posix/l2.exp, xargs/testsuite/Makefile.am:
8542         Tests for the -L option
8543
8544         * xargs/testsuite/config/unix.exp: When a test fails, show the diffs
8545
8546         * xargs/testsuite/xargs.posix/l2.exp, xargs/testsuite/xargs.posix/l2.xo:
8547         tests for the -l option
8548
8549         * xargs/testsuite/Makefile.am: Added extra test files
8550
8551         * xargs/testsuite/xargs.sysv/trace.exp, xargs/testsuite/xargs.sysv/trace.xe, xargs/testsuite/xargs.sysv/trace.xo:
8552         Added tests for the -t option
8553
8554         * 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:
8555         Use a blanks-only input file for cases where there is supposed to be no output
8556
8557         * xargs/testsuite/inputs/blank.xi: Initial version.
8558
8559         * xargs/xargs.1:
8560         Corrected a typo; also indicate that it's impossible to use xargs
8561         securely due to the race condition.
8562
8563 2005-01-05  James Youngman  <jay@gnu.org>
8564
8565         * find/parser.c:
8566         Fixed Savannah bug 11495: fallthrough from -printf format processing
8567         from 'n' case to 'd' case.
8568
8569 2005-01-03  James Youngman  <jay@gnu.org>
8570
8571         * doc/find.texi:
8572         Oops.  Had duplicated an entire section.  Fortunately this was after
8573         @bye, so there was no adverse effect.
8574
8575         * NEWS: locate -b.
8576
8577         * doc/find.texi, locate/locate.1: document locate -S
8578
8579         * configure.in, doc/find.texi, locate/locate.1, locate/locate.c:
8580         Support locate -b as a synonym for locate --basename
8581
8582         * 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:
8583         distcheck
8584
8585         * find/testsuite/config/unix.exp:
8586         Clean up (delete) find.out at at the end of the test.
8587
8588         * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c, find/pred.c:
8589         Implemented the -samefile test for find
8590
8591 2005-01-02  James Youngman  <jay@gnu.org>
8592
8593         * ChangeLog: Updated with recent changes.
8594
8595         * NEWS:
8596         Bas van Gompel: two-line patch to locate.c to make locate's -i and -w
8597         options work if -e is in use.
8598
8599         * THANKS: Added Bas van Gompel.
8600
8601         * locate/locate.c:
8602         Bas van Gompel: (visit_exists) when testing for the existence of the
8603         file, check the real filename [printname], not the case-converted
8604         filename [testname].  Really these argument names are badly chosen.
8605
8606         * find/find.1, doc/find.texi:
8607         Improved the documentation for -perm, with plenty of examples,
8608         following a comment by Dan Jacobson that the comment "Symbolic modes
8609         use mode 0 as a point of departure" is baffling and unhelpful.
8610
8611         * locate/locate.c:
8612         Suggestion and patch from Bas van Gompel: (new_locate): Fix display of
8613         negative compression ratios.
8614
8615 2004-12-31  James Youngman  <jay@gnu.org>
8616
8617         * NEWS: Brought up to date with recent changes
8618
8619         * doc/find.texi:
8620         Don't need to nest the "race conditions with..." sections so deeply.
8621
8622         * doc/find.texi: Corrected some spelling errors.
8623
8624         * doc/find.texi: Added new "Security Considerations" chapter.
8625
8626 2004-12-23  James Youngman  <jay@gnu.org>
8627
8628         * locate/locate.c:
8629         Applied bugfixes from Bas van Gompel <patch-findutils.buzz@bavag.tmfweb.nl>.
8630         (lc_strcpy): Zero-terminate result.
8631         (add_visitor): Update lastinspector.
8632         (visit_substring_match_casefold): fix off-by-one error.
8633         (new_locate): Move visit_exists down to improve performance.
8634         (new_locate): Don't fold case when getting stats.
8635
8636 2004-12-19  James Youngman  <jay@gnu.org>
8637
8638         * doc/find.texi:
8639         Indicate that "cd /; find tmp -wholename /tmp" will never match anything.
8640
8641         * doc/find.texi: Documented locate --statistics.
8642
8643         * locate/locate.1: Documented the --statistics option.
8644
8645         * locate/locate.c: Added support for the -S option.
8646
8647 2004-12-12  James Youngman  <jay@gnu.org>
8648
8649         * NEWS: Added a summary of the changes so far.
8650
8651         * find/tree.c: Made some of the error messages more self-explanatory
8652
8653         * find/pred.c: Print pointers with %p, not %x.
8654
8655         * find/find.c: Moved option data into struct options.
8656
8657         * find/find.1: clarifications
8658
8659         * find/testsuite/find.gnu/comma.exp:
8660         Limit the amount of searching with maxdepth.
8661
8662         * doc/find.texi: clearer description of how -prune works
8663
8664         * ChangeLog: Removed duplicate entry.
8665
8666         * configure.in, find/defs.h, find/find.c, find/fstype.c, find/parser.c, find/pred.c, find/tree.c, find/util.c:
8667         Separated ariables representing current state from variable representing option information
8668
8669 2004-12-11  James Youngman  <jay@gnu.org>
8670
8671         * find/parser.c: Readability improvement to the usage message.
8672
8673         * find/find.c: Oops.  Fixed unmatched #endif.
8674
8675         * find/testsuite/find.gnu/printf.exp, find/testsuite/find.gnu/printf.xo, THANKS, configure.in, find/testsuite/Makefile.am, find/testsuite/config/unix.exp:
8676         Fixed Savannah bug #11280
8677
8678         * find/find.c:
8679         Remember to set path_length and curdepth in process_top_path().
8680
8681 2004-12-07  James Youngman  <jay@gnu.org>
8682
8683         * find/fstype.c: Use xstat() not stat() to examine things.
8684
8685         * find/find.c: Explain why #ifdef EOVERFLOW.
8686
8687         * find/find.c: EOVERFLOW is not defined on UNICOS.
8688
8689         * NEWS: Corrected typo.
8690
8691 2004-12-06  James Youngman  <jay@gnu.org>
8692
8693         * ChangeLog: Brought up to date.
8694
8695         * NEWS, configure.in: releasing 4.2.10
8696
8697         * 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:
8698         distcheck
8699
8700         * ChangeLog: Updated prior to release of finsutils-4.2.10.
8701
8702         * import-gnulib.sh, find/fstype.c:
8703         Use gnulib's mountlist module instead of grokking it ourselves.
8704
8705         * configure.in:
8706         Removed all the out-of-date cruft for grokking getmntent().
8707
8708         * xargs/xargs.c:
8709         Added the -I and -L options; also -E takes an argument which is not optional.
8710
8711 2004-12-05  James Youngman  <jay@gnu.org>
8712
8713         * README, configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, find/tree.c:
8714         Allow debug output to be turned on or off by saying --enable-debug on the configure command line
8715
8716         * README:
8717         Removed disparaging (it is now, it probably wasn't then) comment about
8718         the production-readiness of Automake.
8719
8720         * README: Qualify remarks about POSIX compliance.
8721
8722         * NEWS, configure.in: Preparation for release 4.2.9
8723
8724         * 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:
8725         distcheck
8726
8727         * ChangeLog: Brought up to date.
8728
8729         * find/find.c:
8730         Avoid duplicate error message when we cannot chdir() into a subdirectory.
8731
8732         * THANKS: Added recent thankees.
8733
8734         * NEWS:
8735         Brought up to date with respect to the current set of fixed bugs.
8736
8737         * NEWS, xargs/xargs.1, xargs/xargs.c:
8738         Implemented POSIX options -L, -I and -E
8739
8740 2004-12-03  James Youngman  <jay@gnu.org>
8741
8742         * find/parser.c:
8743         -xdev is an option, not a test.   Fixes Savannah bug 11192.
8744
8745         * find/find.1, xargs/xargs.1:
8746         Escape dashes with a backslash (for fix Savannah bug 11189).
8747
8748 2004-11-27  James Youngman  <jay@gnu.org>
8749
8750         * find/find.c:
8751         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.
8752
8753         * find/find.1: "necessary" only has one "C".
8754
8755         * find/find.1:
8756         If stat() fails with ELOOP, we issue a diagnostic message.
8757
8758 2004-11-26  James Youngman  <jay@gnu.org>
8759
8760         * find/find.c: Removed some unused code.
8761
8762         * Makefile.am: Don't do anything in the 'intl' subdirectory
8763
8764         * find/find.c:
8765         Enhanced safely_chdir() to the point where the test suite passes, and report infinite loops in the directory hierarchy
8766
8767         * find/defs.h:
8768         belt and braces; ensure that SYMLINK_NEVER_DEREF has value zero
8769
8770         * find/find.1:
8771         Describe our strategy for detecting and reporting infinite loops
8772
8773 2004-11-24  James Youngman  <jay@gnu.org>
8774
8775         * doc/find.texi:
8776         Updated the discussion of th error messages for findutils-4.2.8.
8777
8778         * configure.in: Next version will be 4.2.9...
8779
8780         * find/find.c:
8781         Don't issue a warning if we notice the mounting of a filesystem that's
8782         likely just to be an automounter.
8783
8784         * doc/find.texi, find/find.1:
8785         Explain how rounding is performed for -atime and friends.
8786
8787         * xargs/xargs.c:
8788         Once we collect enough arguments (for the value specified by the -n
8789         option) to do an exec(), do it immediaely instead of waiting for the
8790         next one to arrive.  This fixes Savannah bug #7340.
8791
8792         * ChangeLog, configure.in, NEWS: Prepare to release 4.2.8.
8793
8794         * NEWS: Updates for 4.2.8.
8795
8796         * configure.in: check for  sys/types.h
8797
8798         * find/find.c:
8799         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.
8800
8801         * find/defs.h:
8802         Declarations of xmalloc() and friends belong in xalloc.h, not in defs.h
8803
8804         * find/parser.c: avoid signed/unsigned warning, and #include xalloc.h
8805
8806         * find/fstype.c:
8807         Changed to alloc get_mounted_devices() to compile on Solaris
8808
8809         * README-CVS:
8810         Automake requires GNU m4, so point out that the reader needs that.
8811
8812         * find/defs.h, find/find.c, find/fstype.c:
8813         When wd_sanity_check() fails, enumerate the mounted devices, rather than the mounted filesystem names
8814
8815         * NEWS: prepare for 4.2.8
8816
8817         * configure.in:
8818         Look for some Solaris headers which are used by get_mounted_devices()
8819
8820         * lib/Makefile.am: don't build savedirtypes yet
8821
8822         * 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:
8823         updated po files
8824
8825         * m4/nullsort.m4:
8826         Avoid suprious output of the test data when the tests fail.
8827
8828 2004-11-21  James Youngman  <jay@gnu.org>
8829
8830         * 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:
8831         Messages changed again
8832
8833         * ChangeLog, configure.in: Preparing to release 4.2.7.
8834
8835         * NEWS: Updated for release of 4.2.7.
8836
8837         * import-gnulib.sh: Also need canonicalize module.
8838
8839         * find/find.c:
8840         When checking to see if a filesystem has changed state, use an
8841         absolute pathname.
8842
8843         * configure.in:
8844         No need to pause to allow James to view his handiwork, it (allegedly)
8845         works now.
8846
8847         * configure.in:
8848         Oops.  Check for setlocale() to re-enable the i18n support which was
8849         accidentally disabled in 4.2.5.
8850
8851         * find/find.c:
8852         Check to see if the new directory is a transitioned mount point by
8853         using its ABSOLUTE name, if we can figure it out.
8854
8855         * doc/find.texi:
8856         Added guidance on some of the error messages.  Not the most common
8857         ones, but the ones where the user might most benefit from some handy
8858         hints or an explanation of what is going on.
8859
8860         * find/pred.c:
8861         Actually emit an error message if we fail to stat a symlink (for
8862         reasons other than nonexistence of the link and infinite loop).
8863
8864         * doc/texinfo.tex: Updated texinfo.tex
8865
8866         * NEWS, configure.in, find/find.c, find/fstype.c:
8867         Enable the 'Warning: filesystem XXX has recently been mounted' check on Solaris, which prevents it exiting fatally when traversing an automount mount point
8868
8869         * 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:
8870         messages changed again
8871
8872         * NEWS: Implemented xargs --arg-file.
8873
8874         * doc/find.texi, xargs/xargs.1, xargs/xargs.c, NEWS:
8875         Implemented xargs --arg-file
8876
8877         * find/find.c:
8878         Where a filesystem was recently (un)mounted, try togive its full name
8879
8880         * configure.in:
8881         Try to avoid requesting -lsun if we don't seem to need it (e.g. on
8882         UNICOS where it is not present and trying to link against it produces
8883         a warning).
8884
8885         * find/defs.h, lib/modetype.h: Guard against multiple inclusion
8886
8887         * find/fstype.c:
8888         We now need <mntent.h> even if we are not using getmntent() to figure
8889         out the type of a filesystem, because wd_sanity_check() needs to
8890         enumerate the system mount points.
8891
8892         * configure.in: Next release will be 4.2.7.
8893
8894         * find/fstype.c:
8895         get_mounted_filesystems() should use getmntent() if that function is
8896         present, rather than just if configure didn't find anything better for
8897         filesystem_type_uncached() to use than that.
8898
8899         * find/parser.c:
8900         If -delete is the only action on a file, don't assume the default
8901         -print action too.
8902
8903         * 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:
8904         Preparation to release findutils-4.2.6.
8905
8906         * find/Makefile.am, xargs/Makefile.am:
8907         Enable checking of support for --version and --help
8908
8909         * locate/Makefile.am:
8910         Con't check command-line options for frcode, code or bigram
8911
8912         * locate/code.c: Support --version and --help.
8913
8914         * ChangeLog: *** empty log message ***
8915
8916         * find/defs.h, find/find.c, find/fstype.c, lib/Makefile.am, lib/extendbuf.c, lib/extendbuf.h, NEWS:
8917         Avoid fatal error if automount mounts a filesystem on a directory because we chdir()ed into it
8918
8919         * configure.in: Next release will be 4.2.6.
8920
8921         * find/find.1:
8922         Indicate that the '-' flag does work for most fields.   Also provide
8923         an example of using the comma operator to traverse the filesystem just
8924         once but search for more than one thing.
8925
8926         * doc/find.texi: Indicate that the '-' flag does work for most fields.
8927
8928 2004-11-19  James Youngman <jay@gnu.org>
8929
8930         * configure.in: releaseing findutils-4.2.5
8931
8932         * find/testsuite/Makefile.am, locate/testsuite/Makefile.am, xargs/testsuite/Makefile.am:
8933         If a directory has no Makefile.am, omit it from the parent's DIST_SUBDIRS - automake-1.9 requires this
8934
8935         * 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:
8936         updated by make distcheck
8937
8938         * ChangeLog, NEWS: Updated for release 4.2.5.
8939
8940         * find/find.1, doc/find.texi:
8941         Tell the reader that format flags may not work as they expect.
8942
8943         * configure.in:
8944         Use the correct name for the macro gl_AC_TYPE_LONG_LONG (not
8945         jm_AC_TYPE_LONG_LONG).
8946
8947 2004-11-15  James Youngman <jay@gnu.org>
8948
8949         * import-gnulib.sh:
8950         Avoid test -e because not all systems are POSIX-compliant (bug
8951         #11005).  Also don't need regex module any more if we're not building
8952         in intl.
8953
8954         * Makefile.am, configure.in:
8955         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
8956
8957         * doc/find.texi:
8958         Use @ref not @xref for a reference at the beginning of a sentence.
8959
8960         * intl/Makefile.in:
8961         Make sure gnulib.lib is on the #include path (Savannah bug #11002)
8962
8963         * locate/locate.c:
8964         Use base_name instead of basename - fixes Savannah bug 11003.
8965
8966         * configure.in, find/defs.h, find/find.c, find/parser.c, find/pred.c, locate/bigram.c, locate/locate.c:
8967         Don't need banner to emphasise the location of the call to jy_SORTZ
8968
8969 2004-11-12  James Youngman <jay@gnu.org>
8970
8971         * 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:
8972         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]
8973
8974 2004-11-11  James Youngman <jay@gnu.org>
8975
8976         * NEWS, doc/find.texi, find/defs.h, find/find.1, find/find.c, find/parser.c:
8977         Implemented -H and -L options.
8978
8979         * find/util.c: Added in the -H and -L options on the usage message.
8980
8981 2004-11-10  James Youngman <jay@gnu.org>
8982
8983         * doc/find.texi, find/find.1, find/parser.c, find/pred.c:
8984         Implemented %M and %A+ format specifiers
8985
8986         * doc/find.texi, find/find.1, find/parser.c, find/pred.c:
8987         Documented the fact that only %d and %m format specifiers honour the various formatting flags
8988
8989         * xargs/xargs.c:
8990         Get the right number of bytes in a Kilobyte (hint: it's not 1048; that
8991         was a typo, honest :)
8992
8993         * po/pl.po: Applied Polish translations
8994
8995 2004-11-08  James Youngman <jay@gnu.org>
8996
8997         * 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:
8998         distcheck changed the po files again
8999
9000         * locate/Makefile.am:
9001         Make install-data-hook honour the setting of DESTDIR so that "make
9002         DESTDIR=/tmp/foo install" works and puts localstater in the right
9003         place.
9004
9005         * configure.in: We're now working on findutils-4.2.5.
9006
9007         * doc/find.texi, xargs/xargs.1:
9008         Point out that xargs -i only splits input items at newlines
9009
9010         * ChangeLog: Indicate that we released 4.2.4.
9011
9012         * ChangeLog: Updated for release 4.2.4
9013
9014         * NEWS, configure.in: Prepare for release of 4.2.4.
9015
9016         * NEWS: Brought up to date with latest changes.
9017
9018         * 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:
9019         Turn warning messages off by default if stdin is not a tty; allow these to be controlled explicitly by options -warn and -nowarn
9020
9021         * po/et.po, po/it.po: Updated translation files
9022
9023         * po/sk.po: New translation file
9024
9025         * po/fr.po, po/nl.po, po/tr.po: Updated translation files
9026
9027         * configure.in: Added Slovak (sk) language.
9028
9029         * xargs/xargs.c:
9030         Enforcing a lower limit on the value specified by -s makes the test
9031         suite fail.  Removed that lower limit.
9032
9033         * locate/Makefile.am: Oops, multilocate doesn't exist yet.
9034
9035         * NEWS: *** empty log message ***
9036
9037         * doc/find.texi, locate/updatedb.1, locate/updatedb.sh:
9038         Added option --findoptions to updatedb
9039
9040         * locate/Makefile.am, locate/locatedb.5, locate/updatedb.1, xargs/xargs.1:
9041         Fixed section numbers in manpage titles and cross-references
9042
9043         * NEWS, doc/find.texi, xargs/xargs.1, xargs/xargs.c:
9044         Increased the default argument length and improved POSIX compliance of the handling of out-of-range values for the -s option
9045
9046 2004-11-07  James Youngman <jay@gnu.org>
9047
9048         * m4/Makefile.am:
9049         Added in the extra files we need to distribute, nullsort.m4
9050         order-bad.bin order-good.bin
9051
9052         * doc/find.texi: Documented locate's --limit option
9053
9054         * locate/locate.1, locate/locate.c:
9055         Implmented --limit and corrected the implementation of the -i option.
9056
9057 2004-11-06  James Youngman <jay@gnu.org>
9058
9059         * NEWS, doc/find.texi, locate/locate.1:
9060         Documented --wholename and --basename and updated the NEWS file
9061
9062         * README-CVS:
9063         Give the autogen commands in a form that you can usefully cut and paste into a shell
9064
9065         * NEWS: Options --null and --count) for locate
9066
9067         * lib/nextelem.c:
9068         Don't return '.' for an empty path element, because the path we are splitting may not be intended to contain directories
9069
9070         * configure.in: we're working on findutils-4.2.4 now
9071
9072         * locate/Makefile.am: Substitute @SORT_SUPPORTS_Z@
9073
9074         * doc/find.texi:
9075         Documented new locate option --null and newline handling
9076
9077         * locate/locate.1, locate/locate.c:
9078         New locate options --null, --wholename, --basename, --count
9079
9080         * locate/frcode.c, locate/updatedb.1, locate/updatedb.sh:
9081         correctly handle newlines in the file names
9082
9083         * configure.in: Determine if sort -z works
9084
9085         * m4/nullsort.m4, m4/order-bad.bin, m4/order-good.bin:
9086         jy_SORTZ: a macro to determine if the system has a sort command with a working -z option
9087
9088 2004-11-01  James Youngman <jay@gnu.org>
9089
9090         * NEWS: Fixed "find -printf '%H\n'".
9091
9092         * find/find.c:
9093         Avoid segfault if -printf %H is used where the matched file was the default, unspecified starting point, the current directory
9094
9095 2004-10-31  James Youngman <jay@gnu.org>
9096
9097         * find/find.1, find/parser.c: NetBSD also supports -d.
9098
9099         * find/find.1, doc/find.texi:
9100         Documented the behaviour of -daystart and -follow in more detail
9101
9102         * find/parser.c: Corrected the usage message.
9103
9104         * find/parser.c:
9105         When deciding whether to issue a warning about options following
9106         non-options, ignore any options whose position affects the tests
9107         (i.e. -daystart and -follow).
9108
9109         * find/parser.c: -daystart is a positional option like -follow.
9110
9111         * find/parser.c:
9112         Issue a warning message if an option is specified after a test or an
9113         action (because the user might have believed that the behaviour of the
9114         option is in some way conditional on the preceding tests).
9115
9116         * locate/updatedb.sh:
9117         Oops; removed some test code that I shouldn't have checked in.
9118
9119         * locate/updatedb.sh:
9120         Indicate that the old locate database format will shortly be unsupported.
9121
9122         * doc/find.texi:
9123         Use @direntry instead of hard-coding START-INFO-DIR-ENTRY inside @ifinfo.
9124
9125         * locate/updatedb.1: Updated default location of locatedb file.
9126
9127         * README-alpha:
9128         Updated to give correct FTP location and to not talk about "test"
9129         versions of automake, which are no longer required.
9130
9131         * locate/updatedb.sh:
9132         Incorporated the default list of filesystems to avoid from the Debian
9133         package.  Also added /afs and /sfs to the default pruned paths.
9134
9135         * configure.in: Released findutils 4.2.3
9136
9137         * 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:
9138         did make distcheck, which updates these files
9139
9140         * find/defs.h, find/fstype.c:
9141         Use const qualifier in arguments to filesystem_type() to allow callers with const variables to use them
9142
9143         * ChangeLog: Updated.
9144
9145         * NEWS: Added new news.
9146
9147         * find/find.c:
9148         Extra diagnositcs for the case where we have the error "%s changed
9149         during execution of %s" - that is when we chdir back to the parent
9150         directory only to find that it has changed.
9151
9152 2004-10-30  James Youngman <jay@gnu.org>
9153
9154         * .cvsignore, NEWS, doc/find.texi, find/defs.h, find/find.1, find/parser.c, find/pred.c:
9155         Implemented the -quit action
9156
9157         * NEWS, doc/find.texi, find/find.1, find/parser.c, find/pred.c:
9158         Refactored time handling routines in preparation for support of absolute timestamp comparison predicates
9159
9160         * locate/locate.c:
9161         Applied Savannah patch #2952 ("getline off-by-one bugfix").
9162
9163         * NEWS, doc/find.texi, find/defs.h, find/find.1, find/parser.c, find/pred.c:
9164         Added -delete action (Savannah patch #3454 with additions)
9165
9166         * locate/locate.c:
9167         Applied Savannah patch #2692 (allowing get_short to process negative integers).
9168
9169         * find/find.c:
9170         If we are iossuing an error message because $FIND_BLOCK_SIZE is set,
9171         ignore the setting of errno.
9172
9173         * find/parser.c: More fixes for pedantic compiler warnings
9174
9175         * NEWS, find/parser.c, find/tree.c: Eliminated some compiler warnings
9176
9177         * find/find.c, find/parser.c, find/pred.c:
9178         Various fixes for compiler warninga sbout unreachable code or unused function arguments
9179
9180         * intl/plural.y: Silence compiler warning about unused argument.
9181
9182         * locate/testsuite/Makefile.am:
9183         Subdirectory "inputs" does not exist, so remove it from DIST_SUBDIRS.
9184
9185         * locate/locate.c:
9186         Corrected the explanation of why we have to use no parentheses around
9187         the String argument to the N_ macro in its expansion.
9188
9189         * configure.in: Nextr release is 4.2.3.
9190
9191         * configure.in: IOndicate this is no longer the pristine release.
9192
9193         * NEWS:
9194         Oops, comments for release 4.2.0 should have said 20480 bytes, not 2480.
9195
9196         * lib/listfile.c:
9197         The -ls predicate should not truncate usernames.  Fixes Savannah bug #10800.
9198
9199         * find/fstype.c, locate/locate.c:
9200         Fixes for Savannah bug #3727 (Intel icc compilation errors).
9201
9202 2004-10-25  James Youngman <jay@gnu.org>
9203
9204         * doc/find.texi, find/find.1, find/parser.c, find/pred.c:
9205         Support -printf %D, which prints the device number of the containing filesystem
9206
9207         * locate/updatedb.sh:
9208         Avoid confusion between James Woods and James Youngman, by using the
9209         disambiguating surname.
9210
9211         * find/parser.c: Use RE_ICASE instead of re->translate.
9212
9213         * configure.in, find/parser.c, find/pred.c, xargs/xargs.c:
9214         No need to #define _GNU_SOURCE if we use gl_INIT.
9215
9216 2004-10-24  James Youngman <jay@gnu.org>
9217
9218         * ChangeLog: Prepared to release findutils-4.2.2.
9219
9220         * 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:
9221         Updates prior to release of 4.2.2
9222
9223         * NEWS: Updated with news for findutils-4.2.2.
9224
9225         * 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:
9226         Corrected typo in the address of the FSF office
9227
9228         * lib/strspn.c: Updated FSF address.
9229
9230         * m4/.cvsignore: 'cvs status' should ignore Makefile.in
9231
9232         * 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:
9233         Use gnulib-tool --import to import the gnulib code, rather than the odd way we were doing it before
9234
9235         * 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:
9236         Work round an apparent compiler bug in HP-UX 11.23 for
9237         ia64
9238
9239         * locate/locate.c:
9240         Work around what appears to be a C compiler bug in HP-UX 11.23 for
9241         ia64.
9242
9243         * INSTALL, depcomp, install-sh, missing, mkinstalldirs:
9244         Updated from automake
9245
9246         * locate/bigram.c, locate/code.c, locate/frcode.c, locate/locate.c, xargs/xargs.c, find/find.c:
9247         Avoid use of exit() within main, to silence warnings about unreachable code
9248
9249 2004-10-22  James Youngman  <jay@gnu.org>
9250
9251         * doc/find.texi: Syntax corrections.
9252
9253         * doc/find.texi: Indicate that "-exec {}+" is not yet supported.
9254
9255         * find/find.1: Indicate that "{}+" is not yet supported.
9256
9257         * find/testsuite/find.gnu/name-period.xo, find/testsuite/find.gnu/name-period.exp, find/find.1, doc/find.texi:
9258         The -name predicate must allow '*' to match '.foo' as demanded by IEEE
9259         Std 1003.2-1992 Interpretation #126.
9260
9261         * find/pred.c:
9262         Remove use of FNM_PERIOD for -name as demanded by IEEE Std 1003.2-1992
9263         Interpretation #126
9264
9265         * find/parser.c: Fix for compilation (on AIX 4.3) with GCC 2.x.
9266
9267         * xargs/xargs.c:
9268         Changed the erorr message issued when there is an unmatched quote to
9269         point out that the user might have wanted to use the -0 option instead.
9270
9271 2004-10-17  James Youngman  <jay@gnu.org>
9272
9273         * configure.in:
9274         Define intmax_t if it is not already defined - allows parser.c to compile on AIX 4.3
9275
9276         * configure.in:
9277         Adjust version number to indicate that this s/w has moved on since the
9278         4.2.1 release.
9279
9280         * configure.in: preparing to release 4.2.1
9281
9282         * ChangeLog: updated with current changes
9283
9284         * README-CVS: Updated to go with newer version of gnulib.
9285
9286         * 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:
9287         preparation for release
9288
9289         * NEWS: Mention the changes to "trap".
9290
9291         * NEWS: Brought up to date.
9292
9293         * import-gnulib.sh:
9294         Use xalloc-die module from gnulib, since that has now been split out
9295
9296         * find/parser.c:
9297         Check fnmatch() when other predicates that rely on fnmatch() are used.
9298
9299         * find/parser.c: bug #10701: find needs fnmatch sanitycheck on startup
9300
9301 2004-10-16  James Youngman <jay@gnu.org>
9302
9303         * import-gnulib.sh:
9304         Switch to requirement for GNU fnmatch because it supports FNM_CASEFOLD.
9305
9306         * locate/updatedb.sh:
9307         Bug #9465: use of signal numbers for 'trap' is deprecated.  Should use
9308         names instead.  See
9309         http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html,
9310         which indicates that support for signal numbers is optional, while
9311         support for signal names is mandatory.
9312
9313         * configure.in:
9314         Indicate that this is the CVS version (once again) now that findutils
9315         4.2.0 has been released.
9316
9317         * 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:
9318         findutils 4.1.20 check-in for tagging
9319
9320 2004-10-02  James Youngman <jay@gnu.org>
9321
9322         * po/Makefile.in.in:
9323         Search in $(top_srcdir) for mkinstalldirs, since that's where we keep it.
9324
9325         * NEWS: Brought up to date, organised more clearly, and tidied up.
9326
9327         * NEWS: brought up to date with recent changes
9328
9329         * locate/testsuite/config/unix.exp, locate/testsuite/locate.gnu/ignore_case1.exp, locate/testsuite/locate.gnu/ignore_case3.exp, locate/updatedb.sh:
9330         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
9331
9332         * find/pred.c:
9333         Fixed usage of human_readable() in '%k' format specifier to fix a bug
9334         reported by Dmitry V. Levin (arguments to human_readable() were
9335         specified in the wrong order, which resulted in a floating-point
9336         error).
9337
9338 2004-08-08  James Youngman <jay@gnu.org>
9339
9340         * locate/updatedb.sh:
9341         cd to / to avoid inability to examine the current directory if we're
9342         invoked via cron (and hence in root's home directory for example).
9343
9344         * doc/find.texi, find/find.1:
9345         Deprecate -path and -ipath in favour of -wholename and -iwholename
9346
9347         * find/parser.c:
9348         As per RMS's suggestion, deprecate -path and -ipath in favour of
9349         -wholename and -iwholename.
9350
9351         * locate/locate.c:
9352         Fixed Savannah bug #9923, in which get_short() returns large positive
9353         ints when it should be returning negative shorts.
9354
9355         * xargs/xargs.1:
9356         Applied documentation improvements suggested by Dan Jacobson
9357         <jidanni@jidanni.org>.
9358
9359         * xargs/xargs.c:
9360         Don't check size_of_environment against arg_max since that causes the
9361         test suite to fail.
9362
9363         * xargs/xargs.1, xargs/xargs.c: Better documentation for the -i option
9364
9365 2004-05-03  James Youngman <jay@gnu.org>
9366
9367         * find/find.1:
9368         document the various suffixes for -size and also the new
9369         option -ignore_readdir_race
9370
9371         * locate/locate.c:
9372         Fixes Savannah bug #8623 (failure to check consistency of data
9373         read from locate database)
9374
9375         * locate/updatedb.sh:
9376         Resolves Savannah bug 4380, that updatedb generates an empty
9377         database if one of the commands fails
9378
9379         * NEWS: Talk about -ignore_readdir_race
9380
9381         * doc/find.texi:
9382         Documented -ignore_readdir_race and -noignore_readdir_race
9383
9384         * find/find.c:
9385         -ignore_readdir_race should have no effect if the reason for the
9386          failure of stat(2) was anything other than ENOENT.
9387
9388         * find/defs.h, find/find.c, find/parser.c:
9389         Fixed Savannah bug 4391 (readdir race condition leading to
9390         spurious error messages)
9391
9392 2004-04-24  James Youngman <jay@gnu.org>
9393
9394         * README-CVS: Corrected the instructions for getting gnulib via CVS.
9395
9396 2004-04-13  James Youngman <jay@gnu.org>
9397
9398         * doc/find.texi:
9399         Actioned Savannah bug #8558 (find complains when it tries to recurse
9400         into directories that it had removed).
9401
9402 2004-03-13  James Youngman <jay@gnu.org>
9403
9404         * ChangeLog: Updated from checkin comments.
9405
9406         * find/find.c:
9407         Oops, there is no access to the predicate name table if DEBUG is
9408         not #defined.
9409
9410         * find/parser.c:
9411         Detect arithmetic overflow (poorly) in insert_time(), which diagnoses
9412         the failure to handle large arguments to -mtime.  The existing code
9413         does careful computation and then bungs the value into a time_t, which
9414         ruins all our careful effort.  The new code is not a great
9415         improvement.  We just check the result to detect overflow, rather than
9416         actually avoiding the overflow.
9417
9418         * find/find.c:
9419         Fixed Debian bug #185202 by checking for any trailing predicates after
9420         the top-level invocation of get_expr() has done its work.
9421
9422         * locate/locate.1, xargs/xargs.1:
9423         Fixed Debian bug 175372, inappropriate 'L' suffixes on manual
9424         page section indicators
9425
9426         * find/find.1:
9427         Removed "L" suffixes from manual page section indicators, to fix
9428         Debian bug 175372.
9429
9430         * debian/updatedb.conf:
9431         Updated with list of filesystems from current Debian release.  This
9432         includes devfs, for example.
9433
9434         * xargs/xargs.1:
9435         Modified documentation of "-s" option to take into account the fix for
9436         Debian bug #176201.
9437
9438         * xargs/xargs.c:
9439         Fixed Debian bug #176201, "xargs environment size limited to 20k", by
9440         reading a patch offered by Bob Proulx and implementing something
9441         substantially similar myself.
9442
9443 2004-01-03  James Youngman  <jay@gnu.org>
9444
9445         * xargs/xargs.c:
9446         Indicate that prep_child_for_exec() fixes Savannah bug #3992.
9447
9448         * xargs/xargs.c:
9449         Attach the stdin of xargs' child process to /dev/null so that if it
9450         tries to read from its stdin it doesn't consume any of the list of
9451         files that xargs is trying to use.
9452
9453         * find/find.1:
9454         Documented that the -regex option follows Gnulib's re_match()
9455         implementation.
9456
9457         * NEWS, locate/locate.c: Applied Savannah patch 2108
9458
9459         * xargs/xargs.c: Applied Savannah patch 1500
9460
9461         * find/find.1, doc/find.texi:
9462         Improved the documentation for the %k and %b format specifiers to
9463         -printf (Savannah bug #5034).  Also pointed out that this handling is
9464         different to that used by the "b" and "k" suffixes with "-size".
9465
9466         * find/find.1: Improved the documentation for %k (Savannah bug #5034).
9467
9468         * find/find.1:
9469         Improved the documentation for -print0 in the manpage, fixing Debian
9470         bug 111143.
9471
9472         * README-CVS, find/pred.c, lib/listfile.c:
9473         Brought up-to-date with change in gnulib's human.c - we no longer
9474         use human_readable_inexact(), because it is no longer provided.
9475
9476 2003-08-08  James Youngman  <jay@gnu.org>
9477
9478         * find/find.1:
9479         Documented the fact that -printf also supports the '\0' escape code.
9480         Added "STANDARDS CONFORMANCE" section.
9481
9482 2003-08-02  James Youngman  <jay@gnu.org>
9483
9484         * find/find.1:
9485         Explain that braces are not special when performing filename matching
9486         with -name.
9487
9488         * find/find.1:
9489         added example of the use of -exec to the EXAMPLES section
9490
9491         * find/fstype.c, locate/locate.c:
9492         Savannah bug #4295 - implicit declarations of ctype.h functions
9493
9494         * locate/locate.c:
9495         Savannah bug #4279 - missing newline on locate help message
9496
9497         * find/find.1, xargs/xargs.1:
9498         Improved discussion of the -print0 option of find and the -0 option of xargs
9499
9500 2003-06-26  James Youngman  <jay@gnu.org>
9501
9502         * import-gnulib.sh:
9503         Remove reference to nonexistent module "basename" ("dirname" exists
9504         and we already use that).
9505
9506 2003-06-21  James Youngman  <jay@gnu.org>
9507
9508         * doc/find.texi:
9509         Indicate that xargs stops immediately if a command exits with status 255
9510
9511         * xargs/xargs.1:
9512         Document the fact that xargs exits immediately with an error message
9513         if the command it executes exits with a status of 255.
9514
9515 2003-06-18  James Youngman  <jay@gnu.org>
9516
9517         * find/find.1:
9518         Indicate that -fls and friends always create their output file
9519
9520 2003-06-16  James Youngman  <jay@gnu.org>
9521
9522         * ChangeLog, find/find.1, locate/locate.1, locate/locatedb.5, locate/updatedb.1, xargs/xargs.1:
9523         Added BUGS section to manual pages.   This section includes information about known bugs and how to report new bugs.
9524
9525         * AUTHORS: Identify the current maintainer.
9526
9527         * TODO: Removed the TODO items which have now been done.
9528
9529         * THANKS: Added Bruno Haible and Bob Proulx.
9530
9531         * xargs/xargs.c: xargs/xargs.c (DO_MULTIBYTE): New macro.
9532         (mbstrstr): New function.
9533         (do_insert): Use it instead of strstr.
9534
9535         * config.guess, config.sub:
9536         Use config.guess and config.sub from automake
9537
9538         * find/fstype.c:
9539         Bruno Haible: (fstype_to_string) Don't define this function if
9540         HAVE_F_FSTYPENAME_IN_STATFS is defined.
9541
9542         * configure.in:
9543         Bruno Haible: Prefer the 4.4BSD API (if present) to the 4.3BSD API,
9544         because some 4.4BSD systems have <mntent.h> but no /etc/mtab file.
9545
9546         * doc/find.texi, find/find.1:
9547         Applied patch 1498 (documenting the backslash escape sequence)
9548
9549         * locate/updatedb.sh: Applied (my own version of) Savannah patch 1601.
9550
9551         * doc/find.texi:
9552         Applied Savannah patch #1547 (document the fact that printf
9553         field-width specifiers are supported).
9554
9555         * xargs/xargs.c:
9556         Applied Savannah patch #1499 (adds final newline to usage message).
9557
9558 2003-06-14  James Youngman  <jay@gnu.org>
9559
9560         * NEWS, configure.in:
9561         Updated version number to 4.2.0-CVS [not ready for release yet]
9562
9563         * 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
9564         also need stpcpy (e.g. for Solaris)
9565
9566         * intl/dcigettext.c:
9567         plural_lookup: don't use a variable called "index", because we may
9568         have done "#define strchr index", in which case using a variable
9569         called index will prevent us calling strchr(p, ch) in the same scope.
9570
9571         * 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:
9572         Updated copyright years and the address of the FSF
9573
9574         * aclocal.m4, config.h.in, configure:
9575         Removed files that are generated from other files (e.g. configure)
9576
9577         * NEWS: Updated NEWS file for 4.1.20.
9578
9579         * 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:
9580         Updates to the i18n files to ensure that 'make dist' succeeds
9581
9582         * lib/posix/.cvsignore, lib/posix/Makefile.am,
9583         lib/posix/Makefile.in, lib/posix/regex.h, lib/strftime.c,
9584         lib/strncasecmp.c, lib/strspn.c, lib/strstr.c, lib/strtol.c,
9585         lib/strtoul.c, lib/strtoull.c, lib/strtoumax.c, lib/wait.h,
9586         lib/waitpid.c, lib/xalloc.h, lib/xgetcwd.c, lib/xmalloc.c,
9587         lib/xstat.in, lib/xstrdup.c, lib/xstrtol.c, lib/xstrtol.h,
9588         lib/xstrtoul.c, lib/xstrtoul.h, lib/xstrtoumax.c, lib/yesno.c,
9589         locate/Makefile.am, locate/Makefile.in, locate/locate.c,
9590         locate/testsuite/Makefile.in, m4/.cvsignore, m4/ChangeLog,
9591         m4/Makefile.am, m4/Makefile.am.in, m4/Makefile.in, m4/README,
9592         m4/afs.m4, m4/assert.m4, m4/c-bs-a.m4, m4/check-decl.m4,
9593         m4/codeset.m4, m4/d-ino.m4, m4/d-type.m4, m4/error.m4,
9594         m4/fnmatch.m4, m4/fnmatchcase.m4, m4/fstypename.m4, m4/getline.m4,
9595         m4/gettext.m4, m4/glibc.m4, m4/glibc21.m4, m4/iconv.m4,
9596         m4/inttypes_h.m4, m4/isc-posix.m4, m4/jm-glibc-io.m4,
9597         m4/jm-macros.m4, m4/jm-mktime.m4, m4/lcmessage.m4, m4/libintl.m4,
9598         m4/link-follow.m4, m4/ls-mntd-fs.m4, m4/lstat-slash.m4,
9599         m4/lstat.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/memcmp.m4,
9600         m4/prereq.m4, m4/progtest.m4, m4/readdir.m4, m4/realloc.m4,
9601         m4/regex.m4, m4/st_dm_mode.m4, m4/st_mtim.m4, m4/stat.m4,
9602         m4/strerror_r.m4, m4/strftime.m4, m4/timespec.m4, m4/uintmax_t.m4,
9603         m4/ulonglong.m4, m4/xstrtoumax.m4, xargs/Makefile.am,
9604         xargs/Makefile.in, xargs/testsuite/Makefile.in,
9605         find/testsuite/Makefile.in, lib/.cvsignore, lib/Makefile.am,
9606         lib/Makefile.in, lib/alloca.c, lib/ansi2knr.1, lib/ansi2knr.c,
9607         lib/argmatch.c, lib/argmatch.h, lib/basename.c, lib/basename.h,
9608         lib/dirname.c, lib/dirname.h, lib/error.c, lib/error.h,
9609         lib/fileblocks.c, lib/filemode.c, lib/filemode.h, lib/fnmatch.c,
9610         lib/fnmatch.h, lib/getline.c, lib/getline.h, lib/getopt.c,
9611         lib/getopt.h, lib/getopt1.c, lib/human.c, lib/human.h,
9612         lib/idcache.c, lib/malloc.c, lib/memcmp.c, lib/memcpy.c,
9613         lib/memset.c, lib/mktime.c, lib/modechange.c, lib/modechange.h,
9614         lib/pathmax.h, lib/quotearg.c, lib/quotearg.h, lib/realloc.c,
9615         lib/regex.c, lib/regex.h, lib/rpmatch.c, lib/savedir.c,
9616         lib/savedir.h, lib/stpcpy.c, lib/strcasecmp.c, lib/strdup.c,
9617         find/Makefile.am, find/Makefile.in, find/find.c, find/pred.c:
9618         Updated to work with current version of gnulib
9619
9620         * import-gnulib.sh: New file.
9621
9622         * config.h.in, configure, configure.in, doc/Makefile.in, import-gnulib.sh:
9623         Updated to work with current version of gnulib
9624
9625         * README-CVS: New file.
9626
9627         * Makefile.am, Makefile.in, README-CVS, aclocal.m4:
9628         Updated to work with current version of gnulib
9629
9630 2003-05-26  James Youngman <jay@gnu.org>
9631
9632         * po/pl.po, pt_BR.po, ru.po, sv.po, tr.po, da.po, de.po, es.po,
9633         et.po, findutils.pot, fr.po, gl.po, id.po, it.po, ko.po, nl.po:
9634         Changes to allow compilation on non-GNU systems (i.e. for the
9635         macros that gnulib decides to #define to be effective)
9636
9637 2003-05-24  James Youngman <jay@gnu.org>
9638
9639         * po/da.po, de.po, es.po, et.po, findutils.pot, fr.po, gl.po,
9640         id.po, it.po, ko.po, nl.po, pl.po, pt_BR.po, ru.po, sv.po, tr.po:
9641         also need stpcpy (e.g. for Solaris)
9642
9643         * po/POTFILES.in, da.po, de.po, es.po, et.po, findutils.pot, fr.po,
9644         gl.po, id.po, it.po, ko.po, nl.po, pl.po, pt_BR.po, ru.po, sv.po,
9645         tr.po: Updates to the i18n files to ensure that 'make dist'
9646         succeeds
9647
9648 2001-06-09  Kevin Dalley  <kevin@seti.org>
9649
9650         * intl/plural.c:
9651         Changes the location of bison.simple after running bison on local
9652         machine
9653
9654         * ChangeLog: *** empty log message ***
9655
9656         * Makefile.in, aclocal.m4, config.h.in, configure,
9657         doc/Makefile.in, find/Makefile.in, find/testsuite/Makefile.in,
9658         lib/Makefile.in, lib/posix/Makefile.in, locate/Makefile.in,
9659         locate/testsuite/Makefile.in, m4/Makefile.in, xargs/Makefile.in,
9660         xargs/testsuite/Makefile.in: Updates mostly from gettext-0.10.38
9661
9662         * ABOUT-NLS: * ABOUT-NLS: updated from gettext-0.10.38.
9663
9664         * configure.in: * configure.in: add tr to ALL_LINGUAS.
9665
9666         * intl/config.charset, intl/dcigettext.c, intl/dcngettext.c,
9667         intl/dngettext.c, intl/libgnuintl.h, intl/localcharset.c,
9668         intl/locale.alias, intl/ngettext.c, intl/plural.y,
9669         intl/ref-add.sin, intl/ref-del.sin: updated from gettext-0.10.38
9670
9671         * intl/cat-compat.c, intl/linux-msg.sed, intl/po2tbl.sed.in,
9672         intl/xopen-msg.sed, m4/ChangeLog: *** empty log message ***
9673
9674         * m4/jm-macros.m4:
9675         * jm-macros.m4 (jm_MACROS): remove jm_ICONV, which is replaced by
9676         AM_ICONV, which is imported from gettext-0.10.38.  removed
9677         jm_GLIBC21, which is required in AM_GNU_GETTEXT, which is
9678         imported from gettext-0.10.38.
9679
9680         * po/stamp-cat-id:      * stamp-cat-id: Remove file.
9681
9682         * po/Makefile.in.in:    * Makefile.in.in: Upgrade to gettext-0.10.38.
9683
9684         * po/ChangeLog: * cat-id-tbl.c: Remove file.
9685
9686         * po/de.po, po/es.po, po/et.po, po/fr.po:
9687         * fr.po, et.po, es.po, de.po: updated translations to
9688         findutils-4.1.7.
9689
9690         * po/tr.po: * tr.po:  New Turkish translation.
9691
9692         * m4/ChangeLog: *** empty log message ***
9693
9694         * intl/dgettext.c, intl/explodename.c, intl/finddomain.c,
9695         intl/gettext.c, intl/gettext.h, intl/gettextP.h,
9696         intl/hash-string.h, intl/intl-compat.c, intl/l10nflist.c,
9697         intl/libgettext.h, intl/loadinfo.h, intl/loadmsgcat.c,
9698         intl/localealias.c, intl/plural.c, intl/textdomain.c,
9699         intl/ChangeLog, intl/Makefile.in, intl/VERSION,
9700         intl/bindtextdom.c, intl/dcgettext.c: Updated from gettext-0.10.38
9701
9702         * m4/Makefile.am:
9703         reflects addition of codeset.m4 from gettext-0.10.38, automatically
9704         generated.
9705
9706         * m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4,
9707                 m4/isc-posix.m4, m4/lcmessage.m4, m4/progtest.m4: *
9708                 progtest.m4, lcmessage.m4, isc-posix.m4, iconv.m4,
9709                 glibc21.m4, gettext.m4, codeset.m4: updated from
9710                 gettext-0.10.38.
9711
9712         * ChangeLog: *** empty log message ***
9713
9714         * THANKS: added "Gerrit P. Haase" <gerrit.haase@t-online.de>
9715
9716         * m4/ChangeLog, locate/testsuite/.cvsignore,
9717         xargs/testsuite/.cvsignore, config.h.in, configure, aclocal.m4,
9718         doc/.cvsignore: *** empty log message ***
9719
9720         * m4/jm-macros.m4:      * jm-macros.m4 (jm_MACROS): add jm_FSTYPENAME
9721
9722         * doc/Makefile.in: *** empty log message ***
9723
9724         * doc/Makefile.am:
9725         * doc/Makefile.am (MOSTLYCLEANFILES): add find.cps, which is
9726         created by dvips.  This should be taken care of by automake, but
9727         the code is commented out.
9728
9729 2001-06-09  Kevin Dalley  <kevin@seti.org>
9730
9731         * ABOUT-NLS: updated from gettext-0.10.38.
9732
9733         * configure.in: add tr to ALL_LINGUAS.
9734
9735         * doc/Makefile.am (MOSTLYCLEANFILES): add find.cps, which is
9736         created by dvips.  This should be taken care of by automake, but
9737         the code is commented out.
9738
9739         * po/stamp-cat-id:      * stamp-cat-id: Remove file.
9740
9741         * po/Makefile.in.in:    * Makefile.in.in: Upgrade to gettext-0.10.38.
9742
9743         * po/ChangeLog: * cat-id-tbl.c: Remove file.
9744
9745         * po/de.po, es.po, et.po, fr.po:
9746         * po/fr.po, et.po, es.po, de.po: updated translations to
9747         findutils-4.1.7.
9748
9749         * po/tr.po: * tr.po:  New Turkish translation.
9750
9751 2001-06-05  Kevin Dalley  <kevin@seti.org>
9752
9753         * locate/updatedb.sh: replace "whoami" with "id -u" when testing
9754         for root.
9755
9756 2001-06-04  Kevin Dalley  <kevin@seti.org>
9757
9758         * locate/testsuite/Makefile.am (DIST_SUBDIRS): remove second
9759         instance of DIST_SUBDIRS.
9760
9761         * locate/Makefile.am (install-data-hook): changed install target
9762         to install-data-hook, which still installs other files.
9763
9764         * doc/Makefile.am (MOSTLYCLEANFILES): added find.cps, which should
9765         probably be handled by automake.
9766
9767         * doc/mdate-sh: removed file in doc directory.  It now exists only
9768         in top_srcdir, but this changed required a patch to automake.
9769
9770 2001-06-01  gettextize  <bug-gnu-utils@gnu.org>
9771
9772         * Makefile.in.in: Upgrade to gettext-0.10.38.
9773         * cat-id-tbl.c: Remove file.
9774         * stamp-cat-id: Remove file.
9775
9776 2001-05-20  Kevin Dalley  <kevin@seti.org>
9777
9778         * Version 4.1.7
9779
9780         * lib/Makefile.am (EXTRA_DIST): add strcasecmp.c
9781
9782         * find/testsuite/Makefile.am (EXTRA_DIST): new tests:
9783         find.gnu/name-opt.exp find.gnu/perm.exp find.gnu/perm.xo
9784         find.gnu/prune-default-print.exp find.gnu/prune-default-print.xo
9785
9786         * configure.in: update to 4.1.7
9787
9788         * config.sub, config.guess: upgraded to recent versions of
9789         config.sub and config.guess.
9790
9791         * locate/updatedb.sh: Add space to "#! /bin/sh"
9792
9793         * configure.in: Add id to ALL_LINGUAS
9794
9795         * lib/Makefile.am (EXTRA_DIST):  getline.[ch] added
9796         (libfind_a_SOURCES): getline.[ch] removed since getline.c is not
9797         always needed.
9798
9799         * po/da.po, de.po, es.po, et.po, fr.po, gl.po, id.po, it.po, ko.po,
9800         nl.po, pl.po, pt_BR.po, ru.po, sv.po: updated to reflect changes
9801         in source code.
9802
9803         * po/id.po: New translation for Indonesia.
9804
9805 2001-05-20  Lionel CONS <lionel.cons@cern.ch>
9806
9807         * find/find.c: Fixed security holes.  1.  There is a race
9808         condition between the lstat() to detect a symbolic link and the
9809         actual chdir().  2.  An attacker can move directories while find
9810         is _inside_ so that chdir(..) goes out of the intended file tree.
9811
9812         * lib/modetype.h: support for Solaris door files is added.
9813
9814         * lib/filemode.c: S_ISDOOR is undef'ed if STAT_MACROS_BROKEN
9815
9816         * find/pred.c (pred_type): -D option (for Solaris door files) is
9817         added.
9818
9819         * find/parser.c (insert_type):  -D option (for Solaris door files)
9820         is added.
9821
9822         * find/find.1: -D option (for Solaris door files) is documented
9823
9824         * doc/find.texi (Type): -D option (for Solaris door files) is
9825         documented
9826
9827 2001-05-02  Kevin Dalley  <kevin@seti.org>
9828
9829         * configure.in: Change AC_CHECK_MEMBERS to conform to new
9830         autoconf.  Add Danish.
9831
9832 2001-04-28  Kevin Dalley  <kevind@rahul.net>
9833
9834         * po/sv.po, ru.po, pt_BR.po, pl.po, nl.po, ko.po, it.po, gl.po,
9835         fr.po, et.po, es.po, de.po, findutils.pot:  new translations, and
9836         new source code to translate.
9837
9838         * po/da.po: new Danish translation.
9839
9840 2001-01-20  Kevin Dalley  <kevin@seti.org>
9841
9842         * doc/find.texi (Adding Tests): Place space in "#! /bin/sh".
9843
9844         * find/testsuite/find.gnu/prune-default-print.xo,
9845         find/testsuite/find.gnu/prune-default-print.exp: test for "find
9846         . -prune" which passes after changes.  Also see name-opt.exp.
9847
9848         * find/util.c (get_new_pred):
9849         * find/tree.c (set_new_parent):
9850         * find/parser.c (various parse functions):
9851         * find/find.c (main):
9852         (default_prints): new function
9853         * find/defs.h (struct predicate): added no_default_print
9854         side_effects are no separated from no_default_print.  predicates
9855         which cause side effects should not be reordered (optimized).
9856         predicates which cause printing should have printing turned off.
9857         Printing statements also cause side effects.
9858
9859 2000-10-29  Bruno Haible <haible@ilog.fr>
9860
9861         * locate/code.c (main), doc/find.texi: improve handling of
9862         non-ASCII characters used old format.
9863
9864 2000-10-21  Paul Eggert  <eggert@twinsun.com>
9865
9866         If open + fchdir fails, fall back on xgetcwd + chdir.
9867         The old code tested for this at compile-time,
9868         but SunOS 4.1.4 fchdir can fail at run-time.
9869
9870         * find/defs.h (fchdir): Define to -1 if not available.
9871         * find/defs.h (starting_dir, starting_desc):
9872         Always declare.  starting_dir now points to const.
9873         * find/find.c (starting_dir, starting_desc): Likewise.
9874         * find/find.c (starting_dir):
9875         Now "." if starting_desc is nonnegative, for benefit of diagnostics.
9876         (main, process_top_path, process_dir):
9877         If open + fchdir fails, fall back on xgetcwd + chdir.
9878         * find/pred.c (launch): Likewise.
9879
9880 2000-10-20  Kevin Dalley  <kevin@seti.org>
9881
9882         * xargs/xargs.c, locate/updatedb.sh, locate/locate.c (usage),
9883         find/parser.c (parse_help): add bug reporting address to help
9884
9885 2000-10-13  Kevin Dalley  <kevin@seti.org>
9886
9887         * depcomp, lib/depcomp: depcomp moved from lib to .
9888
9889         * po/sv.po, ru.po, pt_BR.po, pl.po, nl.po, ko.po, it.po, gl.po,
9890         fr.po, findutils.pot, et.po, es.po, de.po: updated after addition
9891         of lib/rpmatch.c
9892
9893 2000-10-11  Kevin Dalley  <kevind@rahul.net>
9894
9895         * Version 4.1.6
9896
9897         * locate/testsuite/config/unix.exp: set PRUNEFS to "" for the
9898         testsuite.
9899
9900 2000-10-10  Bruno Haible <haible@ilog.fr>
9901
9902         * lib/Makefile.am (libfind_a_SOURCES): added yesno.c
9903
9904         * lib/yesno.c, lib/rpmatch.c: new files.
9905
9906         * find/pred.c: use function yesno().
9907
9908 2000-10-10  Kevin Dalley  <kevind@rahul.net>
9909
9910         * locate/testsuite/Makefile.am: Added missing \ at end of
9911         EXTRA_DIST lines.
9912
9913         * locate/testsuite/locate.gnu/ignore_case3.xo,
9914         locate/testsuite/locate.gnu/ignore_case3.exp,
9915         locate/testsuite/locate.gnu/ignore_case2.exp,
9916         locate/testsuite/locate.gnu/ignore_case1.xo,
9917         locate/testsuite/locate.gnu/ignore_case1.exp: place locatedb
9918         inside tmp directory, add subdir directory under tmp.
9919
9920         * locate/testsuite/config/unix.exp: clean up tmp after test is
9921         finished.
9922
9923 2000-10-10  Kevin Dalley  <kevind@rahul.net>
9924
9925         * locate/testsuite/config/unix.exp (Repository):
9926
9927         * po/POTFILES.in: added lib/rpmatch.c
9928
9929 2000-10-09  Kevin Dalley  <kevind@rahul.net>
9930
9931         * lib/fnmatch.c, lib/fnmatch.h: reverted to older version of
9932         fnmatch which works with Solaris.
9933
9934         * locate/testsuite/config/unix.exp: dejagnu unix.exp
9935
9936         * xargs/testsuite/config/unix.exp: remove temporary file
9937
9938         * xargs/xargs.c: spelling correction
9939
9940         * m4/prereq.m4: updated and changed some macros
9941
9942         * m4/jm-macros.m4: replaced jm_FUNC_FNMATCH with
9943         kd_FUNC_FNMATCH_CASE_REPL
9944
9945         * m4/timespec.m4, m4/strerror_r.m4, m4/mbstate_t.m4,
9946         m4/largefile.m4, m4/gettext.m4, m4/fnmatchcase.m4, m4/d-type.m4,
9947         m4/d-ino.m4, m4/c-bs-a.m4: new m4 macros.
9948
9949         * m4/Makefile.am: add fnmatchcase.m4 and mbstate_t.m4
9950
9951         * locate/testsuite/locate.gnu/ignore_case3.xo,
9952         locate/testsuite/locate.gnu/ignore_case3.exp,
9953         locate/testsuite/locate.gnu/ignore_case2.xo,
9954         locate/testsuite/locate.gnu/ignore_case2.exp,
9955         locate/testsuite/locate.gnu/ignore_case1.xo,
9956         locate/testsuite/locate.gnu/ignore_case1.exp,
9957         locate/testsuite/config/unix.exp: tests related to "--ignore-case"
9958         option.
9959
9960         * locate/testsuite/locate.gnu: testsuite directory
9961
9962         * locate/testsuite/Makefile.am (Repository):
9963
9964         * locate/testsuite: add directory for locate testsuite
9965
9966         * po/findutils.pot: updated file
9967
9968         * po/sv.po, po/ru.po, po/pt_BR.po, po/pl.po, po/nl.po, po/ko.po,
9969         po/it.po, po/gl.po, po/fr.po, po/et.po, po/es.po, po/de.po:
9970         updated various po files.
9971
9972         * locate/updatedb.sh: export TMPDIR, which is used by child
9973         processes.
9974
9975         * locate/locate.1, locate/locate.c:  add "--ignore-case" option.
9976
9977         * locate/Makefile.am: add testsuite subdirectory
9978
9979         * find/testsuite/find.gnu/perm.xo,
9980         find/testsuite/find.gnu/perm.exp,
9981         find/testsuite/find.gnu/name-opt.xo,
9982         find/testsuite/find.gnu/name-opt.exp: added test suites
9983
9984         * configure.in: add locate/testsuite/Makefile
9985
9986         * doc/find.info*: removed from repository
9987
9988         * doc/find.texi: add documentation for "-i" option.
9989
9990         * aclocal.m4: removed from repository, as it is generated.
9991
9992         * find/pred.c: fixes problem with "find -perm -0100".
9993
9994         * lib/lstat.c, lib/stat.c: removed from repository.  These files
9995         are generated from lib/xstat.in.
9996
9997 2000-08-24  Kevin Dalley  <kevind@rahul.net>
9998
9999         * doc/find.texi (Invoking xargs): changed @var{-s} to @samp{-s}.
10000
10001 2000-05-13  Kevin Dalley  <kevind@rahul.net>
10002
10003         * find/tree.c (opt_expr): move iname and ipath to the front of the
10004         list of arguments.
10005
10006         * doc/find.texi (Directories): changed wording for "-prune".
10007
10008         * find/parser.c (parse_prune): set side_effects to true, to
10009         prevent prune from being moved in opt_expr.
10010
10011 2000-04-12  Kevin Dalley  <kevind@rahul.net>
10012
10013         * doc/find.texi, doc/permi.texi: fix spellings, add LocalWords.
10014
10015         * lib/Makefile.am: put getline.c back into libfind_a_SOURCES,
10016         since getstr is needed.
10017
10018         * Version 4.1.5
10019
10020         * po/POTFILES.in: updated list of files, updated po files.
10021
10022
10023 2000-04-02  Paul Eggert  <eggert@twinsun.com>
10024
10025         Add support for large files, and port to Solaris 8 and earlier
10026         versions.
10027
10028         * lib/human.c (getenv): Depend on NEED_GETENV_DECL, not
10029         HAVE_DECL_GETENV.
10030
10031         * lib/strftime.c (my_strftime): Make sure we call the system
10032         strftime, not ourselves, when invoking the underlying strftime.
10033
10034         * m4/check-decl.m4 (jm_CHECK_DECLS): Remove memchr, nanosleep.
10035
10036         * m4/jm-macros.m4 (jm_MACROS): Don't check for utime.h.  Do not
10037         require jm_BISON, jm_CHECK_TYPE_STRUCT_UTIMBUF, jm_FUNC_LCHOWN,
10038         jm_FUNC_CHOWN, jm_FUNC_NANOSLEEP, jm_FUNC_GROUP_MEMBER,
10039         jm_FUNC_PUTENV, jm_FUNC_GETGROUPS, AM_FUNC_GETLOADAVG,
10040         jm_SYS_PROC_UPTIME, jm_FUNC_FTRUNCATE, jm_FUNC_UTIME.  Do not
10041         replace strcasecmp, dup2, gethostname, getusershell, stime,
10042         strcspn, strpbrk, euidaccess, mkdir, rmdir, rpmatch, strndup,
10043         strverscmp, memchr, memmove.  Do not check for declaration of
10044         lchown.  Remove invocations of AM_FUNC_OBSTACK, AM_FUNC_STRTOD,
10045         POW_LIBM, jm_LANGINFO_CODESET, jm_ICONV.  Remove df tests.
10046         (jm_CHECK_ALL_TYPES): Include <sys/stat.h> when checking for
10047         struct stat.st_blksize.
10048
10049         * m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Set environment variable
10050         in shell rather than using putenv, which isn't portable.
10051
10052         * COPYING, lib/alloca.c, lib/dirname.c, lib/error.c,
10053         lib/savedir.c, lib/strstr.c, m4/check-decl.m4, m4/d-ino.m4,
10054         m4/d-type.m4, m4/getline.m4, m4/jm-glibc-io.m4, m4/jm-macros.m4,
10055         m4/jm-mktime.m4, m4/ls-mntd-fs.m4, m4/memcmp.m4, m4/prereq.m4,
10056         m4/readdir.m4, m4/regex.m4, m4/strftime.m4, m4/uintmax_t.m4: Sync
10057         to latest version from sh-utils-2.0g.
10058
10059         * config.guess, config.sub, lib/argmatch.c, lib/argmatch.h,
10060         lib/human.c, lib/human.h, lib/memcpy.c, lib/quotearg.c,
10061         lib/quotearg.h, lib/strtoull.c, lib/strtoumax.c,
10062         lib/xstrtoumax.c, m4/c-bs-a.m4, m4/gettext.m4,
10063         m4/largefile.m4, m4/lcmessage.m4, m4/link-follow.m4,
10064         m4/progtest.m4, m4/strerror_r.m4, m4/timespec.m4,
10065         m4/xstrtoumax.m4: New files, taken from sh-utils-2.0g.
10066
10067         * lib/ansi2knr.1, lib/ansi2knr.c, lib/basename.c, lib/getopt.h,
10068         lib/fnmatch.c, lib/fnmatch.h, lib/modechange.c: Sync to latest
10069         unreleased version of GNU tar (between 1.13.17 and 1.13.18).
10070
10071         * lib/basename.h, lib/waitpid.c: New files, taken from same
10072         version of GNU tar.
10073
10074         * lib/regex.c, lib/regex.h: Sync to GNU grep 2.4.2.
10075
10076         * lib/posix/Makefile.am, lib/posix/regex.h: New files, taken from
10077         GNU grep 2.4.2.
10078
10079         * lib/strftime.c: Sync to textutils 2.0e.
10080
10081         * acconfig.h, depcomp, lib/strcasecmp.c, m4/check-type.m4,
10082         m4/const.m4, m4/decl.m4, m4/lfs.m4, m4/mktime.m4, m4/perl.m4,
10083         m4/putenv.m4, m4/uptime.m4, m4/utimbuf.m4, m4/utime.m4,
10084         m4/utimes.m4: Remove these files; no longer needed.
10085
10086         * configure.in (AC_CANONICAL_HOST, AC_SYS_LARGEFILE,
10087         jm_AC_TYPE_UINTMAX_T): Add.
10088         (CACHE_IDS, FSTYPE_STATVFS, FSTYPE_USG_STATFS, FSTYPE_AIX_STATFS,
10089         FSTYPE_MNTENT, FSTYPE_STATFS, FSTYPE_GETMNT): Add comment, so that
10090         we don't need acconfig.h.
10091         (AC_CHECK_TYPE): Add ssize_t.
10092         (AC_REPLACE_FUNCS): Add waitpid.
10093         (AC_CHECK_FUNCS): Remove basename.
10094         (AC_FUNC_MKTIME): Remove.
10095         (LIBOBJS): Add no-ops to work around automake 1.4 bug.
10096         (AC_OUTPUT): Add lib/posix/Makefile.
10097
10098         * find/defs.h: Include <config.h>, <sys/types.h>, <sys/stat.h>,
10099         <stdio.h>, <limits.h>, <inttypes.h>.  All includers changed to not
10100         include these files, and to include "defs.h" first (since config.h
10101         must be included first).
10102         (CHAR_BIT, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
10103         S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, MOD_WXUSR,
10104         MODE_R, MODE_RW, MODE_RWX, MODE_ALL): New macros.
10105         (enum permissions_type): New enum.
10106         (struct long_val.negative): New member.
10107         (struct long_val.l_val): Now uintmax_t, not unsigned long.
10108         (struct size_val.size): Likewise.
10109         (struct perm_val): New type.
10110         (struct predicate.perm): Now struct perm_val, not unsigned long.
10111         (struct predicate.type): Now mode_t, not unsigned long.
10112         (list_file): New parameters current_time, output_block_size.
10113         All callers changed.
10114         (savedir, basename): Remove decls.
10115         (output_block_size, start_time): New extern vars.
10116
10117         * find/find.c: Include <human.h>, <savedir.h>.
10118         (output_block_size, start_time): New vars.
10119         (main): Initialize them.  No need to check for negative st_size,
10120         since savedir now does it for us.
10121
10122         * find/fstype.c: Include "dirname.h".
10123         (xatoi): Remove.
10124         (filesystem_type_uncached): Use xstrtoumax instead of xatoi.
10125
10126         * find/parser.c: Include "xstrtol.h".
10127         (get_num_days, get_num, parse_amin, parse_cmin, parse_mmin,
10128         parse_size, parse_used, insert_time, insert_num): Compute using
10129         uintmax_t, not unsigned long.
10130         (parse_amin, parse_cmin, parse_mmin, parse_used, insert_time):
10131         Keep track of whether time was negative before converting it to an
10132         unsigned type.
10133         (parse_daystart): Don't assume that localtime succeeds; e.g. it
10134         can fail with 64-bit time_t and 32-bit tm_year.
10135         (parse_perm, insert_type): Compute using mode_t, not unsigned
10136         long.
10137         (insert_type): Use symbolic constants like MODE_ALL instead of
10138         traditional ones like 07777.  Set new kind member to indicate
10139         permissions type, instead of using unportable magic numbers.
10140         (make_segment): We will use human_readable to convert most numeric
10141         values, so simplify the cases.
10142         (get_num_days): Write in terms of get_num, to avoid duplicated
10143         code.
10144         (insert_time, insert_num): When debugging, convert large values to
10145         uintmax_t and output with %ju.
10146         (get_num): Use xstrtoumax to do the real work.
10147
10148         * find/pred.c: Include "basename.h", "human.h".
10149         (DEV_BSIZE, ST_BLKSIZE, ST_NBLOCKSIZE): New macros, taken from
10150         fileutils.
10151         (ST_NBLOCKS): Replace with fileutils defn.
10152         (MAX): New macro.
10153         (ctime_format): New function.
10154         (pred_fprintf, format_date): Use human_readable to output large
10155         numbers portably.
10156         (pred_fprintf): Use ctime_format to output ctime-style dates.  Use
10157         base_name to compute the base name of a path.  With %m, output the
10158         mode portably using traditional numbers, even if the host uses
10159         some other numbering scheme.
10160         (pred_iname, pred_name): basename -> base_name.
10161         (pred_perm): Use new kind member to deduce permissions type,
10162         instead of relying on magic numbers.
10163         (pred_size): Compute using uintmax_t, not unsigned long.  Avoid
10164         overflow if file size is near the maximum.
10165         (pred_type): Compute using mode_t, not unsigned long.
10166         (launch): Use waitpid, not wait.  Check for EINTR.
10167         (format_date): Don't assume that localtime succeeds.
10168
10169         * find/util.c (basename): Remove; we now use base_name.
10170
10171         * lib/Makefile.am (SUBDIRS): New macro.
10172         (libfind_a_SOURCES): Add argmatch.h, argmatch.c, basename.h,
10173         basename.c, human.c, human.h, quotearg.c, quotearg.h, xstrtoumax.c.
10174         Remove error.h, error.c, getline.c.
10175         (EXTRA_DIST): Add mktime.c, regex.c.
10176
10177         * lib/listfile.c: Include "human.h".
10178         (alloca): Declare, or include appropriate files to declare.
10179         (DEV_BSIZE, ST_NBLKSIZE, ST_NBLOCKS, ST_NBLOCKSIZE): New macros.
10180         (convert_blocks): Remove.
10181         (list_file): New current_time and output_block_size args.
10182         Revamp quite a bit, to handle large numbers correctly
10183         and to match GNU ls behavior more closely.
10184
10185         * m4/Makefile.am (EXTRA_DIST): Add c-bs-a.m4, gettext.m4,
10186         largefile.m4, lcmessage.m4, link-follow.m4, progtest.m4,
10187         strerror_r.m4, xstrtoumax.m4.  Remove check-type.m4, const.m4,
10188         decl.m4, lfs.m4, mktime.m4, perl.m4, putenv.m4, timespec.m4,
10189         uptime.m4, utimbuf.m4, utime.m4, utimes.m4.
10190
10191         * xargs/xargs.c (wait_for_proc): Retry wait if it fails with
10192         errno == EINTR.
10193
10194 2000-04-05  Kevin Dalley  <kevind@rahul.net>
10195
10196         * xargs/Makefile.am:  add ansi2knr
10197
10198         * xargs/xargs.c: add macros PARAMS rather than P_.  Add
10199         prototypes.
10200
10201         * po/POTFILES: new file listing all POFILES.
10202
10203         * m4/gl.po, m4/et.po: new files
10204
10205         * m4/Makefile.am.in:  updated file
10206
10207         * m4: update directory
10208
10209         * locate/Makefile.am: create updatedb from updatedb.sh
10210
10211         * locate/updatedb.sh, locate/updatedb.in: removed file.  Replaced
10212         by updatedb.sh
10213
10214         * locate/frcode.c, locate/code.c, locate/bigram.c: add macros
10215         PARAMS rather than P_.  Add prototypes.
10216
10217         * lib/xstat.in: new file
10218
10219         * lib/Makefile.am: update to latest versions of library files.
10220
10221         * find/testsuite/Makefile.am: add CLEANFILES
10222
10223         * find/util.c: remove definition of basename
10224
10225         * find/util.c, find/tree.c, find/pred.c, find/parser.c,
10226         find/fstype.c, find/find.c, find/defs.h: add macros PARAMS rather
10227         than P_, for consistency, change to prototypes
10228
10229         * find/Makefile.am: Add prototypes and ansi2knr
10230
10231         * configure.in: add Galition and Estonian languages.
10232         Miscellaneous other fixes.
10233
10234
10235 2000-03-11  Kevin Dalley  <kevind@rahul.net>
10236
10237         * lib/basename.c: Add file from libit.
10238         * lib/Makefile.am (libfind_a_SOURCES): add basename.c since it is
10239         no longer replaceable.
10240
10241         * find/util.c: Remove definition of basename, which is now in
10242         lib/basename.c (as base_name).
10243         * find/pred.c: Use base_name, not basename.
10244         * find/defs.h: Likewise.
10245
10246         * configure.in : Don't replace basename.  Now we use only
10247         base_name.
10248
10249 2000-02-26  Kevin Dalley  <kevind@rahul.net>
10250
10251         * Version 4.1.4
10252
10253         * lib/strtoul.c: added to distribution
10254
10255         * configure.in: added strtoul to AC_REPLACE_FUNCS
10256
10257         * configure.in: added jm_CHECK_ALL_TYPE
10258
10259 2000-02-23  Kevin Dalley  <kevind@rahul.net>
10260
10261         * po/ChangeLog: removed, merged with top-level ChangeLog.
10262
10263         * po/de.po: new version of German file.
10264
10265         * po/gl.po, po/et.po: new languages, Estonian and Galician.
10266
10267         * locate/updatedb.sh (PRUNEFS): enclose paths in quotes
10268
10269 2000-02-17  Kevin Dalley  <kevind@rahul.net>
10270
10271         * po/it.po: new version of Italian file.
10272
10273         * locate/updatedb.sh (prunefs_exp): have sed statement use '*'
10274         rather than the often unsupported '+'.
10275
10276 2000-02-13  Kevin Dalley  <kevind@rahul.net>
10277
10278         * configure.in: removed AC_ARG_PROGRAM, which is already in
10279         AM_INIT_AUTOMAKE.
10280
10281         * locate/Makefile.am (updatedb), locate/updatedb.sh: add
10282         transforms of find, frcode, bigram, and code back into
10283         updatedb.sh, which were accidentally removed.
10284
10285 2000-02-12  Kevin Dalley  <kevind@rahul.net>
10286
10287         * lib/wait.h: updated address.
10288
10289 2000-01-26  Kevin Dalley  <kevind@rahul.net>
10290
10291         * Version 4.1.3
10292
10293         * acconfig.h: added internationalization.
10294
10295         * intl/*: copied from tar-1.13.17.
10296
10297         * locate/Makefile.am, locate/locate.c, locate/code.c:
10298         internationalized file.
10299
10300         * locate/frcode.c, locate/bigram.c: include headers from ../lib
10301         directory.
10302
10303         * xargs/Makefile.am, xargs/xargs.c: internationalized directory.
10304
10305 2000-01-26  Kevin Dalley  <kevind@rahul.net>
10306
10307         * po/POTFILES.in: added list of files with translatable strings.
10308
10309         * de.po, es.po, fr.po, it.po, ko.po, nl.po, pl.po, pt_BR.po,
10310         ru.po, sv.po: New, slightly out of date, files imported from the
10311         Translation Project: http://www.iro.umontreal.ca/contrib/po/HTML/,
10312         German, Spanish, French, Italian, Korean, Dutch, Polish, Brazilian
10313         Portuguese.
10314
10315
10316 2000-01-24  Kevin Dalley  <kevind@rahul.net>
10317
10318         * lib/xmalloc.c, lib/regex.c, lib/getopt.c: internationalization
10319         works with current version of gettext.
10320
10321         * lib/getline.h : added declaration of getstr.
10322         * lib/Makefile.am (libfind_a_SOURCES): added getline.[ch] to
10323         standard compilation. Added internationalization.
10324         * find/Makefile.am (INCLUDES): corrected -I options for building
10325         in other directories.
10326         (LDADD): changes for internationalization.
10327
10328         * configure.in (ALL_LINGUAS): added internationalization.
10329         getline.c is always compiled and linked, because of getstr.
10330         AM_GNU_GETTEXT
10331
10332         * Makefile.am:
10333         (DISTCLEANFILES): added intl/libintl.h
10334         (AUTOMAKE_OPTIONS): added gnits to AUTOMAKE_OPTIONS
10335         (SUBDIRS): added intl and po
10336
10337         * acconfig.h: added internationalization values
10338
10339         * THANKS: added thanks file for gnits compatibility.
10340
10341 2000-01-22  Kevin Dalley  <kevind@rahul.net>
10342
10343         * added intl directory.
10344         * created po directory and added existing po files from
10345         http://www.iro.umontreal.ca/contrib/po/HTML
10346
10347         * Added internationalization, only with slightly out of date po
10348         files for many locales.
10349
10350 2000-01-18  Kevin Dalley  <kevind@rahul.net>
10351
10352         * Version 4.1.2
10353
10354         * locate/Makefile.am: remove creation of updatedb, since it is now
10355         made by configure
10356
10357         * configure.in: updatedb is now created by configure.
10358
10359         * xargs/Makefile.am: added testsuite to xargs directory
10360
10361         * locate/updatedb.in: updatedb is now created by configure
10362
10363         * locate/frcode.c, locate/code.c, locate/bigram.c: change return
10364         from main to int.  Replace getstr with getline, where possible.
10365
10366         * locate/Makefile.am: place frcode, code, bigram in
10367         libexec_PROGRAMS
10368
10369         * lib/xstrdup.c, lib/xmalloc.c, lib/xgetcwd.c, lib/xalloc.h,
10370         lib/strtol.c, lib/strstr.c, lib/strftime.c, lib/strdup.c,
10371         lib/stpcpy.c, lib/stat.c, lib/savedir.h, lib/savedir.c,
10372         lib/regex.h, lib/regex.c, lib/realloc.c, lib/pathmax.h,
10373         lib/modechange.h, lib/modechange.c, lib/mktime.c, lib/memset.c,
10374         lib/memcmp.c, lib/malloc.c, lib/lstat.c, lib/idcache.c,
10375         lib/getopt1.c, lib/getopt.c, lib/getopt.h, lib/getline.c,
10376         lib/getline.h, lib/fnmatch.c, lib/fnmatch.h, lib/filemode.c,
10377         lib/filemode.h, lib/fileblocks.c, lib/error.c, lib/error.h,
10378         lib/dirname.c, lib/alloca.c: updated to newer version of file from
10379         fileutils.
10380
10381         * find/version.c: version number is now automatically generated by
10382         configure.
10383
10384         * find/fstype.c (filesystem_type_uncached): fixes bug described as
10385         follows:  When 'find' looks for a fstype, it parses the /etc/mtab
10386         until it finds the good line. But, if there is, before the good
10387         line, a line whose mountpoint is unreachable, it fails.
10388
10389         * doc/texinfo.tex: updated to newer version
10390
10391         * doc/find.texi: added version.texi, fixed a few documentation bugs.
10392
10393         * configure.in: new m4 features.
10394
10395         * Makefile.am: moved testsuite to below corresponding directories
10396         find and xargs.
10397
10398         * acconfig.h: updated to match new m4 files.
10399
10400         * m4: added m4 directory, largely borrowed from Jim Meyering's
10401         fileutils.
10402
10403 2000-01-17  Kevin Dalley  <kevind@rahul.net>
10404
10405         * doc/find.texi (Multiple Files): placed missing xargs in examples
10406
10407         * find/testsuite/find.gnu/depth.exp: added find tests to test
10408         "-depth" bug.
10409
10410         * doc/find.texi: include version.texi for automatic determination
10411         of version number, update bug report email address to
10412         bug-findutils@gnu.org.
10413         (Combining Primaries With Operators): add indices for " ,", "()",
10414         "-a", "-o", etc.
10415
10416 2000-01-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10417
10418         * find/tree.c (opt_expr): Never rearrange the arguments of the
10419         comma operator, since it is not commutative.  Remove useless
10420         assignment.2
10421
10422 2000-01-17  Jonathan R. Ferro <jferro@corwin.ece.cmu.edu>
10423
10424         * find/find.c (process_path): fix problem with "-depth" which is
10425         tested in depth.exp test.
10426
10427 1999-08-15  Kevin Dalley  <Kevin Dalley <kevin@seti.org>>
10428
10429         * find/fstype.c (filesystem_type_uncached): a stat failure with
10430         EACCESS will ignore this file system keep on looking.  Patch
10431         suggested by Vincent Danjean <vdanjean@ens-lyon.fr>.
10432
10433 1999-08-15  Mark Kettenis  <kettenis@gnu.org>
10434
10435         * xargs/xargs.c (LONG_MAX): Define if necessary.
10436         (main): If ARG_MAX is -1 (that is sysconf
10437         (_SC_ARG_MAX) returns -1) the system does not impose a limit.  In
10438         that case, use LONG_MAX as the limit.
10439
10440 1999-08-15  Kevin Dalley  <Kevin Dalley <kevind@rahul.net>
10441
10442         * find/version.c: version string is now set by config.h
10443
10444 1999-08-08  Kevin Dalley  <kevin@seti.org>
10445
10446         * Version 4.1.1
10447
10448         * README-alpha: added alpha README file
10449
10450         * find/defs.h: move lstat declarations into defs.h
10451
10452         * xargs/Makefile.am, testsuite/Makefile.am, locate/Makefile.am,
10453         lib/Makefile.am, find/Makefile.am, doc/Makefile.am, configure.in,
10454         Makefile.am: update for automake-1.4
10455
10456 1999-08-02  Kevin Dalley  <kevind@rahul.net>
10457
10458         * AUTHORS: added file listing AUTHORS
10459
10460         * lib/Makefile.am: modified code for EXTRA sources
10461
10462 1999-01-30  Kevin Dalley  <kevind@rahul.net>
10463
10464         * added const to declaration of basename, which should satisfy
10465         Linux as well as Hurd (fixes bug #31325).
10466
10467 1998-12-04  Kevin Dalley  <kevind@rahul.net>
10468
10469         * lib/nextelem.c: removed declaration of strdup and free, which
10470         meets GNU coding standards and allows compilation on more
10471         platforms.
10472
10473         * find.texi: corrected explanation of -amin option which described
10474         hours instead of minutes
10475
10476 1998-09-26  Kevin Dalley  <kevind@rahul.net>
10477
10478         * lib/getline.c: fix getstr so that it correctly handles long file
10479         paths
10480
10481 1998-09-20  Kevin Dalley  <kevind@rahul.net>
10482
10483         * removed more function declarations to meet GNU coding standards
10484
10485 1998-08-30  Kevin Dalley  <kevind@rahul.net>
10486
10487         * lib/nextelem.c: removed declaration of strdup and free, which
10488         meets GNU coding standards and allow compilation on sparc
10489
10490         * corrected explanation of -amin option which described hours
10491         instead of minutes
10492
10493 1998-02-27  Kevin Dalley  <kevind@rahul.net>
10494
10495         * locate/locate.c: add --existing option to locate, which only
10496         prints the names of files which still exist
10497
10498 1998-02-08  Kevin Dalley  <kevind@rahul.net>
10499
10500         * locate/locate.c: corrected get_short so that it correctly
10501         returns negative numbers.
10502
10503         * remove declarations of various string functions.  Removing the
10504         declarations almost matches the GNU Coding Standards.
10505
10506 1997-03-03  Kevin Dalley  <kevind@rahul.net>
10507
10508         * xargs/xargs.c: xargs fixed to prevent occasional core dumping.
10509
10510 1997-01-11  Kevin Dalley  <kevind@rahul.net>
10511
10512         * locate/updatedb.sh: add --localuser option to updatedb, which
10513         allows find to be run as nobody, while allowing database file to
10514         be created as root, change suggested by
10515         <Bernd_Eckenfels@Wittumstrasse13.76646Bruchsal.de>
10516
10517 1996-12-28  Kevin Dalley  <kevind@rahul.net>
10518         * added PRUNEFS as variable in updatedb and --prunefs as option to
10519         updatedb
10520
10521 1996-05-27  Kevin Dalley  <kevind@rahul.net>
10522
10523         * updatedb.sh: when NETPATHS is used, only su to NETUSER if whoami
10524         is root
10525 1996-04-27  Kevin Dalley  <kevind@rahul.net>
10526
10527         * lib/getline.c (getstr): verify that nchars_avail is *really*
10528         greater than 0; set *n to a large enough number, stops some core
10529         dumping
10530
10531 1994-11-03  David J. MacKenzie  <djm@gnu.org>
10532
10533         * Version 4.1.
10534
10535         * locate/Makefile.am: Move updatedb from LIBSCRIPTS to SCRIPTS.
10536
10537         * Makefile.am (distname): Change distribution name from find to
10538           findutils.
10539
10540         * testsuite/config/unix.exp: Don't abuse xfail; simulate it correctly.
10541
10542         * locate/Makefile.am (CLEANFILES): Fix typo.
10543
10544 1994-11-02  David J. MacKenzie  <djm@gnu.org>
10545
10546         * The big 4 0.
10547
10548         * lib/listfile.c find/defs.h (list_file): Take a stream arg.
10549         * find/pred.c (pred_ls): pass it.
10550         * find/parser.c pred.c defs.h (parse_fls, pred_fls): New functions.
10551
10552 1994-10-25  David J. MacKenzie  <djm@gnu.org>
10553
10554         * find/pred.c (pred_fprintf): Flush output after \c.  From Chapman
10555         Flack.
10556
10557         * find/parser.c (insert_fprintf): Warn about unrecognized \ and %
10558         sequences.
10559
10560 1994-10-18  David J. MacKenzie  <djm@gnu.org>
10561
10562         * find/defs.h parser.c pred.c tree.c util.c: Globally change
10563         "victim" to "primary".
10564
10565         * find/parser.c (insert_fprintf): For 'c' format, don't lose the
10566         need_stat information.  From Chapman Flack.
10567
10568         * doc/find.texi perm.texi: New files.
10569         * configure.in: Configure the doc directory.
10570
10571         * find/pred.c (pred_regex): Check that the regex matched the whole
10572         file name.
10573
10574 1994-10-12  David J. MacKenzie  (djm@gnu.org>
10575
10576         * find/parser.c: Add -mount as an alias for -xdev.
10577         From Klaus.Steinberger@physik.uni-muenchen.de (Klaus Steinberger).
10578
10579         * lib/modechange.c: Make umask_value unsigned short.
10580
10581         * xargs/xargs.c: Use symbolic constants in longopts.
10582         From Chapman Flack.
10583
10584 1994-10-05  David MacKenzie  <djm@gnu.org>
10585
10586         * xargs/xargs.c (main, read_line, read_string, do_exec): Pass
10587           along the lengths of the args.
10588           (main): Calculate length of replace_pat.
10589           (push_arg, do_insert): Use those lengths instead of calculating
10590           them.
10591
10592 1994-10-04  David MacKenzie  <djm@gnu.org>
10593
10594         * locate/updatedb.sh Makefile.in: Add substitutions to get
10595           the transformed program names.
10596
10597         * xargs/xargs.c: Put back the global variables for now.
10598         Rename some variables.  Increase default args_per_exec.
10599         Use boolean where applicable.
10600         (main): Reduce default arg_max by 2048 for POSIX.2.
10601         (read_string): Don't check EOF string.
10602         (read_line, read_string): Take initial args size into account.
10603
10604 1994-10-01  David MacKenzie  <djm@gnu.org>
10605
10606         * find/pred.c (launch): Use pid_t.
10607
10608         * xargs/xargs.c (EOF_STR): Define and use.
10609         [__STDC__]: Declare xrealloc and xmalloc using void *.
10610         * find/defs.h: Likewise.
10611
10612         * find/defs.h: Only declare stpcpy if !HAVE_STPCPY.
10613
10614         * xargs/xargs.c: Replace most global variables with structure
10615           pointers passed as arguments.  Use pid_t.
10616         * lib/wait.h: Include sys/wait.h if HAVE_SYS_WAIT_H.
10617         * configure.in: Call AC_TYPE_MODE_T and AC_HEADER_SYS_WAIT.
10618
10619         * xargs/xargs.c: Improve paging performance and memory
10620           fragmentation by building command arguments in a pre-allocated
10621           buffer and re-implementing the child pid list as an expandable
10622           array.  From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
10623
10624 1994-09-29  David J. MacKenzie  (djm@gnu.org>
10625
10626         * find/fstype.c (fstype_to_string): Add more cases.  Use
10627           INITMOUNTNAMES if defined.
10628         * find/defs.h: Change boolean typedef from char to int.
10629         * configure.in: Check for mktime.
10630
10631 1994-09-27  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
10632
10633         * configure.in: Add AC_HEADER_STAT.
10634         * lib/listfile.c, lib/modetype.h: Add STAT_MACROS_BROKEN.
10635
10636         * find/pred.c: Move the inclusion of defs.h ahead of the first
10637           test of _POSIX_VERSION.
10638
10639         * lib/xgetcwd.c: Remove _POSIX_VERSION, rely only on HAVE_GETCWD.
10640
10641 1994-09-26  David MacKenzie  <djm@gnu.org>
10642
10643         * configure.in: Add AC_CONFIG_HEADER.
10644         * find/*.c locate/*.c xargs/*.c: Include config.h.
10645         * locate/updatedb.sh: Add --version; --old -> --old-format.
10646
10647 1994-09-25  David MacKenzie  <djm@gnu.org>
10648
10649         * find/* [__STDC__]: Prototype declarations.
10650
10651         * locate/updatedb.sh: Account for renaming code and frcode.
10652
10653         * find/find.c (process_path): Store dev and ino of directories in
10654           current branch to avoid symlink loops.  From DJ Delorie
10655           <dj@ctron.com>.
10656           (process_dir): If following symlinks, don't cd to ..; instead,
10657           cd to the starting directory and then to the parent directory.
10658           (main) [HAVE_FCHDIR]: Save the dev, ino of the starting directory.
10659           (process_top_path) [HAVE_FCHDIR]: Use it.
10660         * find/pred.c (launch) [HAVE_FCHDIR]: Likewise.
10661         * defs.h [HAVE_FCHDIR]: Declare starting_desc instead of starting_dir.
10662         * configure.in: Check for dev_t, ino_t, fchdir, fcntl.h.
10663
10664 1994-09-23  David MacKenzie  <djm@gnu.org>
10665
10666         * lib/listfile.c: Change #ifdef S_IFLNK to #ifdef S_ISLNK.
10667         From Andreas Luik <luik@isa.de>.
10668
10669 1994-09-22  David MacKenzie  <djm@gnu.org>
10670
10671         * locate/locate.c (last_literal_end): Dynamically allocate enough
10672           memory for the subpattern.
10673
10674 1994-09-21  David MacKenzie  <djm@gnu.org>
10675
10676         * locate/locate.c (locate): Warn if database is >8 days old.
10677         From Ian Lance Taylor.
10678
10679         * xargs/xargs.c (do_exec), find/pred.c (launch): Set SIGCHLD to
10680           default.  From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
10681         * find/find.c pred.c util.c lib/listfile.c: Remove fflush(stdout)
10682           calls before error.  error does it, and doesn't trash errno.
10683           From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
10684
10685         * find/fstype.c (filesystem_type_uncached): Don't trust mtab dev
10686           number on HPUX.  From Andreas Luik <luik@isa.de>.
10687           (filesystem_type_uncached): Don't cache unknown file system
10688           types.  From casper@fwi.uva.nl (Casper Dik).
10689
10690         * locate/updatedb.sh: Collect results in temp file and rename it
10691           atomically.  From Andreas Luik <luik@isa.de>.
10692
10693         * xargs/xargs.c (parse_num): Print a long using %ld.  From Jim
10694           Meyering.
10695
10696         * find/defs.h find.c parser.c pred.c util.c, lib/nextelem.c:
10697           Emulate strchr and strrchr with index and rindex, not vice versa.
10698
10699         Remove man directory; move man pages to the directories of the
10700         programs they document.
10701
10702         * locate/frcode.c: Renamed from code.c.
10703         * locate/frcode.c (put_short): Renamed from puthalfword.
10704         * locate/locate.c (get_short): Renamed from gethalfword.
10705         (last_literal_end): Renamed from patprep.
10706         (locate): Recognize old-format databases too.
10707         * locate/locatedb.h: Add defines for old-format databases.
10708         * locate/bigram.c locate/code.c: Put back programs to create
10709         old-format databases.
10710         * locate/updatedb.sh: Take --old option to use them.
10711
10712 1994-09-20  David MacKenzie  <djm@gnu.org>
10713
10714         * configure.in: Update for Autoconf v2.
10715         * find/pred.c lib/savedir.c: Use new symbols for dir header.
10716         * locate/updatedb.sh: Add --help option.
10717
10718 1994-02-13  Jim Meyering  (meyering@comco.com)
10719
10720         * man/Makefile.in [man1ext, man5ext]: Set man5ext (not man1ext) to 5.
10721
10722 1993-08-01  David J. MacKenzie  (djm@gnu.org>.
10723         (filesystem_type_uncached) [AFS]: Call it if the fs type is
10724         otherwise unknown.
10725
10726         * parser.c (parse_size): Recognize b and w suffixes for dd
10727         compatibility.
10728
10729         * code.c (puthalfword): New function.
10730         (main): Call it.
10731         * locate.c (gethalfword): New function.
10732         (locate): Call it.
10733         From ifado!wb@germany.eu.net (Wilhelm B. Kloke).
10734
10735         * listfile.c: Include pathmax.h.
10736         (get_link_name): Always allocate PATH_MAX + 1 bytes for
10737         readlink buffers.
10738         * pred.c (pred_fprintf, insert_lname): Call get_link_name.
10739
10740         * fstype.c (filesystem_type, filesystem_type_uncached),
10741         listfile.c (list_file): Take an arg for the path to access.
10742         * pred.c (pred_ls, pred_fstype, pred_fprintf): Pass it.
10743
10744         * find.c (process_dir): Renamed from scan_directory.
10745
10746         Changes from jrs@world.std.com (Rick Sladkey) to chdir into
10747         subdirectories instead of using string concatenation, for speed:
10748         * find.c (process_top_path): New function.
10749         (main): Call it, and xgetcwd.
10750         (process_path, scan_directory): Take new arg, the pathname
10751         relative to ".".  Use it and pass it on.
10752         * pred.c (pred_and, pred_comma, pred_negate, pred_or,
10753         pred_xtype, pred_fprintf, pred_empty, insert_lname):
10754         access rel_pathname instead of pathname.
10755         (launch): chdir to starting_dir.
10756         * defs.h: Declare rel_pathname and starting_dir.
10757         * find.c: Define them.
10758
10759         * xgetcwd.c: New file.
10760
10761         * updatedb.sh: Recognize -fstype NFS as well as nfs.
10762         * locate.c (patprep): Skip trailing character classes correctly.
10763         From luik@pharao.stgt.sub.org (Andreas Luik).
10764
10765         * parser.c (parse_group): Make gid a gid_t, not short or int.
10766         (parse_nogroup): Cast gid to unsigned when using it as an array index.
10767         (parse_user, parse_nouser): Similar changes for uid.
10768         * defs.h: Use uid_t and gid_t.
10769
10770         * parser.c (parse_help): New function.
10771         (parse_table):  Add --version, -help, and --help options.
10772         Rename struct parser_table_t to struct parser_table.
10773         (parse_version): Exit after printing message, on
10774         stdout not stderr.
10775
10776         * xargs.c, locate.c (main, usage): Add --version and --help
10777         options.
10778
10779 1993-03-31  Jim Meyering  (meyering@comco.com)
10780
10781         * parser.c: Define isascii macro to be 1 also if STDC_HEADERS.
10782         * xargs.c: Ditto.
10783
10784 1993-03-31  David J. MacKenzie  (djm@gnu.org>text; nuke cp.
10785
10786 1993-03-29  David J. MacKenzie  (djm@gnu.org>.
10787
10788         * parser.c (make_segment, insert_fprintf), pred.c
10789         (pred_fprintf): Add '%F' to print filesystem type.
10790
10791         * parser.c (parse_fprintf): Check if second arg is missing.
10792
10793 1993-03-23  David J. MacKenzie  (djm@gnu.org>
10794
10795         * defs.h, parser.c, pred.c: Rename some types that conflict
10796         with reserved POSIX.1 namespace (ended in _t).
10797
10798
10799
10800 1991-10-17  David J. MacKenzie  <djm@gnu.org>
10801
10802         * xargs.c: Don't determine memory.h based on POSIX, which
10803         doesn't mention it.
10804
10805 1991-10-05  Jim Meyering <meyering@churchy.gnu.ai.mit.edu>
10806
10807         * parser.c (parse_perm): Parse new `-perm +mode' notation.
10808         * pred.c (pred_perm): Interpret same.
10809
10810 1991-09-13  David J. MacKenzie  <djm@gnu.org>
10811
10812         * xargs.c [POSIX]: Always use sysconf to get ARG_MAX.
10813
10814 1991-09-05  David J. MacKenzie  <djm@gnu.org>
10815
10816         * bigram.c, code.c (main): Make path_max int, not unsigned.
10817         * locate.c (main): Check for pathconf failure.
10818
10819 1991-09-05  Jim Meyering <meyering@churchy.gnu.ai.mit.edu>
10820
10821         * parser.c (insert_fprintf): Add `\\' escape and fixed `%%'
10822         interpretation.
10823         * pred.c (pred_fprintf): fixed off-by-one indexing problem
10824         when handling [gGuU] printf formats.
10825
10826 1991-08-28  David J. MacKenzie  <djm@gnu.org>
10827
10828         * Version 3.2.
10829
10830 1991-08-26  David J. MacKenzie  <djm@gnu.org>
10831
10832         * bigram.c, code.c: Fix handling of PATH_MAX.
10833         Check for anomalous input line lengths.
10834         From Bruce Evans.
10835
10836 1991-08-23  David J. MacKenzie  <djm@gnu.org>
10837
10838         * pred.c (pred_fprintf): Round block number up to get K.
10839
10840 1991-08-22  David J. MacKenzie  <djm@gnu.org>
10841
10842         * pred.c (pred_fprintf, pred_lname) [_AIX]: Allocate PATH_MAX
10843         byte for link object since st_size is wrong.
10844
10845         * listfile.c (list_file): Don't convert blocks to kilobytes if
10846         env. var POSIX_ME_HARDER is defined.
10847
10848         * fstype.c [FS_AIX_STATFS]: New case.
10849
10850         * configure: Make sure the sys/mount.h is the 4.4BSD version
10851         with grep instead of just testing whether it exists.
10852
10853         * listfile.c (list_file): Add 1 to number of 512-byte blocks
10854         before dividing to get 1K blocks (so we round up, not down).
10855
10856 1991-08-21  David J. MacKenzie  <djm@gnu.org>
10857
10858         * Version 3.1.
10859
10860         * parser.c (parse_fprintf), pred.c (pred_fprintf): Add %k
10861         conversion to print 1K blocks.
10862
10863         * listfile.c: Print counts of 1K blocks, for consistency with
10864         new fileutils release.  Bad timing, there.
10865
10866         * Version 3.0.
10867
10868         * pred.c [VOID_CLOSEDIR]: Fake a return value for closedir,
10869         which returns void on some systems, like Sequents.
10870         * configure: Check sys/dir.h for 'void closedir'.
10871
10872 1991-08-15  David J. MacKenzie  <djm@gnu.org>
10873
10874         * modetype.h: Define POSIX.1 stat stuff if missing.
10875         * pred.c, parser.c, find.c, fstype.c: Don't define it.
10876         * updatedb.sh: Use a variable substitution method like configure's.
10877         * Makefile.in: Add datadir variable to separate programs from
10878         data file.
10879
10880         * parser.c, pred.c: Rename -fulldays to -daystart.
10881
10882         * defs.h, find.c, parser.c, pred.c: Add many new predicates
10883         from Jay Plett (jay@princeton.edu).
10884
10885 1991-08-14  David J. MacKenzie  <djm@gnu.org>
10886
10887         * parser.c (parse_size), pred.c (pred_size), defs.h (struct
10888         size_t): Allow `k' to follow number to measure size in Kbytes.
10889         * parser.c (parse_size, get_num, insert_num), defs.h (struct
10890         size_t): Use enum comparison_type instead of short.
10891
10892 1991-08-09  David J. MacKenzie  <djm@gnu.org>
10893
10894         * xargs.c (read_line): Use isblank, to support POSIX locales.
10895
10896         * fstype [FS_STATVFS]: New code for SVR4, from slootman@dri.nl
10897         (Paul Slootman).
10898         * configure: Figure out when to use it.
10899
10900         * configure: Check for st_blocks in struct stat.
10901         * listfile.c (ST_NBLOCKS): New macro.
10902         (list_file): Print file's block count.
10903         Use S_ISLNK instead of S_IFLNK.
10904         * fileblocks.c: New file, from fileutils.
10905
10906 1991-08-08  David J. MacKenzie  <djm@gnu.org>
10907
10908         * parser.c, pred.c [CACHE_IDS]: Optional code to turn uid and
10909         gid lookups into table lookups.
10910
10911 1991-08-07  David J. MacKenzie  <djm@gnu.org>
10912
10913         * configure, Makefile.in's: Support +srcdir option via VPATH.
10914         Clean up clean targets.
10915
10916 1991-07-20  David J. MacKenzie  <djm@gnu.org>
10917
10918         * configure: Filter /etc and /usr/etc from path.
10919
10920         * xargs.c (wait_for_proc): Fix handling of child exit status.
10921         (main): Exit with a nonzero status if any child did.
10922
10923         * pred.c (launch): Flush stdout and stderr before forking.
10924
10925         * fstype.c (filesystem_type) [FS_MNTENT]: Skip entries of
10926         type "ignore".
10927
10928 1991-07-19  David J. MacKenzie  <djm@gnu.org>
10929
10930         * pred.c, locate.c: Use fnmatch instead of glob_match.
10931         * fnmatch.c, fnmatch.h: New files.
10932
10933         * Many files: Use string.h if STDC_HEADERS, as well as if USG.
10934
10935         * locate.c, code.c, bigram.c: Possibly use pathconf to get
10936         PATH_MAX.  Use malloc to allocate path arrays.
10937
10938         * xargs.c: Possibly use sysconf to get ARG_MAX.
10939         (env_size): Make definition unconditional.
10940         (main): Do arg_max adjustment that can't be done with
10941         preprocessor now that ARG_MAX might be a function call.
10942         (do_exec): Exit with status 126 or 127 after failed exec, for
10943         POSIX.2 draft 11.1.
10944
10945         * xargs.c, pred.c, listfile.c: Use POSIX, not UNISTD_MISSING.
10946         * wait.h: Use POSIX, not WAIT_MACROS_MISSING.
10947
10948         * COPYING: Use version 2.  Update all files.
10949
10950         * Replace Makefile and lib/Makefile with Makefile.in,
10951         lib/Makefile.in and configure.  Update README.
10952
10953 1991-04-05  David J. MacKenzie  <djm@gnu.org>
10954
10955         * Version 2.2.
10956
10957 1991-03-15  David J. MacKenzie  <djm@gnu.org>
10958
10959         * xargs.c (main): Always run the command if some args are left over.
10960         Rename some variables.
10961
10962 1991-01-18  David J. MacKenzie  <djm@gnu.org>
10963
10964         * bigram.c, code.c, locate.c: Use LIMITS_MISSING, not
10965         _POSIX_SOURCE, to decide whether to include limits.h.
10966
10967         * parser.c, pred.c, listfile.c: Use POSIX, not _POSIX_SOURCE,
10968         to decide whether to declare getpwuid and getgrgid.
10969
10970         * xargs.c: Use POSIX, not _POSIX_SOURCE, to determine whether
10971         to include memory.h.
10972
10973 1991-01-12  David J. MacKenzie  <djm@gnu.org>
10974
10975         * defs.h, find.c, parser.c, pred.c: Remove -permmask option.
10976
10977 1991-01-10  David J. MacKenzie  <djm@gnu.org>
10978
10979         * wait.h: Include sys/types.h to get pid_t.
10980
10981         * xargs.c [USG && !STDC_HEADERS]: Only include memory.h if not
10982         _POSIX_SOURCE.
10983
10984 1991-01-01  David J. MacKenzie  <djm@gnu.org>
10985
10986         * Version 2.1.
10987
10988 1990-12-26  David J. MacKenzie  <djm@gnu.org>
10989
10990         * locate.c, bigram.c, code.c: Attempt to get max. path length
10991         on more kinds of systems, incl. POSIX.
10992
10993         * pred.c, listfile.c, xargs.c: Get some decls from unistd.h,
10994         if available.
10995
10996         * find.c, defs.h: Make `cur_day_start' a time_t, not long.
10997
10998 1990-12-21  David J. MacKenzie  <djm@gnu.org>
10999
11000         * defs.h, parser.c: Remove unused field from `struct exec_t'.
11001
11002         * xargs.c: Add +no-run-if-empty option to cause the command to
11003         not be run if the input is empty.
11004
11005         * defs.h (struct exec_t): Change the array of offsets into an
11006         array of `struct path_arg'.
11007         * parser.c (insert_exec_ok): Fill in new fields, to allow "{}"
11008         to be substituted (multiple times) anywhere in an arg to -exec
11009         or -ok.
11010         * pred.c (pred_exec): Add code to substitute "{}" within args.
11011         (pred_ok): After prompting, just run pred_exec.
11012
11013 1990-12-20  David J. MacKenzie  <djm@gnu.org>
11014
11015         * fstype.c (filesystem_type) [FS_MNTENT]: Allow for optional
11016         "0x" at front of "dev=" mount option, which amd puts there but
11017         Sun automounter doesn't.
11018
11019 1990-12-15  David J. MacKenzie  <djm@gnu.org>
11020
11021         * find.c (main), util.c (usage): Make directory args optional,
11022         defaulting to ".".
11023
11024 1990-12-15  David J. MacKenzie  <djm@gnu.org>
11025
11026         * listfile.c: Define major and minor if not defined (as in POSIX).
11027
11028 1990-12-03  David J. MacKenzie  <djm@gnu.org>
11029
11030         * find.c, fstype.c, parser.c, pred.c, util.c: Flush stdout before
11031         writing to stderr, in case they have been redirected to the
11032         same file descriptor.
11033
11034         * pred.c (launch): Use POSIX wait macros from wait.h.
11035
11036         * xargs.c (print_xargs): Read from tty_stream, not stdin.
11037
11038 1990-11-20  David J. MacKenzie  <djm@gnu.org>
11039
11040         * Version 2.0.
11041
11042         * fstype.c [FS_USG_STATFS]: New code.
11043         [FS_STATFS]: For symlinks, statfs the directory the link is in
11044         instead of the link.
11045         * Various files: Conditionalize some declarations on
11046         STDC_HEADERS or _POSIX_SOURCE.
11047
11048 1990-11-16  David J. MacKenzie  <djm@gnu.org>
11049
11050         * modetype.h: New file.
11051         parser.c, pred.c: Use it.
11052
11053 1990-11-15  David J. MacKenzie  <djm@gnu.org>
11054
11055         * xmalloc.c: New file from fileutils.
11056
11057         * fstype.c (fstype_to_string): Add case for MFS.
11058         (filesystem_type): Take a pathname as a second arg.
11059         [FS_STATFS] return "unknown" instead of exiting if statfs
11060         fails because of ENOENT.
11061         * pred.c (pred_fstype): Pass the pathname.  Set current_dev.
11062         * find.c (process_path): Make root_dev local again.
11063
11064 1990-11-12  David J. MacKenzie  <djm@gnu.org>
11065
11066         * pred.c (pred_fstype): Free old fs type.
11067
11068         * fstype.c, pred.c (pred_fstype), parser.c (parse_fstype):
11069         Reread the file system type info. every time a filesystem
11070         mount point is crossed, to allow for automounting.
11071
11072         * xstrdup.c: New file from fileutils.
11073
11074         * find.c (process_path): Rename root_dev to current_dev and
11075         make it global, for -fstype.
11076
11077         * wait.h: New file taken from xargs.c.
11078
11079         * xargs.c: Make limits.h vs. sys/param.h conditional on
11080         LIMITS_MISSING instead of USG, to accommodate SVR2.
11081
11082 1990-11-08  David J. MacKenzie  <djm@gnu.org>
11083
11084         * parser.c, pred.c, listfile.c: If not _POSIX_SOURCE, declare
11085         getpwuid and getgrgid.  Use them.
11086
11087         * listfile.c: If not _POSIX_SOURCE, define S_ISDIR and
11088         S_ISBLK.  Use them.
11089
11090         * find.c: Use S_ISDIR instead of S_IFDIR, and define if not
11091         _POSIX_SOURCE.
11092
11093         * Makefile: Define AR and RANLIB and pass to child makes.
11094         lib/Makefile: Use them.
11095
11096         * xargs.c (WIFSIGNALED): Redefine so it works.
11097
11098 1990-11-05  David J. MacKenzie  <djm@gnu.org>
11099
11100         * find.c (process_path): For -xdev, process filesystem
11101         mountpoints (but don't descend them), instead of skipping them
11102         entirely.
11103
11104         * find.c, parser.c, defs.h: Add -follow predicate.
11105
11106         * xargs.c: Change ifdefs to support STDC POSIX systems.
11107
11108 1990-11-03  David J. MacKenzie  <djm@gnu.org>
11109
11110         * xargs.c (do_exec): Child process exits with status 255, not
11111         127, if command can't be run.
11112
11113 1990-11-02  David J. MacKenzie  <djm@gnu.org>
11114
11115         * xargs.c: Exit with status 127 if running commmand fails, as
11116         required by POSIX.
11117
11118         * fstype.c: Support -fstype for Ultrix (-DFS_GETMNT).
11119         Sun/BSD code is now -DFS_MNTENT.
11120
11121 1990-11-01  David J. MacKenzie  <djm@gnu.org>
11122
11123         * Reorganize into subdirectories and add xargs.  Rewrite Makefiles.
11124
11125         * find.c (process_path, main): Allow a maxdepth of 0, meaning
11126         only process command line args.
11127
11128         * parser.c, pred.c: Add -print0 predicate.
11129
11130         * xargs.c: Add -0 option and long options.  Move standard
11131         library functions into separate files.  Use error instead of
11132         fatal and fprintf/perror.  Use POSIX macros for examining exit
11133         status from wait.
11134         (read_string): New function.
11135
11136 1990-09-21  David J. MacKenzie  <djm@gnu.org>
11137
11138         * find.c (process_path): Take DEPTH as an arg instead of ROOT,
11139         and change callers.
11140
11141 1990-09-20  David J. MacKenzie  <djm@gnu.org>
11142
11143         * parser.c (parse_maxdepth): New function.
11144         * find.c (process_path): If -maxdepth was given, don't go
11145         more than that many levels deep.
11146         * defs.h: Declare maxdepth.
11147
11148 1990-09-12  David J. MacKenzie  <djm@gnu.org>
11149
11150         * parser.c: Add -not as synonym for !.
11151
11152 1990-08-26  Jim Kingdon  <kingdon@pogo.ai.mit.edu>
11153
11154         * Makefile (TAGS): New target.
11155
11156 1990-08-12  David J. MacKenzie  <djm@gnu.org>
11157
11158         * xargs.c (main): Tell getopt to not permute.
11159
11160 1990-08-04  David J. MacKenzie  <djm@gnu.org>
11161
11162         * parser.c (parse_perm), pred.c (pred_perm): Always compare
11163         bits 07777.
11164
11165         * locate.c, Makefile: Rename 'fastfind' program to 'locate',
11166         following comment in POSIX.2 draft 10 rationale for find.
11167
11168 1990-07-25  David J. MacKenzie  <djm@gnu.org>
11169
11170         * listfile.c (getuser, getgroup): Make uid and gid unsigned
11171         short, not int.
11172
11173 1990-07-16  David J. MacKenzie  <djm@gnu.org>
11174
11175         * defs.h: Don't declare fprintf and printf, in case they have
11176         prototypes in stdio.h (important for functions that use stdarg).
11177
11178 1990-07-15  David J. MacKenzie  <djm@gnu.org>
11179
11180         * parser.c (parse_and): New function, for compatibility.
11181
11182 1990-07-04  David J. MacKenzie  <djm@gnu.org>
11183
11184         * find.c (main): Only enclose expressions that produce no side
11185         effects within `( ... )'.
11186
11187 1990-07-03  David J. MacKenzie  <djm@gnu.org>
11188
11189         * parser.c (strspn): Stop when end of string reached.
11190
11191         * Version 1.2.
11192
11193         * Move version number from Makefile to new file version.c.
11194         * parser.c: Recognize new -version predicate.
11195
11196         * find.c (main): If no predicates that produce output are
11197         given, default to -print if the entire expression is true, not
11198         just the last part of an alternation.
11199         * Print the names of predicates with invalid arguments.
11200
11201 1990-07-02  David J. MacKenzie  <djm@gnu.org>
11202
11203         * pred.c: Don't check for invalid comparison types in numeric
11204         predicate functions.
11205
11206 1990-06-28  David J. MacKenzie  <djm@gnu.org>
11207
11208         * parser.c (parse_regex): Set fastmap and translate before
11209         compiling regex.
11210
11211 1990-06-25  David J. MacKenzie  <djm@gnu.org>
11212
11213         * fastfind.c (fastfind): Initialize count to 0.
11214
11215         * lib/updatedb.sh: Only do regex comparison on directories,
11216         for speed.
11217
11218         * listfile.c (list_file): Truncate user and group name to 8 chars.
11219
11220 1990-06-24  David J. MacKenzie  <djm@gnu.org>
11221
11222         * Version 1.1.
11223
11224         * Makefile [DISTFILES]: Add COPYING.
11225
11226 1990-06-22  David J. MacKenzie  <djm@gnu.org>
11227
11228         * Version 1.0.
11229
11230 1990-06-19  David J. MacKenzie  <djm@gnu.org>
11231
11232         * lib/updatedb.sh: Prune entries that match PRUNEREGEX.
11233         Split up finding files from computing bigrams.
11234         Use redirection instead of nonportable grep -s to detect sort
11235         failure.  Optionally search network filesystems as well as
11236         local ones.
11237
11238         * pred.c (pred_regex): Match against full pathname instead of
11239         just last element.
11240         * util.c (basename): Return "/", not "", if given "/".
11241
11242         * find.c (process_path): Fix error in handling "/" directory.
11243
11244 1990-06-18  David J. MacKenzie  <djm@gnu.org>
11245
11246         * parser.c [STRSPN_MISSING] (strspn): New function.
11247
11248 1990-06-17  David J. MacKenzie  <djm@gnu.org>
11249
11250         * listfile.c: New file.
11251         * parser.c (parse_ls): New function.
11252         * pred.c (pred_ls): New function.
11253
11254         * find.c (main): Remove interface to fastfind, to prevent
11255         conflict with POSIX syntax.
11256         * util.c (usage): Remove fastfind syntax from message.
11257         * fastfind.c (main): New function.
11258         * Makefile: Make fastfind a separate program.
11259
11260         * find.c (main): Print correct message if a predicate arg is
11261         missing.
11262
11263         * parser.c (insert_exec_ok): Make args that start with a ';' but
11264         contain other characters not terminate the command.
11265
11266 1990-06-15  David J. MacKenzie  <djm@gnu.org>
11267
11268         * fstype.c: If MOUNTED isn't defined but MNT_MNTTAB is, use it
11269         instead.  True for HP/UX, at least.
11270
11271 1990-06-14  David J. MacKenzie  <djm@gnu.org>
11272
11273         * savedir.c: New file; now find won't run out of file
11274         descriptors in deep trees.
11275         * find.c (process_path): Use savedir.
11276
11277 1990-06-09  David J. MacKenzie  <djm@gnu.org>
11278
11279         * parser.c (parse_permmask): Allow symbolic mode masks.
11280         (parse_perm): Free 'struct change' when done with it.
11281         (get_oct): Function removed.
11282
11283         * find.c (process_path): Allow arbitrarily-long filenames.
11284         More efficient string copying.  Initialize perm_mask to 07777
11285         instead of -1.
11286
11287 1990-06-07  David J. MacKenzie  <djm@gnu.org>
11288
11289         * Makefile, find.c: Use DIRENT to control whether <dirent.h>
11290         is used.
11291
11292 1990-05-31  David J. MacKenzie  <djm@gnu.org>
11293
11294         * parser.c (parse_regex): New function.
11295         * pred.c (pred_regex): New function.
11296
11297         * fstype.c (read_mtab): If mtab entry has a "dev=" option
11298         (like in SunOS 4.1), use it, so there is no need to stat the
11299         special file later on.
11300         (xatoi, strstr): New functions.
11301
11302 1990-05-21  David J. MacKenzie  <djm@gnu.org>
11303
11304         * lib/updatedb.sh: Put BINDIR in PATH.
11305
11306         * fstype.c: Do nothing if MNTENT_MISSING is defined.
11307
11308         * fstype.c: New file.
11309         * parser.c (parse_fstype): New function.
11310         * pred.c (pred_fstype): New function.
11311
11312         * parser.c (parse_newer): Failure to stat -newer file is a
11313         fatal error.
11314
11315         * pred.c (pred_ok): Flush output before reading.  Use getchar
11316         instead of scanf.
11317
11318         * pred.c (pred_prune): Return false if -depth given.
11319         * find.c: Apply the predicates to the dir when -depth and
11320         -prune are given.
11321
11322 1990-05-20  David J. MacKenzie  <djm@gnu.org>
11323
11324         * pred.c (pred_prune): Set new global var `stop_at_current_level'.
11325         * find.c (process_path): Test and reset it.
11326
11327 1990-05-18  David J. MacKenzie  <djm@gnu.org>
11328
11329         * modechange.c, modechange.h: New files.
11330         * parser.c (parse_perm): Use mode_compile and mode_adjust to
11331         parse arg, to allow symbolic mode for POSIX.
11332
11333 1990-05-17  David J. MacKenzie  <djm@gnu.org>
11334
11335         * parser.c (get_oct): Don't consider an empty string a valid number.
11336
11337         * parser.c (parse_perm): If arg starts with '-', set flag bit
11338         for special comparison (POSIX).
11339         * pred.c (pred_perm): If flag bit set, compare s[ug]id &
11340         sticky bits as well, and return true if the given perms are
11341         set, ignoring other bits.
11342
11343         * find.c: New global var `exit_status'.  Use it.  (POSIX)
11344         * parser.c: Set `exit_status' if lstat on -newer file fails.
11345
11346         * fastfind.c: New file.
11347         * find.c (main): Call fastfind if given only 1 arg.
11348         * util.c (usage): Update message.
11349         * lib/{Makefile,updatedb.sh,bigram.c,code.c}: New files.
11350         * Makefile: Add 'all' and 'install' targets.
11351
11352 1990-05-16  David J. MacKenzie  <djm@gnu.org>
11353
11354         * parser.c (parse_nogroup, parse_nouser): Implement.
11355         * pred.c (pred_nogroup, pred_nouser): Implement.
11356
11357 1990-05-14  David J. MacKenzie  <djm@gnu.org>
11358
11359         * find.c: Add variable `stay_on_filesystem' for -xdev.
11360         (process_path): Take an arg determining whether this call is
11361         the root of a tree.  Use lstat instead of stat.  If
11362         stay_on_filesystem, don't process a dir on a different
11363         filesystem.
11364
11365         * parser.c (parse_newer): Use lstat instead of stat.  Is this right?
11366         (parse_xdev): Set stay_on_filesystem.
11367
11368         * parser.c: Add dummy parse_nogroup, parse_nouser,
11369         parse_prune, and parse_xdev; to be written later.
11370         * pred.c: Add dummy pred_nogroup, pred_nouser, pred_prune.
11371
11372         * find.c: Support System V directory library/headers.
11373
11374         * find.c (process_path): Don't continue with a file that stat
11375         fails on.
11376
11377         * defs.h, parser.c, pred.c: Change 'u_long' and 'u_short' to
11378         'unsigned long' and 'unsigned short'.
11379         * find.c, defs.h: Remove 'convert_glob' variable.
11380         * parser.c (parse_fullregex): Function removed.
11381         (parse_name): Remove regular expression code.
11382         (parse_type): Recognize sockets.
11383         Add code to check for missing arguments to many parse_* functions.
11384         * pred.c (pred_name): Use glob_match instead of regex.
11385
11386 1990-05-13  David J. MacKenzie  <djm@gnu.org>
11387
11388         * Replace fprintf, simple_error, and mem_error with error and
11389         usage.
11390
11391         * Fix string header includes for USG.
11392
11393 1990-03-27  David J. MacKenzie  <djm@gnu.org>
11394
11395         * defs.h: Change some #defines to enums.
11396
11397 1990-03-25  David J. MacKenzie  <djm@gnu.org>
11398
11399         * find.c (main): Don't take basename of argv[0].
11400
11401         * util.c (xmalloc): New function.
11402         * find.c, parser.c, utils.c: Use xmalloc instead of malloc.
11403
11404         * pred.c: Remove emulation of regex for BSD and use GNU
11405         library version in regcmp.c instead.
11406         * parser.c: Remove emulation of regcmp for BSD and use GNU
11407         library version in regcmp.c instead.
11408         * Makefile: Link with regex.o and regcmp.o.
11409         Add a DISTFILES macro and dist target.
11410
11411         * Indent source code.  Move RCS logs to this file.
11412
11413 1990-03-21  David J. MacKenzie  <djm@gnu.org>
11414
11415         * xargs.c: Indent.  Comment and rename some global variables.
11416         (main): Use getopt to parse options.  Open new global var
11417         `tty_stream' to /dev/tty if querying requested.
11418         (print_args): Read response from tty_stream, not stdin.
11419         (xmalloc): New function.
11420         Global: Use xmalloc instead of malloc.
11421         (usage): Revise message.
11422
11423 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11424
11425         * pred.c: added guts to pred_size
11426
11427 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11428
11429         * pred.c: added guts to perm and permmask.
11430
11431 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11432
11433         * pred.c: made pred_name only look at the last component of
11434         the path.
11435
11436 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11437
11438         * pred.c: added guts to name.  useds regex and regcmp to do
11439         regular expression handling.
11440
11441 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11442
11443         * pred.c: added predicate newer
11444
11445 1987-02-20  Eric B. Decker <cire@soe.ucsc.edu>
11446
11447         * pred.c: added guts to pred_ok
11448
11449 1987-02-19  Eric B. Decker <cire@soe.ucsc.edu>
11450
11451         * pred.c: finished exec.
11452
11453 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11454
11455         * parser.c: added guts to parse_size
11456
11457 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11458
11459         * parser.c: added guts of perm and permmask.  added getoct
11460         routine for perm and permmask
11461
11462 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11463
11464         * parser.c: added -fre, -fullregex predicate to turn off
11465         globbing conversion
11466
11467 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11468
11469         * parser.c: reworked name so the regexpr pattern includes $ at
11470         the end to force globbing to work correctly.  End of the
11471         pattern refers to the end of the filename.
11472
11473 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11474
11475         * parser.c: added guts to name.  uses a conversion from
11476         globbing to regexp format.  uses regex and regcmp to actually
11477         to the comparison.
11478
11479 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11480
11481         * parser.c: added predicate newer
11482
11483 1987-02-20  Eric B. Decker <cire@soe.ucsc.edu>
11484
11485         * parser.c: added ok guts.  consolidated exec and ok to using
11486         insert_exec_ok
11487
11488 1987-02-19  Eric B. Decker <cire@soe.ucsc.edu>
11489
11490         * parser.c: minor bug in -fulldays predicate parser.  It
11491         should have set the flag full_days to true.
11492
11493 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11494
11495         * find.c: changed where we are setting perm_mask to -1.  need
11496         to make sure that this happens before every apply_predicate.
11497
11498 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11499
11500         * find.c: added error checking for no paths.  better error
11501         message if illegal ordering.
11502
11503 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11504
11505         * find.c: added global convert_glob
11506
11507 1987-02-22  Eric B. Decker <cire@soe.ucsc.edu>
11508
11509         * defs.h: added definition of BLKSIZE for size
11510
11511 1987-02-21  Eric B. Decker <cire@soe.ucsc.edu>
11512
11513         * defs.h: added global convert_glob for name
11514
11515         -----
11516
11517         Copyright (C) 1987, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
11518         1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008,
11519         2009, 2010 Free Software Foundation, Inc.
11520
11521         Copying and distribution of this file, with or without
11522         modification, are permitted provided the copyright notice
11523         and this notice are preserved.