use Pre-Depends: ${shlibs:Pre-Depends}
[findutils.git] / ChangeLog
blobb0de6e5e825daf43dcc416515c6d9678d92bbb68
1 Thu Nov  3 09:23:33 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
3         * Version 4.1.
5         * locate/Makefile.am: Move updatedb from LIBSCRIPTS to SCRIPTS.
7         * Makefile.am (distname): Change distribution name from find to
8           findutils.
10         * testsuite/config/unix.exp: Don't abuse xfail; simulate it correctly.
12         * locate/Makefile.am (CLEANFILES): Fix typo.
14 Wed Nov  2 15:11:52 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
16         * The big 4 0.
18         * lib/listfile.c find/defs.h (list_file): Take a stream arg.
19         * find/pred.c (pred_ls): pass it.
20         * find/parser.c pred.c defs.h (parse_fls, pred_fls): New functions.
22 Tue Oct 25 16:09:04 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
24         * find/pred.c (pred_fprintf): Flush output after \c.  From Chapman
25         Flack.
27         * find/parser.c (insert_fprintf): Warn about unrecognized \ and %
28         sequences.
30 Tue Oct 18 00:03:10 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
32         * find/defs.h parser.c pred.c tree.c util.c: Globally change
33         "victim" to "primary".
35         * find/parser.c (insert_fprintf): For 'c' format, don't lose the
36         need_stat information.  From Chapman Flack.
38         * doc/find.texi perm.texi: New files.
39         * configure.in: Configure the doc directory.
41         * find/pred.c (pred_regex): Check that the regex matched the whole
42         file name.
44 Wed Oct 12 17:13:47 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
46         * find/find.c (main): Tell what the invalid arg is.
47         From Kaveh Ghazi.
49 Fri Oct  7 12:33:24 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
51         * find/parser.c: Add -mount as an alias for -xdev.
52         From Klaus.Steinberger@physik.uni-muenchen.de (Klaus Steinberger).
54         * lib/modechange.c: Make umask_value unsigned short.
56         * xargs/xargs.c: Use symbolic constants in longopts.
57         From Chapman Flack.
59 Wed Oct  5 11:23:09 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
61         * xargs/xargs.c (main, read_line, read_string, do_exec): Pass 
62           along the lengths of the args.
63           (main): Calculate length of replace_pat.
64           (push_arg, do_insert): Use those lengths instead of calculating
65           them. 
67 Tue Oct  4 10:02:05 1994  David MacKenzie  <djm@churchy.gnu.ai.mit.edu>
69         * locate/updatedb.sh Makefile.in: Add substitutions to get
70           the transformed program names.
72         * xargs/xargs.c: Put back the global variables for now.
73         Rename some variables.  Increase default args_per_exec.
74         Use boolean where applicable.
75         (main): Reduce default arg_max by 2048 for POSIX.2.
76         (read_string): Don't check EOF string.
77         (read_line, read_string): Take initial args size into account.
79 Sat Oct  1 17:43:13 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
81         * find/pred.c (launch): Use pid_t.
83         * xargs/xargs.c (EOF_STR): Define and use.
84         [__STDC__]: Delcare xrealloc and xmalloc using void *.
85         * find/defs.h: Likewise.
87         * find/defs.h: Only declare stpcpy if !HAVE_STPCPY.
89         * xargs/xargs.c: Replace most global variables with structure
90           pointers passed as arguments.  Use pid_t.
91         * lib/wait.h: Include sys/wait.h if HAVE_SYS_WAIT_H.
92         * configure.in: Call AC_TYPE_MODE_T and AC_HEADER_SYS_WAIT.
94         * xargs/xargs.c: Improve paging performance and memory
95           fragmentation by building command arguments in a pre-allocated
96           buffer and re-implementing the child pid list as an expandable
97           array.  From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
99 Thu Sep 29 11:38:07 1994  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
101         * xargs/xargs.c [__STDC__]: Prototype declarations.
103 Wed Sep 28 11:25:53 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
105         * find/fstype.c [AFS, __STDC__]: Fix definition of _VICEIOCTL.
107 Tue Sep 27 08:14:27 1994  David MacKenzie  <djm@churchy.gnu.ai.mit.edu>
109         * find/fstype.c (fstype_to_string): Add more cases.  Use
110           INITMOUNTNAMES if defined.
111         * find/defs.h: Change boolean typedef from char to int.
112         * configure.in: Check for mktime.
114 Tue Sep 27 01:20:28 1994  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
116         * configure.in: Add AC_HEADER_STAT.
117         * lib/listfile.c, lib/modetype.h: Add STAT_MACROS_BROKEN.
119         * find/pred.c: Move the inclusion of defs.h ahead of the first
120           test of _POSIX_VERSION.
122         * lib/xgetcwd.c: Remove _POSIX_VERSION, rely only on HAVE_GETCWD.
124 Mon Sep 26 16:43:01 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
126         * configure.in: Add AC_CONFIG_HEADER.
127         * find/*.c locate/*.c xargs/*.c: Include config.h.
128         * locate/updatedb.sh: Add --version; --old -> --old-format.
130 Sun Sep 25 23:43:37 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
132         * find/* [__STDC__]: Prototype declarations.
134         * locate/updatedb.sh: Account for renaming code and frcode.
136         * find/find.c (process_path): Store dev and ino of directories in
137           current branch to avoid symlink loops.  From DJ Delorie
138           <dj@ctron.com>.
139           (process_dir): If following symlinks, don't cd to ..; instead,
140           cd to the starting directory and then to the parent directory.
141           (main) [HAVE_FCHDIR]: Save the dev, ino of the starting directory.
142           (process_top_path) [HAVE_FCHDIR]: Use it.
143         * find/pred.c (launch) [HAVE_FCHDIR]: Likewise.
144         * defs.h [HAVE_FCHDIR]: Declare starting_desc instead of starting_dir.
145         * configure.in: Check for dev_t, ino_t, fchdir, fcntl.h.
147 Fri Sep 23 11:55:38 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
149         * lib/listfile.c: Change #ifdef S_IFLNK to #ifdef S_ISLNK.
150         From Andreas Luik <luik@isa.de>.
152 Thu Sep 22 11:42:40 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
154         * locate/locate.c (last_literal_end): Dynamically allocate enough
155           memory for the subpattern.
157 Wed Sep 21 06:12:56 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
159         * locate/locate.c (locate): Warn if database is >8 days old.
160         From Ian Lance Taylor.
162         * xargs/xargs.c (do_exec), find/pred.c (launch): Set SIGCHLD to
163           default.  From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
164         * find/find.c pred.c util.c lib/listfile.c: Remove fflush(stdout)
165           calls before error.  error does it, and doesn't trash errno.
166           From tsi@gpu.srv.ualberta.ca (Marc Aurele La France).
168         * find/fstype.c (filesystem_type_uncached): Don't trust mtab dev
169           number on HPUX.  From Andreas Luik <luik@isa.de>.
170           (filesystem_type_uncached): Don't cache unknown file system
171           types.  From casper@fwi.uva.nl (Casper Dik).
173         * locate/updatedb.sh: Collect results in temp file and rename it
174           atomically.  From Andreas Luik <luik@isa.de>.
176         * xargs/xargs.c (parse_num): Print a long using %ld.  From Jim
177           Meyering.
179         * find/defs.h find.c parser.c pred.c util.c, lib/nextelem.c:
180           Emulate strchr and strrchr with index and rindex, not vice versa.
182         Remove man directory; move man pages to the directories of the
183         programs they document.
185         * locate/frcode.c: Renamed from code.c.
186         * locate/frcode.c (put_short): Renamed from puthalfword.
187         * locate/locate.c (get_short): Renamed from gethalfword.
188         (last_literal_end): Renamed from patprep.
189         (locate): Recognize old-format databases too.
190         * locate/locatedb.h: Add defines for old-format databases.
191         * locate/bigram.c locate/code.c: Put back programs to create
192         old-format databases.
193         * locate/updatedb.sh: Take --old option to use them.
195 Tue Sep 20 15:41:11 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
197         * configure.in: Update for Autoconf v2.
198         * find/pred.c lib/savedir.c: Use new symbols for dir header.
199         * locate/updatedb.sh: Add --help option.
201 Sun Feb 13 11:21:58 1994  Jim Meyering  (meyering@comco.com)
203         * man/Makefile.in [man1ext, man5ext]: Set man5ext (not man1ext) to 5.
205 Sun Aug  1 22:30:55 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
207         * bigram.c: File removed.
208         * getline.c, memcmp.c, locatedb.h, updatedb.1, locatedb.5: New files.
209         * updatedb.sh: Take command line options.
210         Don't do bigram compression.
211         * code.c, locate.c: Don't do bigram compression.
212         Write and read counts in network byte order.
213         Handle arbitrarily long paths.
214         Use a magic number at the start of the databases.
216 Thu Jul 29 20:44:53 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
218         * Makefile.in (config.status): Run config.status --recheck, not
219         configure, to get the right args passed.
221 Thu Jul 22 12:53:12 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
223         * listfile.c (list_file): Print inode as a long.
225 Wed Jul 14 14:14:45 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
227         * fstype.c [STDC_HEADERS]: Include stdlib.h.
229         * Move unistd.h include from parser.c and pred.c to defs.h.
231 Wed Jun 30 14:14:47 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
233         * updatedb.sh: Construct PRUNEREGEX from PRUNEPATHS with sed.
234         Prune /afs.  Change NFSUSER to NETUSER and NFSPATHS to NETPATHS.
236 Tue Jun 29 12:19:58 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
238         * pred.c (pred_fprintf): Abort in switch if `c' is not A, C, or T.
240 Mon Jun 28 00:18:52 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
242         * fstype.c (in_afs) [AFS]: New function, derived from code by
243         Sanjay Ramamurthy <ramams@rpi.edu>.
244         (filesystem_type_uncached) [AFS]: Call it if the fs type is
245         otherwise unknown.
247         * parser.c (parse_size): Recognize b and w suffixes for dd
248         compatibility. 
250         * code.c (puthalfword): New function.
251         (main): Call it.
252         * locate.c (gethalfword): New function.
253         (locate): Call it.
254         From ifado!wb@germany.eu.net (Wilhelm B. Kloke).
256         * listfile.c: Include pathmax.h.
257         (get_link_name): Always allocate PATH_MAX + 1 bytes for
258         readlink buffers.
259         * pred.c (pred_fprintf, insert_lname): Call get_link_name.
261         * fstype.c (filesystem_type, filesystem_type_uncached),
262         listfile.c (list_file): Take an arg for the path to access.
263         * pred.c (pred_ls, pred_fstype, pred_fprintf): Pass it.
265         * find.c (process_dir): Renamed from scan_directory.
267         Changes from jrs@world.std.com (Rick Sladkey) to chdir into
268         subdirectories instead of using string concatenation, for speed:
269         * find.c (process_top_path): New function.
270         (main): Call it, and xgetcwd.
271         (process_path, scan_directory): Take new arg, the pathname
272         relative to ".".  Use it and pass it on.
273         * pred.c (pred_and, pred_comma, pred_negate, pred_or,
274         pred_xtype, pred_fprintf, pred_empty, insert_lname):
275         access rel_pathname instead of pathname.
276         (launch): chdir to starting_dir.
277         * defs.h: Declare rel_pathname and starting_dir.
278         * find.c: Define them.
280         * xgetcwd.c: New file.
282         * updatedb.sh: Recognize -fstype NFS as well as nfs.
283         * locate.c (patprep): Skip trailing character classes correctly.
284         From luik@pharao.stgt.sub.org (Andreas Luik).
286         * parser.c (parse_group): Make gid a gid_t, not short or int.
287         (parse_nogroup): Cast gid to unsigned when using it as an array index.
288         (parse_user, parse_nouser): Similar changes for uid.
289         * defs.h: Use uid_t and gid_t.
291         * parser.c (parse_help): New function.
292         (parse_table):  Add --version, -help, and --help options.
293         Rename struct parser_table_t to struct parser_table.
294         (parse_version): Exit after printing message, on
295         stdout not stderr.
297         * xargs.c, locate.c (main, usage): Add --version and --help
298         options.
300 Wed Mar 31 22:39:57 1993  Jim Meyering  (meyering@comco.com)
302         * parser.c: Define isascii macro to be 1 also if STDC_HEADERS.
303         * xargs.c: Ditto.
305 Wed Mar 31 16:04:07 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
307         * pred.c (pred_fprintf): If curdepth is 0, don't nuke
308         segment->text; nuke cp.
310 Mon Mar 29 15:57:20 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
312         * Version 3.8.
314 Fri Mar 26 16:36:59 1993  David J. MacKenzie  (djm@hal.gnu.ai.mit.edu)
316         * pred.c (pred_ilname, pred_iname, pred_ipath): New functions.
317         (pred_table): Add them.
318         (insert_lname): New function.
319         (pred_lname): Call it.
320         * parser.c (parse_ilname, parse_iname, parse_ipath,
321         parse_iregex): New functions.
322         (parse_table): Add them.
323         (insert_regex): New function.
324         (parse_regex): Call it.
326         * fstype.c (filesystem_type): Cache previous result.
327         (filesystem_type_uncached): New function.
328         pred.c (pred_fstype, pred_fprintf): Adjust callers to not cache.
330         * parser.c: Don't define const.
332         * fstype.c [FSTYPE_STATFS] (fstype_to_string): #ifdef
333         MOUNT_PC for 386bsd.
335 Thu Mar 25 18:32:24 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
337         * parser.c (parse_regex): If ignore_case, set up a translate
338         table for the regex.
340         * defs.h: Include string.h or strings.h.
341         * find.c fstype.c parser.c pred.c util.c: Don't.
343         * nextelem.c [index]: Don't redefine.
345 Wed Mar 24 17:47:10 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
347         * xargs.c (wait_for_proc): Exit with a nonrunnable command's exit
348         status, not the wait status value.  From
349         Andreas Schwab <schwab@lamothe.informatik.uni-dortmund.de>.
351         * parser.c (make_segment, insert_fprintf), pred.c
352         (pred_fprintf): Add '%F' to print filesystem type.
354         * parser.c (parse_fprintf): Check if second arg is missing.
356 Tue Mar 23 13:18:08 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
358         * pred.c (pred_fprintf): For %P, don't move past an assumed
359         slash if the ARGV element ends with one, because in that case
360         we didn't add one.
362         * parser.c (parse_printf): Check for missing arg.
363         From smj@cats.com (Steve James).
365         * parser.c: Add #ifdef around atol decl for Linux.
367 Fri Dec 11 08:17:07 1992  Jim Meyering  (meyering@comco.com)
369         * defs.h: Remove dcl of process_path.
370         * find.c: Put dcl of process_path here.  Make a few functions
371         and file-scope variables static.
372         * parser.c, tree.c: Declare most functions static.
374         * locate.c: Use `required_argument' macro in dcl of longopts.
375         * bigram.c, code.c, locate.c, xargs.c: Make most functions and
376         file-scope variables static.
378         * parser.c, xargs.c: Guard ctype.h macros with isascii.
380         * find.c: Add declarations for opt_expr and mark_stat.
381         * tree.c (set_new_parent): Add empty default clause to enum swicth.
382         * locate.c (main): Parenthesize for gcc -Wall.
383         * xargs.c (push_arg): Parenthesize for gcc -Wall.
385 Tue Nov 24 08:04:36 1992  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
387         * find.c, fstype.c, parser.c, pred.c, util.c, listfile.c,
388         nextelem.c, xargs.c, bigram.c, code.c, locate.c: Use
389         HAVE_STRING_H, not USG.
391         * pred.c: Use SYSDIR and NDIR instead of USG.
392         Define direct as dirent, not vice-versa.
394 Fri Oct  9 02:15:17 1992  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
396         * xargs.c (main): Set orig_arg_max before possibly cutting
397         down arg_max.
399 Thu Sep 10 19:25:35 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
401         * parser.c: Always declare getgrent and getpwent.
403 Mon Aug 24 12:54:16 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
405         * xargs.c: Include sys/types.h before unistd.h.  Use ARG_MAX
406         if it's defined.
407         * find.c, nextelem.c: Add missing decls.
408         From bde@runx.oz.au (Bruce Evans).
410 Thu Jul 23 15:06:07 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
412         * Version 3.7.
414 Tue Jul 14 00:16:52 1992  David J. MacKenzie  (djm@apple-gunkies.gnu.ai.mit.edu)
416         * pathmax.h: New file.
417         * bigram.c, code.c, locate.c: Use it.  Use xmalloc instead of malloc.
419 Sat Jul 11 22:31:46 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
421         * nextelem.c: New file.
422         * locate.c (main): Use it to support a database path.
424 Fri Jul  3 02:12:09 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
426         * listfile.c, pred.c: Change FOO_MISSING to HAVE_FOO.
428         * parser.c [_POSIX_SOURCE]: Define endpwent and endgrent as empty.
429         * listfile.c [!HAVE_ST_RDEV]: Print blanks.
430         From Jeffrey Siegal (jbs@congruent.com).
432         * locate.c (locate): Check for EOF at top of loop, not middle.
433         * updatedb.sh: Remove duplication hack.
434         From Jay Plett.
436 Wed Jun 10 15:04:23 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
438         * pred.c (pred_amin, pred_atime, pred_cmin, pred_ctime,
439         pred_mmin, pred_mtime, pred_used): Cast l_val to time_t before
440         comparing it to a time_t.  From fpm@crash.cts.com (Frank Maclachlan).
442         * locate.c (locate): Take the database path as an arg.
443         (main): Take an option to specify the database path.
444         (usage): New function.
446         * updatedb.sh: Don't read from and write to the file-list file
447         in the same statement.
449 Thu Jun  4 15:27:07 1992  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
451         * Version 3.6.
453 Wed May 20 00:05:13 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
455         * xargs.c: Include sys/param.h before limits.h, not after.
457         * listfile.c: If we include a header file specifically to get
458         major et al., assume we have them.
460 Tue May 12 01:09:33 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
462         * locate.c (locate): Don't give fnmatch FNM_PERIOD (it's useless).
464         * parser.c (parse_path): New function.
465         * pred.c (pred_path): New function.
466         * tree.c (opt_expr): Move -path like -name.
468         * updatedb.sh: Duplicate the last entry in the file list so it
469         doesn't get ignored.
471 Mon May 11 22:24:40 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
473         * updatedb.sh: Allow many vars to be overridden in the environment.
475         * locate.c, updatedb.sh: FCODES -> LOCATE_DB.
477 Wed Apr 22 15:24:00 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
479         * updatedb.sh: Use binprefix when calling find.
481         * locate.c (locate): Use LOCATE_DB environ variable if set.
483         * find.c (scan_directory): Allow for dirs having negative
484         st_size (NFS mount points on VAX 4.3BSD+NFS).
485         From metcalf@catfish.lcs.mit.edu (Chris Metcalf).
487 Sat Apr 18 15:42:52 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
489         * fstype.c: Rename FS_* to FSTYPE_*.  Support Dynix's
490         name for the mount table.
492 Sun Mar  8 23:21:25 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
494         * listfile.c (list_file): Allow a slop factor for deciding what
495         is in the future.
497 Tue Feb 25 16:24:15 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
499         * Version 3.5.
501 Sat Feb 22 08:43:01 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
503         * tree.c (set_new_parent): Initialize need_stat field.
505         * defs.h (struct predicate): Define p_name unconditionally.
507 Fri Feb 21 15:28:43 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
509         * tree.c (opt_expr): Preserve expression precedence when
510         rearranging expression tree. 
511         (set_new_parent): New function.
512         (mark_stat): Set need_stat whether or not it's been set
513         earlier in the expression.
514         All from Tim Wood.
516 Mon Feb 17 10:20:38 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
518         * updatedb.sh: Use current value of TMPDIR if already set.
519         From Dana Jacobsen (jacobsd@cs.orst.edu).
521         * pred.c: Include pwd.h and grp.h after unistd.h, not before.
522         Apparently needed on ISC 2.2.  From Juha Takala <jta@piuha.sah.vtt.fi>.
524 Thu Feb 13 10:52:31 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
526         * modetype.h: Don't define S_IFMT, because doing so breaks pred_type
527         on plain POSIX.1 systems.
529 Sat Feb  8 00:58:13 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
531         * Version 3.4.
533 Fri Feb  7 21:35:58 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
535         * defs.h: Don't declare process_path.
536         * find.c [DEBUG_STAT] (debug_stat): New function.
537         (main) [DEBUG_STAT]: Call it.
538         (process_path): Return a value.
539         (scan_directory): Count number of subdirs seen so far.
540         * parser.c (pred_and, pred_close, pred_comma, pred_negate,
541         pred_open, pred_or): Don't need stat.
542         * util.c (get_new_pred_chk_op): Implicit AND doesn't need stat.
544 Fri Jan 17 21:51:18 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
546         * Version 3.3.
548 Tue Dec 24 02:16:49 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
550         * wait.h, listfile.c, xargs.c, bigram.c, code.c, locate.c:
551         Change POSIX ifdefs to HAVE_UNISTD_H and _POSIX_VERSION. 
553 Wed Dec 18 16:37:17 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
555         * listfile.c: Use MAJOR_IN_MKDEV and MAJOR_IN_SYSMACROS to
556         find major and minor.
558         * code.c, bigram.c, locate.c, xargs.c: Use LIMITS_H_MISSING
559         instead of LIMITS_MISSING.
561 Sat Dec  7 06:13:26 1991  David J. MacKenzie  (djm at frob.eng.umd.edu)
563         * parser.c (parse_prune): No stat needed for prune.
564         (insert_fprintf, make_segment): Possibly no stat needed,
565         depending on which information is printed.
567         * xargs.c (usage): Document long-named options as starting
568         with -- instead of +.
570         * parser.c [!POSIX]: Declare getgrent and getpwent.
572         * fstype.c (filesystem_type): Only check MNTTYPE_IGNORE if
573         it's defined.  From Rainer Orth.
575         * Add leaf node optimization suggested by Matthew Farwell
576         <dylan@ibmpcug.co.uk>.  Add -noleaf option to disable it.
577         Adapt parts of Tim Wood's work to current sources.
578         * find.c (scan_directory): New function, from code in process_path.
579         (process_path): Take an arg indicating whether the pathname
580         is a leaf non-directory, instead of a redundant current level.
581         * parser.c (parse_noleaf): New function.
582         (parse_print, parse_name, etc.): Set need_stat = false.
584 Wed Nov  2 13:34:32 1990  Tim Wood at home      (tim at axolotl.UUCP)
586         * pred.c: Call stat() if an AND, OR or NOT node tells you to.
587         * find.c: Limit calls to stat().
589 Wed Oct  3 17:30:39 1990  Tim Wood at home      (tim at axolotl.UUCP)
591         * tree.c (opt_expr): New function to rearrange predicates within
592         a conjunction/disjunction so that non-inode (-name, -regex) ones
593         are executed first.  
594         * pred.c: Make some supporting tree structure changes for opt_expr().
596 Sat Dec  7 00:36:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
598         * xargs.c (do_exec): Simplify test for which exit
599         status to use if exec fails.
601 Fri Dec  6 18:24:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
603         * listfile.c (list_file): POSIX_ME_HARDER -> POSIXLY_CORRECT.
605 Thu 24 Oct 1991 21:33:21  Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
607         * pred.c (pred_fprintf): Don't print "\n" unless it's in the
608         format string.
610 Mon Oct 21 22:30:35 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
612         * defs.h, parser.c, pred.c: Rename some types that conflict
613         with reserved POSIX.1 namespace (ended in _t).
615 Thu Oct 17 22:39:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
617         * xargs.c: Don't determine memory.h based on POSIX, which
618         doesn't mention it.
620 Sat Oct  5 16:11:05 1991  Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
622         * parser.c (parse_perm): Parse new `-perm +mode' notation.
623         * pred.c (pred_perm): Interpret same.
625 Fri Sep 13 14:58:27 1991  David J. MacKenzie  (djm at churchy.gnu.ai.mit.edu)
627         * xargs.c [POSIX]: Always use sysconf to get ARG_MAX.
629 Thu Sep  5 23:57:06 1991  David J. MacKenzie  (djm at apple-gunkies)
631         * bigram.c, code.c (main): Make path_max int, not unsigned.
632         * locate.c (main): Check for pathconf failure.
634 Thu Sep  5 11:54:44 1991 Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
636         * parser.c (insert_fprintf): Add `\\' escape and fixed `%%'
637         interpretation.
638         * pred.c (pred_fprintf): fixed off-by-one indexing problem
639         when handling [gGuU] printf formats.
641 Wed Aug 28 20:53:57 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
643         * Version 3.2.
645 Mon Aug 26 18:57:32 1991  David J. MacKenzie  (djm at pogo.gnu.ai.mit.edu)
647         * bigram.c, code.c: Fix handling of PATH_MAX.
648         Check for anomalous input line lengths.
649         From Bruce Evans.
651 Fri Aug 23 11:00:18 1991  David J. MacKenzie  (djm at apple-gunkies)
653         * pred.c (pred_fprintf): Round block number up to get K.
655 Thu Aug 22 10:46:30 1991  David J. MacKenzie  (djm at apple-gunkies)
657         * pred.c (pred_fprintf, pred_lname) [_AIX]: Allocate PATH_MAX
658         byte for link object since st_size is wrong.
660         * listfile.c (list_file): Don't convert blocks to kilobytes if
661         env. var POSIX_ME_HARDER is defined.
663         * fstype.c [FS_AIX_STATFS]: New case.
665         * configure: Make sure the sys/mount.h is the 4.4BSD version
666         with grep instead of just testing whether it exists.
668         * listfile.c (list_file): Add 1 to number of 512-byte blocks
669         before dividing to get 1K blocks (so we round up, not down).
671 Wed Aug 21 13:02:46 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
673         * Version 3.1.
675         * parser.c (parse_fprintf), pred.c (pred_fprintf): Add %k
676         conversion to print 1K blocks.
678         * listfile.c: Print counts of 1K blocks, for consistency with
679         new fileutils release.  Bad timing, there.
681         * Version 3.0.
683         * pred.c [VOID_CLOSEDIR]: Fake a return value for closedir,
684         which returns void on some systems, like Sequents.
685         * configure: Check sys/dir.h for 'void closedir'.
687 Thu Aug 15 16:07:46 1991  David J. MacKenzie  (djm at frob)
689         * modetype.h: Define POSIX.1 stat stuff if missing.
690         * pred.c, parser.c, find.c, fstype.c: Don't define it.
691         * updatedb.sh: Use a variable substitution method like configure's.
692         * Makefile.in: Add datadir variable to separate programs from
693         data file.
695         * parser.c, pred.c: Rename -fulldays to -daystart.
697         * defs.h, find.c, parser.c, pred.c: Add many new predicates
698         from Jay Plett (jay@princeton.edu).
700 Wed Aug 14 14:37:06 1991  David J. MacKenzie  (djm at bleen)
702         * parser.c (parse_size), pred.c (pred_size), defs.h (struct
703         size_t): Allow `k' to follow number to measure size in Kbytes.
704         * parser.c (parse_size, get_num, insert_num), defs.h (struct
705         size_t): Use enum comparison_type instead of short.
707 Fri Aug  9 00:49:32 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
709         * xargs.c (read_line): Use isblank, to support POSIX locales.
711         * fstype [FS_STATVFS]: New code for SVR4, from slootman@dri.nl
712         (Paul Slootman).
713         * configure: Figure out when to use it.
715         * configure: Check for st_blocks in struct stat.
716         * listfile.c (ST_NBLOCKS): New macro.
717         (list_file): Print file's block count.
718         Use S_ISLNK instead of S_IFLNK.
719         * fileblocks.c: New file, from fileutils.
721 Thu Aug  8 17:20:19 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
723         * parser.c, pred.c [CACHE_IDS]: Optional code to turn uid and
724         gid lookups into table lookups.
726 Wed Aug  7 00:22:29 1991  David J. MacKenzie  (djm at wheat-chex)
728         * configure, Makefile.in's: Support +srcdir option via VPATH.
729         Clean up clean targets.
731 Sat Jul 20 01:11:51 1991  David J. MacKenzie  (djm at apple-gunkies)
733         * configure: Filter /etc and /usr/etc from path.
735         * xargs.c (wait_for_proc): Fix handling of child exit status.
736         (main): Exit with a nonzero status if any child did.
738         * pred.c (launch): Flush stdout and stderr before forking.
740         * fstype.c (filesystem_type) [FS_MNTENT]: Skip entries of
741         type "ignore".
743 Fri Jul 19 22:53:42 1991  David J. MacKenzie  (djm at bleen)
745         * pred.c, locate.c: Use fnmatch instead of glob_match.
746         * fnmatch.c, fnmatch.h: New files.
748         * Many files: Use string.h if STDC_HEADERS, as well as if USG.
750         * locate.c, code.c, bigram.c: Possibly use pathconf to get
751         PATH_MAX.  Use malloc to allocate path arrays.
753         * xargs.c: Possibly use sysconf to get ARG_MAX.
754         (env_size): Make definition unconditional.
755         (main): Do arg_max adjustment that can't be done with
756         preprocessor now that ARG_MAX might be a function call.
757         (do_exec): Exit with status 126 or 127 after failed exec, for
758         POSIX.2 draft 11.1.
760         * xargs.c, pred.c, listfile.c: Use POSIX, not UNISTD_MISSING.
761         * wait.h: Use POSIX, not WAIT_MACROS_MISSING.
763         * COPYING: Use version 2.  Update all files.
765         * Replace Makefile and lib/Makefile with Makefile.in,
766         lib/Makefile.in and configure.  Update README.
768 Fri Apr  5 12:49:09 1991  David J. MacKenzie  (djm at apple-gunkies)
770         * Version 2.2.
772 Fri Mar 15 20:44:45 1991  David J. MacKenzie  (djm at geech.ai.mit.edu)
774         * xargs.c (main): Always run the command if some args are left over.
775         Rename some variables.
777 Fri Jan 18 03:35:57 1991  David J. MacKenzie  (djm at geech.ai.mit.edu)
779         * bigram.c, code.c, locate.c: Use LIMITS_MISSING, not
780         _POSIX_SOURCE, to decide whether to include limits.h.
782         * parser.c, pred.c, listfile.c: Use POSIX, not _POSIX_SOURCE,
783         to decide whether to declare getpwuid and getgrgid.
785         * xargs.c: Use POSIX, not _POSIX_SOURCE, to determine whether
786         to include memory.h.
788 Sat Jan 12 04:12:34 1991  David J. MacKenzie  (djm at wookumz.ai.mit.edu)
790         * defs.h, find.c, parser.c, pred.c: Remove -permmask option.
792 Thu Jan 10 04:32:52 1991  David J. MacKenzie  (djm at albert.ai.mit.edu)
794         * wait.h: Include sys/types.h to get pid_t.
796         * xargs.c [USG && !STDC_HEADERS]: Only include memory.h if not
797         _POSIX_SOURCE.
799 Tue Jan  1 23:53:32 1991  David J. MacKenzie  (djm at albert.ai.mit.edu)
801         * Version 2.1.
803 Wed Dec 26 03:25:51 1990  David J. MacKenzie  (djm at apple-gunkies)
805         * locate.c, bigram.c, code.c: Attempt to get max. path length
806         on more kinds of systems, incl. POSIX.
808         * pred.c, listfile.c, xargs.c: Get some decls from unistd.h,
809         if available. 
811         * find.c, defs.h: Make `cur_day_start' a time_t, not long.
813 Fri Dec 21 01:49:12 1990  David J. MacKenzie  (djm at egypt)
815         * defs.h, parser.c: Remove unused field from `struct exec_t'.
817         * xargs.c: Add +no-run-if-empty option to cause the command to
818         not be run if the input is empty.
820         * defs.h (struct exec_t): Change the array of offsets into an
821         array of `struct path_arg'.
822         * parser.c (insert_exec_ok): Fill in new fields, to allow "{}"
823         to be substituted (multiple times) anywhere in an arg to -exec
824         or -ok.
825         * pred.c (pred_exec): Add code to substitute "{}" within args.
826         (pred_ok): After prompting, just run pred_exec.
828 Thu Dec 20 02:32:09 1990  David J. MacKenzie  (djm at egypt)
830         * fstype.c (filesystem_type) [FS_MNTENT]: Allow for optional
831         "0x" at front of "dev=" mount option, which amd puts there but
832         Sun automounter doesn't.
834 Sat Dec 15 19:01:12 1990  David J. MacKenzie  (djm at egypt)
836         * find.c (main), util.c (usage): Make directory args optional,
837         defaulting to ".".
839 Sat Dec 15 18:36:29 1990  David J. MacKenzie  (djm at apple-gunkies)
841         * listfile.c: Define major and minor if not defined (as in POSIX).
843 Mon Dec  3 01:04:35 1990  David J. MacKenzie  (djm at alborz)
845         * find.c, fstype.c, parser.c, pred.c, util.c: Flush stdout before
846         writing to stderr, in case they have been redirected to the
847         same file descriptor.
849         * pred.c (launch): Use POSIX wait macros from wait.h.
851         * xargs.c (print_xargs): Read from tty_stream, not stdin.
853 Tue Nov 20 16:48:24 1990  David J. MacKenzie  (djm at apple-gunkies)
855         * Version 2.0.
857         * fstype.c [FS_USG_STATFS]: New code.
858         [FS_STATFS]: For symlinks, statfs the directory the link is in
859         instead of the link.
860         * Various files: Conditionalize some declarations on
861         STDC_HEADERS or _POSIX_SOURCE.
863 Fri Nov 16 12:24:43 1990  David J. MacKenzie  (djm at egypt)
865         * modetype.h: New file.
866         parser.c, pred.c: Use it.
868 Thu Nov 15 18:05:54 1990  David J. MacKenzie  (djm at apple-gunkies)
870         * xmalloc.c: New file from fileutils.
872         * fstype.c (fstype_to_string): Add case for MFS.
873         (filesystem_type): Take a pathname as a second arg.
874         [FS_STATFS] return "unknown" instead of exiting if statfs
875         fails because of ENOENT.
876         * pred.c (pred_fstype): Pass the pathname.  Set current_dev.
877         * find.c (process_path): Make root_dev local again.
879 Mon Nov 12 02:54:00 1990  David J. MacKenzie  (djm at apple-gunkies)
881         * pred.c (pred_fstype): Free old fs type.
883         * fstype.c, pred.c (pred_fstype), parser.c (parse_fstype): 
884         Reread the file system type info. every time a filesystem
885         mount point is crossed, to allow for automounting.
887         * xstrdup.c: New file from fileutils.
889         * find.c (process_path): Rename root_dev to current_dev and
890         make it global, for -fstype.
892         * wait.h: New file taken from xargs.c.
894         * xargs.c: Make limits.h vs. sys/param.h conditional on
895         LIMITS_MISSING instead of USG, to accomodate SVR2.
897 Thu Nov  8 11:52:22 1990  David J. MacKenzie  (djm at apple-gunkies)
899         * parser.c, pred.c, listfile.c: If not _POSIX_SOURCE, declare
900         getpwuid and getgrgid.  Use them.
902         * listfile.c: If not _POSIX_SOURCE, define S_ISDIR and
903         S_ISBLK.  Use them. 
905         * find.c: Use S_ISDIR instead of S_IFDIR, and define if not
906         _POSIX_SOURCE. 
908         * Makefile: Define AR and RANLIB and pass to child makes.
909         lib/Makefile: Use them.
911         * xargs.c (WIFSIGNALED): Redefine so it works.
913 Mon Nov  5 00:02:01 1990  David J. MacKenzie  (djm at apple-gunkies)
915         * find.c (process_path): For -xdev, process filesystem
916         mountpoints (but don't descend them), instead of skipping them
917         entirely. 
919         * find.c, parser.c, defs.h: Add -follow predicate.
921         * xargs.c: Change ifdefs to support STDC POSIX systems.
923 Sat Nov  3 20:18:05 1990  David J. MacKenzie  (djm at apple-gunkies)
925         * xargs.c (do_exec): Child process exits with status 255, not
926         127, if command can't be run.
928 Fri Nov  2 02:11:42 1990  David J. MacKenzie  (djm at apple-gunkies)
930         * xargs.c: Exit with status 127 if running commmand fails, as
931         required by POSIX.
933         * fstype.c: Support -fstype for Ultrix (-DFS_GETMNT).
934         Sun/BSD code is now -DFS_MNTENT.
936 Thu Nov  1 13:06:01 1990  David J. MacKenzie  (djm at egypt)
938         * Reorganize into subdirectories and add xargs.  Rewrite Makefiles.
940         * find.c (process_path, main): Allow a maxdepth of 0, meaning
941         only process command line args.
943         * parser.c, pred.c: Add -print0 predicate.
945         * xargs.c: Add -0 option and long options.  Move standard
946         library functions into separate files.  Use error instead of
947         fatal and fprintf/perror.  Use POSIX macros for examining exit
948         status from wait.
949         (read_string): New function.
951 Fri Sep 21 10:21:09 1990  David J. MacKenzie  (djm at apple-gunkies)
953         * find.c (process_path): Take DEPTH as an arg instead of ROOT,
954         and change callers.
956 Thu Sep 20 23:58:47 1990  David J. MacKenzie  (djm at apple-gunkies)
958         * parser.c (parse_maxdepth): New function.
959         * find.c (process_path): If -maxdepth was given, don't go
960         more than that many levels deep.
961         * defs.h: Declare maxdepth.
963 Wed Sep 12 02:12:31 1990  David J. MacKenzie  (djm at apple-gunkies)
965         * parser.c: Add -not as synonym for !.
967 Sun Aug 26 06:16:08 1990  Jim Kingdon  (kingdon at pogo.ai.mit.edu)
969         * Makefile (TAGS): New target.
971 Sun Aug 12 00:32:01 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
973         * xargs.c (main): Tell getopt to not permute.
975 Sat Aug  4 21:43:45 1990  David J. MacKenzie  (djm at pogo.ai.mit.edu)
977         * parser.c (parse_perm), pred.c (pred_perm): Always compare
978         bits 07777.
980         * locate.c, Makefile: Rename 'fastfind' program to 'locate',
981         following comment in POSIX.2 draft 10 rationale for find.
983 Wed Jul 25 18:45:03 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
985         * listfile.c (getuser, getgroup): Make uid and gid unsigned
986         short, not int.
988 Mon Jul 16 13:40:13 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
990         * defs.h: Don't declare fprintf and printf, in case they have
991         prototypes in stdio.h (important for functions that use stdarg).
993 Sun Jul 15 23:39:39 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
995         * parser.c (parse_and): New function, for compatibility.
997 Wed Jul  4 00:17:57 1990  David J. MacKenzie  (djm at apple-gunkies)
999         * find.c (main): Only enclose expressions that produce no side
1000         effects within `( ... )'.
1002 Tue Jul  3 01:59:39 1990  David J. MacKenzie  (djm at apple-gunkies)
1004         * parser.c (strspn): Stop when end of string reached.
1006         * Version 1.2.
1008         * Move version number from Makefile to new file version.c.
1009         * parser.c: Recognize new -version predicate.
1011         * find.c (main): If no predicates that produce output are
1012         given, default to -print if the entire expression is true, not
1013         just the last part of an alternation.
1014         * Print the names of predicates with invalid arguments.
1016 Mon Jul  2 23:48:17 1990  David J. MacKenzie  (djm at apple-gunkies)
1018         * pred.c: Don't check for invalid comparison types in numeric
1019         predicate functions.
1021 Thu Jun 28 00:34:57 1990  David J. MacKenzie  (djm at apple-gunkies)
1023         * parser.c (parse_regex): Set fastmap and translate before
1024         compiling regex.
1026 Mon Jun 25 18:08:59 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1028         * fastfind.c (fastfind): Initialize count to 0.
1030         * lib/updatedb.sh: Only do regex comparison on directories,
1031         for speed.
1033         * listfile.c (list_file): Truncate user and group name to 8 chars.
1035 Sun Jun 24 13:51:27 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1037         * Version 1.1.
1039         * Makefile [DISTFILES]: Add COPYING.
1041 Fri Jun 22 03:54:27 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1043         * Version 1.0.
1045 Tue Jun 19 03:55:28 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1047         * lib/updatedb.sh: Prune entries that match PRUNEREGEX.
1048         Split up finding files from computing bigrams.
1049         Use redirection instead of nonportable grep -s to detect sort
1050         failure.  Optionally search network filesystems as well as
1051         local ones.
1053         * pred.c (pred_regex): Match against full pathname instead of
1054         just last element.
1055         * util.c (basename): Return "/", not "", if given "/".
1057         * find.c (process_path): Fix error in handling "/" directory.
1059 Mon Jun 18 01:49:16 1990  David J. MacKenzie  (djm at apple-gunkies)
1061         * parser.c [STRSPN_MISSING] (strspn): New function.
1063 Sun Jun 17 13:54:09 1990  David J. MacKenzie  (djm at apple-gunkies)
1065         * listfile.c: New file.
1066         * parser.c (parse_ls): New function.
1067         * pred.c (pred_ls): New function.
1069         * find.c (main): Remove interface to fastfind, to prevent
1070         conflict with POSIX syntax.
1071         * util.c (usage): Remove fastfind syntax from message.
1072         * fastfind.c (main): New function.
1073         * Makefile: Make fastfind a separate program.
1075         * find.c (main): Print correct message if a predicate arg is
1076         missing. 
1078         * parser.c (insert_exec_ok): Make args that start with a ';' but
1079         contain other characters not terminate the command.
1081 Fri Jun 15 00:33:45 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1083         * fstype.c: If MOUNTED isn't defined but MNT_MNTTAB is, use it
1084         instead.  True for HP/UX, at least.
1086 Thu Jun 14 10:10:25 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1088         * savedir.c: New file; now find won't run out of file
1089         descriptors in deep trees.
1090         * find.c (process_path): Use savedir.
1092 Sat Jun  9 03:15:21 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1094         * parser.c (parse_permmask): Allow symbolic mode masks.
1095         (parse_perm): Free 'struct change' when done with it.
1096         (get_oct): Function removed.
1098         * find.c (process_path): Allow arbitrarily-long filenames.
1099         More efficient string copying.  Initialize perm_mask to 07777
1100         instead of -1.
1102 Thu Jun  7 04:22:42 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1104         * Makefile, find.c: Use DIRENT to control whether <dirent.h>
1105         is used.
1107 Thu May 31 04:46:11 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1109         * parser.c (parse_regex): New function.
1110         * pred.c (pred_regex): New function.
1112         * fstype.c (read_mtab): If mtab entry has a "dev=" option
1113         (like in SunOS 4.1), use it, so there is no need to stat the
1114         special file later on.
1115         (xatoi, strstr): New functions.
1117 Mon May 21 01:04:42 1990  David J. MacKenzie  (djm at abyss)
1119         * lib/updatedb.sh: Put BINDIR in PATH.
1121         * fstype.c: Do nothing if MNTENT_MISSING is defined.
1123         * fstype.c: New file.
1124         * parser.c (parse_fstype): New function.
1125         * pred.c (pred_fstype): New function.
1127         * parser.c (parse_newer): Failure to stat -newer file is a
1128         fatal error.
1130         * pred.c (pred_ok): Flush output before reading.  Use getchar
1131         instead of scanf.
1133         * pred.c (pred_prune): Return false if -depth given.
1134         * find.c: Apply the predicates to the dir when -depth and
1135         -prune are given.
1137 Sun May 20 19:55:30 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1139         * pred.c (pred_prune): Set new global var `stop_at_current_level'.
1140         * find.c (process_path): Test and reset it.
1142 Fri May 18 01:56:17 1990  David J. MacKenzie  (djm at abyss)
1144         * modechange.c, modechange.h: New files.
1145         * parser.c (parse_perm): Use mode_compile and mode_adjust to
1146         parse arg, to allow symbolic mode for POSIX.
1148 Thu May 17 02:07:44 1990  David J. MacKenzie  (djm at abyss)
1150         * parser.c (get_oct): Don't consider an empty string a valid number.
1152         * parser.c (parse_perm): If arg starts with '-', set flag bit
1153         for special comparison (POSIX).
1154         * pred.c (pred_perm): If flag bit set, compare s[ug]id &
1155         sticky bits as well, and return true if the given perms are
1156         set, ignoring other bits.
1158         * find.c: New global var `exit_status'.  Use it.  (POSIX)
1159         * parser.c: Set `exit_status' if lstat on -newer file fails.
1161         * fastfind.c: New file.
1162         * find.c (main): Call fastfind if given only 1 arg.
1163         * util.c (usage): Update message. 
1164         * lib/{Makefile,updatedb.sh,bigram.c,code.c}: New files.
1165         * Makefile: Add 'all' and 'install' targets.
1167 Wed May 16 23:23:35 1990  David J. MacKenzie  (djm at abyss)
1169         * parser.c (parse_nogroup, parse_nouser): Implement.
1170         * pred.c (pred_nogroup, pred_nouser): Implement.
1172 Mon May 14 00:09:35 1990  David J. MacKenzie  (djm at abyss)
1174         * find.c: Add variable `stay_on_filesystem' for -xdev.
1175         (process_path): Take an arg determining whether this call is
1176         the root of a tree.  Use lstat instead of stat.  If
1177         stay_on_filesystem, don't process a dir on a different
1178         filesystem. 
1180         * parser.c (parse_newer): Use lstat instead of stat.  Is this right?
1181         (parse_xdev): Set stay_on_filesystem.
1183         * parser.c: Add dummy parse_nogroup, parse_nouser,
1184         parse_prune, and parse_xdev; to be written later.
1185         * pred.c: Add dummy pred_nogroup, pred_nouser, pred_prune.
1187         * find.c: Support System V directory library/headers.
1189         * find.c (process_path): Don't continue with a file that stat
1190         fails on.
1192         * defs.h, parser.c, pred.c: Change 'u_long' and 'u_short' to
1193         'unsigned long' and 'unsigned short'.
1194         * find.c, defs.h: Remove 'convert_glob' variable.
1195         * parser.c (parse_fullregex): Function removed.
1196         (parse_name): Remove regular expression code.
1197         (parse_type): Recognize sockets.
1198         Add code to check for missing arguments to many parse_* functions.
1199         * pred.c (pred_name): Use glob_match instead of regex.
1201 Sun May 13 17:45:09 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1203         * Replace fprintf, simple_error, and mem_error with error and
1204         usage. 
1206         * Fix string header includes for USG.
1208 Tue Mar 27 12:40:29 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1210         * defs.h: Change some #defines to enums.
1212 Sun Mar 25 22:08:58 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
1214         * find.c (main): Don't take basename of argv[0].
1216         * util.c (xmalloc): New function.
1217         * find.c, parser.c, utils.c: Use xmalloc instead of malloc.
1219         * pred.c: Remove emulation of regex for BSD and use GNU
1220         library version in regcmp.c instead.
1221         * parser.c: Remove emulation of regcmp for BSD and use GNU
1222         library version in regcmp.c instead.
1223         * Makefile: Link with regex.o and regcmp.o.
1224         Add a DISTFILES macro and dist target.
1226         * Indent source code.  Move RCS logs to this file.
1228 Wed Mar 21 09:30:18 1990  David J. MacKenzie  (djm at pogo.ai.mit.edu)
1230         * xargs.c: Indent.  Comment and rename some global variables.
1231         (main): Use getopt to parse options.  Open new global var
1232         `tty_stream' to /dev/tty if querying requested.
1233         (print_args): Read response from tty_stream, not stdin.
1234         (xmalloc): New function.
1235         Global: Use xmalloc instead of malloc.
1236         (usage): Revise message.
1238 87/02/22  20:01:20  20:01:20  cire (Eric B. Decker)
1240         * pred.c: added guts to pred_size
1242 87/02/22  00:59:42  00:59:42  cire (Eric B. Decker)
1244         * pred.c: added guts to perm and permmask.
1246 87/02/21  23:02:21  23:02:21  cire (Eric B. Decker)
1248         * pred.c: made pred_name only look at the last component of
1249         the path.
1251 87/02/21  22:26:47  22:26:47  cire (Eric B. Decker)
1253         * pred.c: added guts to name.  useds regex and regcmp to do
1254         regular expression handling.
1256 87/02/21  00:17:21  00:17:21  cire (Eric B. Decker)
1258         * pred.c: added predicate newer
1260 87/02/20  11:40:07  11:40:07  cire (Eric B. Decker)
1262         * pred.c: added guts to pred_ok
1264 87/02/19  23:52:37  23:52:37  cire (Eric B. Decker)
1266         * pred.c: finished exec.
1268 87/02/22  20:01:09  20:01:09  cire (Eric B. Decker)
1270         * parser.c: added guts to parse_size
1272 87/02/22  00:59:16  00:59:16  cire (Eric B. Decker)
1274         * parser.c: added guts of perm and permmask.  added getoct
1275         routine for perm and permmask
1277 87/02/21  23:32:50  23:32:50  cire (Eric B. Decker)
1279         * parser.c: added -fre, -fullregex predicate to turn off
1280         globbing conversion
1282 87/02/21  23:01:01  23:01:01  cire (Eric B. Decker)
1284         * parser.c: reworked name so the regexpr pattern includes $ at
1285         the end to force globbing to work correctly.  End of the
1286         pattern refers to the end of the filename.
1288 87/02/21  22:25:34  22:25:34  cire (Eric B. Decker)
1290         * parser.c: added guts to name.  uses a conversion from
1291         globbing to regexp format.  uses regex and regcmp to actually
1292         to the comparison.
1294 87/02/21  00:17:11  00:17:11  cire (Eric B. Decker)
1296         * parser.c: added predicate newer
1298 87/02/20  11:39:35  11:39:35  cire (Eric B. Decker)
1300         * parser.c: added ok guts.  consolidated exec and ok to using
1301         insert_exec_ok
1303 87/02/19  00:20:54  00:20:54  cire (Eric B. Decker)
1305         * parser.c: minor bug in -fulldays predicate parser.  It
1306         should have set the flag full_days to true.
1308 87/02/22  00:58:32  00:58:32  cire (Eric B. Decker)
1310         * find.c: changed where we are setting perm_mask to -1.  need
1311         to make sure that this happens before every apply_predicate.
1313 87/02/21  23:32:11  23:32:11  cire (Eric B. Decker)
1315         * find.c: added error checking for no paths.  better error
1316         message if illegal ordering.
1318 87/02/21  22:19:58  22:19:58  cire (Eric B. Decker)
1320         * find.c: added global convert_glob
1322 87/02/22  20:00:12  20:00:12  cire (Eric B. Decker)
1324         * defs.h: added definition of BLKSIZE for size
1326 87/02/21  22:19:25  22:19:25  cire (Eric B. Decker)
1328         * defs.h: added global convert_glob for name