home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / gnufind.zip / ChangeLog < prev    next >
Text File  |  1994-11-05  |  45KB  |  1,329 lines

  1. Thu Nov  3 09:23:33 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
  2.  
  3.     * Version 4.1.
  4.  
  5.     * locate/Makefile.am: Move updatedb from LIBSCRIPTS to SCRIPTS.
  6.  
  7.     * Makefile.am (distname): Change distribution name from find to
  8.       findutils.
  9.  
  10.     * testsuite/config/unix.exp: Don't abuse xfail; simulate it correctly.
  11.  
  12.     * locate/Makefile.am (CLEANFILES): Fix typo.
  13.  
  14. Wed Nov  2 15:11:52 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
  15.  
  16.     * The big 4 0.
  17.  
  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.
  21.  
  22. Tue Oct 25 16:09:04 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
  23.  
  24.     * find/pred.c (pred_fprintf): Flush output after \c.  From Chapman
  25.     Flack.
  26.  
  27.     * find/parser.c (insert_fprintf): Warn about unrecognized \ and %
  28.         sequences.
  29.  
  30. Tue Oct 18 00:03:10 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
  31.  
  32.     * find/defs.h parser.c pred.c tree.c util.c: Globally change
  33.     "victim" to "primary".
  34.  
  35.     * find/parser.c (insert_fprintf): For 'c' format, don't lose the
  36.     need_stat information.  From Chapman Flack.
  37.  
  38.     * doc/find.texi perm.texi: New files.
  39.     * configure.in: Configure the doc directory.
  40.  
  41.     * find/pred.c (pred_regex): Check that the regex matched the whole
  42.     file name.
  43.  
  44. Wed Oct 12 17:13:47 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
  45.  
  46.     * find/find.c (main): Tell what the invalid arg is.
  47.     From Kaveh Ghazi.
  48.  
  49. Fri Oct  7 12:33:24 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  50.  
  51.     * find/parser.c: Add -mount as an alias for -xdev.
  52.     From Klaus.Steinberger@physik.uni-muenchen.de (Klaus Steinberger).
  53.  
  54.     * lib/modechange.c: Make umask_value unsigned short.
  55.  
  56.     * xargs/xargs.c: Use symbolic constants in longopts.
  57.     From Chapman Flack.
  58.  
  59. Wed Oct  5 11:23:09 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  60.  
  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. 
  66.  
  67. Tue Oct  4 10:02:05 1994  David MacKenzie  <djm@churchy.gnu.ai.mit.edu>
  68.  
  69.     * locate/updatedb.sh Makefile.in: Add substitutions to get
  70.       the transformed program names.
  71.  
  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.
  78.  
  79. Sat Oct  1 17:43:13 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  80.  
  81.     * find/pred.c (launch): Use pid_t.
  82.  
  83.     * xargs/xargs.c (EOF_STR): Define and use.
  84.     [__STDC__]: Delcare xrealloc and xmalloc using void *.
  85.     * find/defs.h: Likewise.
  86.  
  87.     * find/defs.h: Only declare stpcpy if !HAVE_STPCPY.
  88.  
  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.
  93.  
  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).
  98.  
  99. Thu Sep 29 11:38:07 1994  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
  100.  
  101.     * xargs/xargs.c [__STDC__]: Prototype declarations.
  102.  
  103. Wed Sep 28 11:25:53 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
  104.  
  105.     * find/fstype.c [AFS, __STDC__]: Fix definition of _VICEIOCTL.
  106.  
  107. Tue Sep 27 08:14:27 1994  David MacKenzie  <djm@churchy.gnu.ai.mit.edu>
  108.  
  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.
  113.  
  114. Tue Sep 27 01:20:28 1994  Kaveh R. Ghazi  (ghazi@noc.rutgers.edu)
  115.  
  116.     * configure.in: Add AC_HEADER_STAT.
  117.     * lib/listfile.c, lib/modetype.h: Add STAT_MACROS_BROKEN.
  118.  
  119.     * find/pred.c: Move the inclusion of defs.h ahead of the first
  120.       test of _POSIX_VERSION.
  121.  
  122.     * lib/xgetcwd.c: Remove _POSIX_VERSION, rely only on HAVE_GETCWD.
  123.  
  124. Mon Sep 26 16:43:01 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  125.  
  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.
  129.  
  130. Sun Sep 25 23:43:37 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  131.  
  132.     * find/* [__STDC__]: Prototype declarations.
  133.  
  134.     * locate/updatedb.sh: Account for renaming code and frcode.
  135.  
  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.
  146.  
  147. Fri Sep 23 11:55:38 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  148.  
  149.     * lib/listfile.c: Change #ifdef S_IFLNK to #ifdef S_ISLNK.
  150.     From Andreas Luik <luik@isa.de>.
  151.  
  152. Thu Sep 22 11:42:40 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  153.  
  154.     * locate/locate.c (last_literal_end): Dynamically allocate enough
  155.       memory for the subpattern.
  156.  
  157. Wed Sep 21 06:12:56 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  158.  
  159.     * locate/locate.c (locate): Warn if database is >8 days old.
  160.     From Ian Lance Taylor.
  161.  
  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).
  167.  
  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).
  172.  
  173.     * locate/updatedb.sh: Collect results in temp file and rename it
  174.       atomically.  From Andreas Luik <luik@isa.de>.
  175.  
  176.     * xargs/xargs.c (parse_num): Print a long using %ld.  From Jim
  177.       Meyering.
  178.  
  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.
  181.  
  182.     Remove man directory; move man pages to the directories of the
  183.     programs they document.
  184.  
  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.
  194.  
  195. Tue Sep 20 15:41:11 1994  David MacKenzie  <djm@geech.gnu.ai.mit.edu>
  196.  
  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.
  200.  
  201. Sun Feb 13 11:21:58 1994  Jim Meyering  (meyering@comco.com)
  202.  
  203.     * man/Makefile.in [man1ext, man5ext]: Set man5ext (not man1ext) to 5.
  204.  
  205. Sun Aug  1 22:30:55 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  206.  
  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.
  215.  
  216. Thu Jul 29 20:44:53 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  217.  
  218.     * Makefile.in (config.status): Run config.status --recheck, not
  219.     configure, to get the right args passed.
  220.  
  221. Thu Jul 22 12:53:12 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  222.  
  223.     * listfile.c (list_file): Print inode as a long.
  224.  
  225. Wed Jul 14 14:14:45 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  226.  
  227.     * fstype.c [STDC_HEADERS]: Include stdlib.h.
  228.  
  229.     * Move unistd.h include from parser.c and pred.c to defs.h.
  230.  
  231. Wed Jun 30 14:14:47 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  232.  
  233.     * updatedb.sh: Construct PRUNEREGEX from PRUNEPATHS with sed.
  234.     Prune /afs.  Change NFSUSER to NETUSER and NFSPATHS to NETPATHS.
  235.  
  236. Tue Jun 29 12:19:58 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  237.  
  238.     * pred.c (pred_fprintf): Abort in switch if `c' is not A, C, or T.
  239.  
  240. Mon Jun 28 00:18:52 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  241.  
  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.
  246.  
  247.     * parser.c (parse_size): Recognize b and w suffixes for dd
  248.     compatibility. 
  249.  
  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).
  255.  
  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.
  260.  
  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.
  264.  
  265.     * find.c (process_dir): Renamed from scan_directory.
  266.  
  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.
  279.  
  280.     * xgetcwd.c: New file.
  281.  
  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).
  285.  
  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.
  290.  
  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.
  296.  
  297.     * xargs.c, locate.c (main, usage): Add --version and --help
  298.     options.
  299.  
  300. Wed Mar 31 22:39:57 1993  Jim Meyering  (meyering@comco.com)
  301.  
  302.     * parser.c: Define isascii macro to be 1 also if STDC_HEADERS.
  303.     * xargs.c: Ditto.
  304.  
  305. Wed Mar 31 16:04:07 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
  306.  
  307.     * pred.c (pred_fprintf): If curdepth is 0, don't nuke
  308.     segment->text; nuke cp.
  309.  
  310. Mon Mar 29 15:57:20 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
  311.  
  312.     * Version 3.8.
  313.  
  314. Fri Mar 26 16:36:59 1993  David J. MacKenzie  (djm@hal.gnu.ai.mit.edu)
  315.  
  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.
  325.  
  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.
  329.  
  330.     * parser.c: Don't define const.
  331.  
  332.     * fstype.c [FSTYPE_STATFS] (fstype_to_string): #ifdef
  333.     MOUNT_PC for 386bsd.
  334.  
  335. Thu Mar 25 18:32:24 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  336.  
  337.     * parser.c (parse_regex): If ignore_case, set up a translate
  338.     table for the regex.
  339.  
  340.     * defs.h: Include string.h or strings.h.
  341.     * find.c fstype.c parser.c pred.c util.c: Don't.
  342.  
  343.     * nextelem.c [index]: Don't redefine.
  344.  
  345. Wed Mar 24 17:47:10 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
  346.  
  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>.
  350.  
  351.     * parser.c (make_segment, insert_fprintf), pred.c
  352.     (pred_fprintf): Add '%F' to print filesystem type.
  353.  
  354.     * parser.c (parse_fprintf): Check if second arg is missing.
  355.  
  356. Tue Mar 23 13:18:08 1993  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
  357.  
  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.
  361.  
  362.     * parser.c (parse_printf): Check for missing arg.
  363.     From smj@cats.com (Steve James).
  364.  
  365.     * parser.c: Add #ifdef around atol decl for Linux.
  366.  
  367. Fri Dec 11 08:17:07 1992  Jim Meyering  (meyering@comco.com)
  368.  
  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.
  373.  
  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.
  377.  
  378.     * parser.c, xargs.c: Guard ctype.h macros with isascii.
  379.  
  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.
  384.  
  385. Tue Nov 24 08:04:36 1992  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
  386.  
  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.
  390.  
  391.     * pred.c: Use SYSDIR and NDIR instead of USG.
  392.     Define direct as dirent, not vice-versa.
  393.  
  394. Fri Oct  9 02:15:17 1992  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
  395.  
  396.     * xargs.c (main): Set orig_arg_max before possibly cutting
  397.     down arg_max.
  398.  
  399. Thu Sep 10 19:25:35 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  400.  
  401.     * parser.c: Always declare getgrent and getpwent.
  402.  
  403. Mon Aug 24 12:54:16 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  404.  
  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).
  409.  
  410. Thu Jul 23 15:06:07 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  411.  
  412.     * Version 3.7.
  413.  
  414. Tue Jul 14 00:16:52 1992  David J. MacKenzie  (djm@apple-gunkies.gnu.ai.mit.edu)
  415.  
  416.     * pathmax.h: New file.
  417.     * bigram.c, code.c, locate.c: Use it.  Use xmalloc instead of malloc.
  418.  
  419. Sat Jul 11 22:31:46 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  420.  
  421.     * nextelem.c: New file.
  422.     * locate.c (main): Use it to support a database path.
  423.  
  424. Fri Jul  3 02:12:09 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  425.  
  426.     * listfile.c, pred.c: Change FOO_MISSING to HAVE_FOO.
  427.  
  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).
  431.  
  432.     * locate.c (locate): Check for EOF at top of loop, not middle.
  433.     * updatedb.sh: Remove duplication hack.
  434.     From Jay Plett.
  435.  
  436. Wed Jun 10 15:04:23 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  437.  
  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).
  441.  
  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.
  445.  
  446.     * updatedb.sh: Don't read from and write to the file-list file
  447.     in the same statement.
  448.  
  449. Thu Jun  4 15:27:07 1992  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
  450.  
  451.     * Version 3.6.
  452.  
  453. Wed May 20 00:05:13 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
  454.  
  455.     * xargs.c: Include sys/param.h before limits.h, not after.
  456.  
  457.     * listfile.c: If we include a header file specifically to get
  458.     major et al., assume we have them.
  459.  
  460. Tue May 12 01:09:33 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
  461.  
  462.     * locate.c (locate): Don't give fnmatch FNM_PERIOD (it's useless).
  463.  
  464.     * parser.c (parse_path): New function.
  465.     * pred.c (pred_path): New function.
  466.     * tree.c (opt_expr): Move -path like -name.
  467.  
  468.     * updatedb.sh: Duplicate the last entry in the file list so it
  469.     doesn't get ignored.
  470.  
  471. Mon May 11 22:24:40 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
  472.  
  473.     * updatedb.sh: Allow many vars to be overridden in the environment.
  474.  
  475.     * locate.c, updatedb.sh: FCODES -> LOCATE_DB.
  476.  
  477. Wed Apr 22 15:24:00 1992  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
  478.  
  479.     * updatedb.sh: Use binprefix when calling find.
  480.  
  481.     * locate.c (locate): Use LOCATE_DB environ variable if set.
  482.  
  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).
  486.  
  487. Sat Apr 18 15:42:52 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  488.  
  489.     * fstype.c: Rename FS_* to FSTYPE_*.  Support Dynix's
  490.     name for the mount table.
  491.  
  492. Sun Mar  8 23:21:25 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  493.  
  494.     * listfile.c (list_file): Allow a slop factor for deciding what
  495.     is in the future.
  496.  
  497. Tue Feb 25 16:24:15 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  498.  
  499.     * Version 3.5.
  500.  
  501. Sat Feb 22 08:43:01 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  502.  
  503.     * tree.c (set_new_parent): Initialize need_stat field.
  504.  
  505.     * defs.h (struct predicate): Define p_name unconditionally.
  506.  
  507. Fri Feb 21 15:28:43 1992  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
  508.  
  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.
  515.  
  516. Mon Feb 17 10:20:38 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  517.  
  518.     * updatedb.sh: Use current value of TMPDIR if already set.
  519.     From Dana Jacobsen (jacobsd@cs.orst.edu).
  520.  
  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>.
  523.  
  524. Thu Feb 13 10:52:31 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  525.  
  526.     * modetype.h: Don't define S_IFMT, because doing so breaks pred_type
  527.     on plain POSIX.1 systems.
  528.  
  529. Sat Feb  8 00:58:13 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  530.  
  531.     * Version 3.4.
  532.  
  533. Fri Feb  7 21:35:58 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  534.  
  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.
  543.  
  544. Fri Jan 17 21:51:18 1992  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  545.  
  546.     * Version 3.3.
  547.  
  548. Tue Dec 24 02:16:49 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  549.  
  550.     * wait.h, listfile.c, xargs.c, bigram.c, code.c, locate.c:
  551.     Change POSIX ifdefs to HAVE_UNISTD_H and _POSIX_VERSION. 
  552.  
  553. Wed Dec 18 16:37:17 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  554.  
  555.     * listfile.c: Use MAJOR_IN_MKDEV and MAJOR_IN_SYSMACROS to
  556.     find major and minor.
  557.  
  558.     * code.c, bigram.c, locate.c, xargs.c: Use LIMITS_H_MISSING
  559.     instead of LIMITS_MISSING.
  560.  
  561. Sat Dec  7 06:13:26 1991  David J. MacKenzie  (djm at frob.eng.umd.edu)
  562.  
  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.
  566.  
  567.     * xargs.c (usage): Document long-named options as starting
  568.     with -- instead of +.
  569.  
  570.     * parser.c [!POSIX]: Declare getgrent and getpwent.
  571.  
  572.     * fstype.c (filesystem_type): Only check MNTTYPE_IGNORE if
  573.     it's defined.  From Rainer Orth.
  574.  
  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.
  583.  
  584. Wed Nov  2 13:34:32 1990  Tim Wood at home    (tim at axolotl.UUCP)
  585.  
  586.     * pred.c: Call stat() if an AND, OR or NOT node tells you to.
  587.     * find.c: Limit calls to stat().
  588.  
  589. Wed Oct  3 17:30:39 1990  Tim Wood at home    (tim at axolotl.UUCP)
  590.  
  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().
  595.  
  596. Sat Dec  7 00:36:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  597.  
  598.     * xargs.c (do_exec): Simplify test for which exit
  599.     status to use if exec fails.
  600.  
  601. Fri Dec  6 18:24:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  602.  
  603.     * listfile.c (list_file): POSIX_ME_HARDER -> POSIXLY_CORRECT.
  604.  
  605. Thu 24 Oct 1991 21:33:21  Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
  606.  
  607.     * pred.c (pred_fprintf): Don't print "\n" unless it's in the
  608.     format string.
  609.  
  610. Mon Oct 21 22:30:35 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  611.  
  612.     * defs.h, parser.c, pred.c: Rename some types that conflict
  613.     with reserved POSIX.1 namespace (ended in _t).
  614.  
  615. Thu Oct 17 22:39:06 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  616.  
  617.     * xargs.c: Don't determine memory.h based on POSIX, which
  618.     doesn't mention it.
  619.  
  620. Sat Oct  5 16:11:05 1991  Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
  621.  
  622.     * parser.c (parse_perm): Parse new `-perm +mode' notation.
  623.     * pred.c (pred_perm): Interpret same.
  624.  
  625. Fri Sep 13 14:58:27 1991  David J. MacKenzie  (djm at churchy.gnu.ai.mit.edu)
  626.  
  627.     * xargs.c [POSIX]: Always use sysconf to get ARG_MAX.
  628.  
  629. Thu Sep  5 23:57:06 1991  David J. MacKenzie  (djm at apple-gunkies)
  630.  
  631.     * bigram.c, code.c (main): Make path_max int, not unsigned.
  632.     * locate.c (main): Check for pathconf failure.
  633.  
  634. Thu Sep  5 11:54:44 1991 Jim Meyering (meyering at churchy.gnu.ai.mit.edu)
  635.  
  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.
  640.  
  641. Wed Aug 28 20:53:57 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  642.  
  643.     * Version 3.2.
  644.  
  645. Mon Aug 26 18:57:32 1991  David J. MacKenzie  (djm at pogo.gnu.ai.mit.edu)
  646.  
  647.     * bigram.c, code.c: Fix handling of PATH_MAX.
  648.     Check for anomalous input line lengths.
  649.     From Bruce Evans.
  650.  
  651. Fri Aug 23 11:00:18 1991  David J. MacKenzie  (djm at apple-gunkies)
  652.  
  653.     * pred.c (pred_fprintf): Round block number up to get K.
  654.  
  655. Thu Aug 22 10:46:30 1991  David J. MacKenzie  (djm at apple-gunkies)
  656.  
  657.     * pred.c (pred_fprintf, pred_lname) [_AIX]: Allocate PATH_MAX
  658.     byte for link object since st_size is wrong.
  659.  
  660.     * listfile.c (list_file): Don't convert blocks to kilobytes if
  661.     env. var POSIX_ME_HARDER is defined.
  662.  
  663.     * fstype.c [FS_AIX_STATFS]: New case.
  664.  
  665.     * configure: Make sure the sys/mount.h is the 4.4BSD version
  666.     with grep instead of just testing whether it exists.
  667.  
  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).
  670.  
  671. Wed Aug 21 13:02:46 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  672.  
  673.     * Version 3.1.
  674.  
  675.     * parser.c (parse_fprintf), pred.c (pred_fprintf): Add %k
  676.     conversion to print 1K blocks.
  677.  
  678.     * listfile.c: Print counts of 1K blocks, for consistency with
  679.     new fileutils release.  Bad timing, there.
  680.  
  681.     * Version 3.0.
  682.  
  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'.
  686.  
  687. Thu Aug 15 16:07:46 1991  David J. MacKenzie  (djm at frob)
  688.  
  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.
  694.  
  695.     * parser.c, pred.c: Rename -fulldays to -daystart.
  696.  
  697.     * defs.h, find.c, parser.c, pred.c: Add many new predicates
  698.     from Jay Plett (jay@princeton.edu).
  699.  
  700. Wed Aug 14 14:37:06 1991  David J. MacKenzie  (djm at bleen)
  701.  
  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.
  706.  
  707. Fri Aug  9 00:49:32 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  708.  
  709.     * xargs.c (read_line): Use isblank, to support POSIX locales.
  710.  
  711.     * fstype [FS_STATVFS]: New code for SVR4, from slootman@dri.nl
  712.     (Paul Slootman).
  713.     * configure: Figure out when to use it.
  714.  
  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.
  720.  
  721. Thu Aug  8 17:20:19 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
  722.  
  723.     * parser.c, pred.c [CACHE_IDS]: Optional code to turn uid and
  724.     gid lookups into table lookups.
  725.  
  726. Wed Aug  7 00:22:29 1991  David J. MacKenzie  (djm at wheat-chex)
  727.  
  728.     * configure, Makefile.in's: Support +srcdir option via VPATH.
  729.     Clean up clean targets.
  730.  
  731. Sat Jul 20 01:11:51 1991  David J. MacKenzie  (djm at apple-gunkies)
  732.  
  733.     * configure: Filter /etc and /usr/etc from path.
  734.  
  735.     * xargs.c (wait_for_proc): Fix handling of child exit status.
  736.     (main): Exit with a nonzero status if any child did.
  737.  
  738.     * pred.c (launch): Flush stdout and stderr before forking.
  739.  
  740.     * fstype.c (filesystem_type) [FS_MNTENT]: Skip entries of
  741.     type "ignore".
  742.  
  743. Fri Jul 19 22:53:42 1991  David J. MacKenzie  (djm at bleen)
  744.  
  745.     * pred.c, locate.c: Use fnmatch instead of glob_match.
  746.     * fnmatch.c, fnmatch.h: New files.
  747.  
  748.     * Many files: Use string.h if STDC_HEADERS, as well as if USG.
  749.  
  750.     * locate.c, code.c, bigram.c: Possibly use pathconf to get
  751.     PATH_MAX.  Use malloc to allocate path arrays.
  752.  
  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.
  759.  
  760.     * xargs.c, pred.c, listfile.c: Use POSIX, not UNISTD_MISSING.
  761.     * wait.h: Use POSIX, not WAIT_MACROS_MISSING.
  762.  
  763.     * COPYING: Use version 2.  Update all files.
  764.  
  765.     * Replace Makefile and lib/Makefile with Makefile.in,
  766.     lib/Makefile.in and configure.  Update README.
  767.  
  768. Fri Apr  5 12:49:09 1991  David J. MacKenzie  (djm at apple-gunkies)
  769.  
  770.     * Version 2.2.
  771.  
  772. Fri Mar 15 20:44:45 1991  David J. MacKenzie  (djm at geech.ai.mit.edu)
  773.  
  774.     * xargs.c (main): Always run the command if some args are left over.
  775.     Rename some variables.
  776.  
  777. Fri Jan 18 03:35:57 1991  David J. MacKenzie  (djm at geech.ai.mit.edu)
  778.  
  779.     * bigram.c, code.c, locate.c: Use LIMITS_MISSING, not
  780.     _POSIX_SOURCE, to decide whether to include limits.h.
  781.  
  782.     * parser.c, pred.c, listfile.c: Use POSIX, not _POSIX_SOURCE,
  783.     to decide whether to declare getpwuid and getgrgid.
  784.  
  785.     * xargs.c: Use POSIX, not _POSIX_SOURCE, to determine whether
  786.     to include memory.h.
  787.  
  788. Sat Jan 12 04:12:34 1991  David J. MacKenzie  (djm at wookumz.ai.mit.edu)
  789.  
  790.     * defs.h, find.c, parser.c, pred.c: Remove -permmask option.
  791.  
  792. Thu Jan 10 04:32:52 1991  David J. MacKenzie  (djm at albert.ai.mit.edu)
  793.  
  794.     * wait.h: Include sys/types.h to get pid_t.
  795.  
  796.     * xargs.c [USG && !STDC_HEADERS]: Only include memory.h if not
  797.     _POSIX_SOURCE.
  798.  
  799. Tue Jan  1 23:53:32 1991  David J. MacKenzie  (djm at albert.ai.mit.edu)
  800.  
  801.     * Version 2.1.
  802.  
  803. Wed Dec 26 03:25:51 1990  David J. MacKenzie  (djm at apple-gunkies)
  804.  
  805.     * locate.c, bigram.c, code.c: Attempt to get max. path length
  806.     on more kinds of systems, incl. POSIX.
  807.  
  808.     * pred.c, listfile.c, xargs.c: Get some decls from unistd.h,
  809.     if available. 
  810.  
  811.     * find.c, defs.h: Make `cur_day_start' a time_t, not long.
  812.  
  813. Fri Dec 21 01:49:12 1990  David J. MacKenzie  (djm at egypt)
  814.  
  815.     * defs.h, parser.c: Remove unused field from `struct exec_t'.
  816.  
  817.     * xargs.c: Add +no-run-if-empty option to cause the command to
  818.     not be run if the input is empty.
  819.  
  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.
  827.  
  828. Thu Dec 20 02:32:09 1990  David J. MacKenzie  (djm at egypt)
  829.  
  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.
  833.  
  834. Sat Dec 15 19:01:12 1990  David J. MacKenzie  (djm at egypt)
  835.  
  836.     * find.c (main), util.c (usage): Make directory args optional,
  837.     defaulting to ".".
  838.  
  839. Sat Dec 15 18:36:29 1990  David J. MacKenzie  (djm at apple-gunkies)
  840.  
  841.     * listfile.c: Define major and minor if not defined (as in POSIX).
  842.  
  843. Mon Dec  3 01:04:35 1990  David J. MacKenzie  (djm at alborz)
  844.  
  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.
  848.  
  849.     * pred.c (launch): Use POSIX wait macros from wait.h.
  850.  
  851.     * xargs.c (print_xargs): Read from tty_stream, not stdin.
  852.  
  853. Tue Nov 20 16:48:24 1990  David J. MacKenzie  (djm at apple-gunkies)
  854.  
  855.     * Version 2.0.
  856.  
  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.
  862.  
  863. Fri Nov 16 12:24:43 1990  David J. MacKenzie  (djm at egypt)
  864.  
  865.     * modetype.h: New file.
  866.     parser.c, pred.c: Use it.
  867.  
  868. Thu Nov 15 18:05:54 1990  David J. MacKenzie  (djm at apple-gunkies)
  869.  
  870.     * xmalloc.c: New file from fileutils.
  871.  
  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.
  878.  
  879. Mon Nov 12 02:54:00 1990  David J. MacKenzie  (djm at apple-gunkies)
  880.  
  881.     * pred.c (pred_fstype): Free old fs type.
  882.  
  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.
  886.  
  887.     * xstrdup.c: New file from fileutils.
  888.  
  889.     * find.c (process_path): Rename root_dev to current_dev and
  890.     make it global, for -fstype.
  891.  
  892.     * wait.h: New file taken from xargs.c.
  893.  
  894.     * xargs.c: Make limits.h vs. sys/param.h conditional on
  895.     LIMITS_MISSING instead of USG, to accomodate SVR2.
  896.  
  897. Thu Nov  8 11:52:22 1990  David J. MacKenzie  (djm at apple-gunkies)
  898.  
  899.     * parser.c, pred.c, listfile.c: If not _POSIX_SOURCE, declare
  900.     getpwuid and getgrgid.  Use them.
  901.  
  902.     * listfile.c: If not _POSIX_SOURCE, define S_ISDIR and
  903.     S_ISBLK.  Use them. 
  904.  
  905.     * find.c: Use S_ISDIR instead of S_IFDIR, and define if not
  906.     _POSIX_SOURCE. 
  907.  
  908.     * Makefile: Define AR and RANLIB and pass to child makes.
  909.     lib/Makefile: Use them.
  910.  
  911.     * xargs.c (WIFSIGNALED): Redefine so it works.
  912.  
  913. Mon Nov  5 00:02:01 1990  David J. MacKenzie  (djm at apple-gunkies)
  914.  
  915.     * find.c (process_path): For -xdev, process filesystem
  916.     mountpoints (but don't descend them), instead of skipping them
  917.     entirely. 
  918.  
  919.     * find.c, parser.c, defs.h: Add -follow predicate.
  920.  
  921.     * xargs.c: Change ifdefs to support STDC POSIX systems.
  922.  
  923. Sat Nov  3 20:18:05 1990  David J. MacKenzie  (djm at apple-gunkies)
  924.  
  925.     * xargs.c (do_exec): Child process exits with status 255, not
  926.     127, if command can't be run.
  927.  
  928. Fri Nov  2 02:11:42 1990  David J. MacKenzie  (djm at apple-gunkies)
  929.  
  930.     * xargs.c: Exit with status 127 if running commmand fails, as
  931.     required by POSIX.
  932.  
  933.     * fstype.c: Support -fstype for Ultrix (-DFS_GETMNT).
  934.     Sun/BSD code is now -DFS_MNTENT.
  935.  
  936. Thu Nov  1 13:06:01 1990  David J. MacKenzie  (djm at egypt)
  937.  
  938.     * Reorganize into subdirectories and add xargs.  Rewrite Makefiles.
  939.  
  940.     * find.c (process_path, main): Allow a maxdepth of 0, meaning
  941.     only process command line args.
  942.  
  943.     * parser.c, pred.c: Add -print0 predicate.
  944.  
  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.
  950.  
  951. Fri Sep 21 10:21:09 1990  David J. MacKenzie  (djm at apple-gunkies)
  952.  
  953.     * find.c (process_path): Take DEPTH as an arg instead of ROOT,
  954.     and change callers.
  955.  
  956. Thu Sep 20 23:58:47 1990  David J. MacKenzie  (djm at apple-gunkies)
  957.  
  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.
  962.  
  963. Wed Sep 12 02:12:31 1990  David J. MacKenzie  (djm at apple-gunkies)
  964.  
  965.     * parser.c: Add -not as synonym for !.
  966.  
  967. Sun Aug 26 06:16:08 1990  Jim Kingdon  (kingdon at pogo.ai.mit.edu)
  968.  
  969.     * Makefile (TAGS): New target.
  970.  
  971. Sun Aug 12 00:32:01 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  972.  
  973.     * xargs.c (main): Tell getopt to not permute.
  974.  
  975. Sat Aug  4 21:43:45 1990  David J. MacKenzie  (djm at pogo.ai.mit.edu)
  976.  
  977.     * parser.c (parse_perm), pred.c (pred_perm): Always compare
  978.     bits 07777.
  979.  
  980.     * locate.c, Makefile: Rename 'fastfind' program to 'locate',
  981.     following comment in POSIX.2 draft 10 rationale for find.
  982.  
  983. Wed Jul 25 18:45:03 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  984.  
  985.     * listfile.c (getuser, getgroup): Make uid and gid unsigned
  986.     short, not int.
  987.  
  988. Mon Jul 16 13:40:13 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  989.  
  990.     * defs.h: Don't declare fprintf and printf, in case they have
  991.     prototypes in stdio.h (important for functions that use stdarg).
  992.  
  993. Sun Jul 15 23:39:39 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  994.  
  995.     * parser.c (parse_and): New function, for compatibility.
  996.  
  997. Wed Jul  4 00:17:57 1990  David J. MacKenzie  (djm at apple-gunkies)
  998.  
  999.     * find.c (main): Only enclose expressions that produce no side
  1000.     effects within `( ... )'.
  1001.  
  1002. Tue Jul  3 01:59:39 1990  David J. MacKenzie  (djm at apple-gunkies)
  1003.  
  1004.     * parser.c (strspn): Stop when end of string reached.
  1005.  
  1006.     * Version 1.2.
  1007.  
  1008.     * Move version number from Makefile to new file version.c.
  1009.     * parser.c: Recognize new -version predicate.
  1010.  
  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.
  1015.  
  1016. Mon Jul  2 23:48:17 1990  David J. MacKenzie  (djm at apple-gunkies)
  1017.  
  1018.     * pred.c: Don't check for invalid comparison types in numeric
  1019.     predicate functions.
  1020.  
  1021. Thu Jun 28 00:34:57 1990  David J. MacKenzie  (djm at apple-gunkies)
  1022.  
  1023.     * parser.c (parse_regex): Set fastmap and translate before
  1024.     compiling regex.
  1025.  
  1026. Mon Jun 25 18:08:59 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1027.  
  1028.     * fastfind.c (fastfind): Initialize count to 0.
  1029.  
  1030.     * lib/updatedb.sh: Only do regex comparison on directories,
  1031.     for speed.
  1032.  
  1033.     * listfile.c (list_file): Truncate user and group name to 8 chars.
  1034.  
  1035. Sun Jun 24 13:51:27 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1036.  
  1037.     * Version 1.1.
  1038.  
  1039.     * Makefile [DISTFILES]: Add COPYING.
  1040.  
  1041. Fri Jun 22 03:54:27 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1042.  
  1043.     * Version 1.0.
  1044.  
  1045. Tue Jun 19 03:55:28 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1046.  
  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.
  1052.  
  1053.     * pred.c (pred_regex): Match against full pathname instead of
  1054.     just last element.
  1055.     * util.c (basename): Return "/", not "", if given "/".
  1056.  
  1057.     * find.c (process_path): Fix error in handling "/" directory.
  1058.  
  1059. Mon Jun 18 01:49:16 1990  David J. MacKenzie  (djm at apple-gunkies)
  1060.  
  1061.     * parser.c [STRSPN_MISSING] (strspn): New function.
  1062.  
  1063. Sun Jun 17 13:54:09 1990  David J. MacKenzie  (djm at apple-gunkies)
  1064.  
  1065.     * listfile.c: New file.
  1066.     * parser.c (parse_ls): New function.
  1067.     * pred.c (pred_ls): New function.
  1068.  
  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.
  1074.  
  1075.     * find.c (main): Print correct message if a predicate arg is
  1076.     missing. 
  1077.  
  1078.     * parser.c (insert_exec_ok): Make args that start with a ';' but
  1079.     contain other characters not terminate the command.
  1080.  
  1081. Fri Jun 15 00:33:45 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1082.  
  1083.     * fstype.c: If MOUNTED isn't defined but MNT_MNTTAB is, use it
  1084.     instead.  True for HP/UX, at least.
  1085.  
  1086. Thu Jun 14 10:10:25 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1087.  
  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.
  1091.  
  1092. Sat Jun  9 03:15:21 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1093.  
  1094.     * parser.c (parse_permmask): Allow symbolic mode masks.
  1095.     (parse_perm): Free 'struct change' when done with it.
  1096.     (get_oct): Function removed.
  1097.  
  1098.     * find.c (process_path): Allow arbitrarily-long filenames.
  1099.     More efficient string copying.  Initialize perm_mask to 07777
  1100.     instead of -1.
  1101.  
  1102. Thu Jun  7 04:22:42 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1103.  
  1104.     * Makefile, find.c: Use DIRENT to control whether <dirent.h>
  1105.     is used.
  1106.  
  1107. Thu May 31 04:46:11 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1108.  
  1109.     * parser.c (parse_regex): New function.
  1110.     * pred.c (pred_regex): New function.
  1111.  
  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.
  1116.  
  1117. Mon May 21 01:04:42 1990  David J. MacKenzie  (djm at abyss)
  1118.  
  1119.     * lib/updatedb.sh: Put BINDIR in PATH.
  1120.  
  1121.     * fstype.c: Do nothing if MNTENT_MISSING is defined.
  1122.  
  1123.     * fstype.c: New file.
  1124.     * parser.c (parse_fstype): New function.
  1125.     * pred.c (pred_fstype): New function.
  1126.  
  1127.     * parser.c (parse_newer): Failure to stat -newer file is a
  1128.     fatal error.
  1129.  
  1130.     * pred.c (pred_ok): Flush output before reading.  Use getchar
  1131.     instead of scanf.
  1132.  
  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.
  1136.  
  1137. Sun May 20 19:55:30 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1138.  
  1139.     * pred.c (pred_prune): Set new global var `stop_at_current_level'.
  1140.     * find.c (process_path): Test and reset it.
  1141.  
  1142. Fri May 18 01:56:17 1990  David J. MacKenzie  (djm at abyss)
  1143.  
  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.
  1147.  
  1148. Thu May 17 02:07:44 1990  David J. MacKenzie  (djm at abyss)
  1149.  
  1150.     * parser.c (get_oct): Don't consider an empty string a valid number.
  1151.  
  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.
  1157.  
  1158.     * find.c: New global var `exit_status'.  Use it.  (POSIX)
  1159.     * parser.c: Set `exit_status' if lstat on -newer file fails.
  1160.  
  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.
  1166.  
  1167. Wed May 16 23:23:35 1990  David J. MacKenzie  (djm at abyss)
  1168.  
  1169.     * parser.c (parse_nogroup, parse_nouser): Implement.
  1170.     * pred.c (pred_nogroup, pred_nouser): Implement.
  1171.  
  1172. Mon May 14 00:09:35 1990  David J. MacKenzie  (djm at abyss)
  1173.  
  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. 
  1179.  
  1180.     * parser.c (parse_newer): Use lstat instead of stat.  Is this right?
  1181.     (parse_xdev): Set stay_on_filesystem.
  1182.  
  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.
  1186.  
  1187.     * find.c: Support System V directory library/headers.
  1188.  
  1189.     * find.c (process_path): Don't continue with a file that stat
  1190.     fails on.
  1191.  
  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.
  1200.  
  1201. Sun May 13 17:45:09 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1202.  
  1203.     * Replace fprintf, simple_error, and mem_error with error and
  1204.     usage. 
  1205.  
  1206.     * Fix string header includes for USG.
  1207.  
  1208. Tue Mar 27 12:40:29 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1209.  
  1210.     * defs.h: Change some #defines to enums.
  1211.  
  1212. Sun Mar 25 22:08:58 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
  1213.  
  1214.     * find.c (main): Don't take basename of argv[0].
  1215.  
  1216.     * util.c (xmalloc): New function.
  1217.     * find.c, parser.c, utils.c: Use xmalloc instead of malloc.
  1218.  
  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.
  1225.  
  1226.     * Indent source code.  Move RCS logs to this file.
  1227.  
  1228. Wed Mar 21 09:30:18 1990  David J. MacKenzie  (djm at pogo.ai.mit.edu)
  1229.  
  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.
  1237.  
  1238. 87/02/22  20:01:20  20:01:20  cire (Eric B. Decker)
  1239.  
  1240.     * pred.c: added guts to pred_size
  1241.  
  1242. 87/02/22  00:59:42  00:59:42  cire (Eric B. Decker)
  1243.  
  1244.     * pred.c: added guts to perm and permmask.
  1245.  
  1246. 87/02/21  23:02:21  23:02:21  cire (Eric B. Decker)
  1247.  
  1248.     * pred.c: made pred_name only look at the last component of
  1249.     the path.
  1250.  
  1251. 87/02/21  22:26:47  22:26:47  cire (Eric B. Decker)
  1252.  
  1253.     * pred.c: added guts to name.  useds regex and regcmp to do
  1254.     regular expression handling.
  1255.  
  1256. 87/02/21  00:17:21  00:17:21  cire (Eric B. Decker)
  1257.  
  1258.     * pred.c: added predicate newer
  1259.  
  1260. 87/02/20  11:40:07  11:40:07  cire (Eric B. Decker)
  1261.  
  1262.     * pred.c: added guts to pred_ok
  1263.  
  1264. 87/02/19  23:52:37  23:52:37  cire (Eric B. Decker)
  1265.  
  1266.     * pred.c: finished exec.
  1267.  
  1268. 87/02/22  20:01:09  20:01:09  cire (Eric B. Decker)
  1269.  
  1270.     * parser.c: added guts to parse_size
  1271.  
  1272. 87/02/22  00:59:16  00:59:16  cire (Eric B. Decker)
  1273.  
  1274.     * parser.c: added guts of perm and permmask.  added getoct
  1275.     routine for perm and permmask
  1276.  
  1277. 87/02/21  23:32:50  23:32:50  cire (Eric B. Decker)
  1278.  
  1279.     * parser.c: added -fre, -fullregex predicate to turn off
  1280.     globbing conversion
  1281.  
  1282. 87/02/21  23:01:01  23:01:01  cire (Eric B. Decker)
  1283.  
  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.
  1287.  
  1288. 87/02/21  22:25:34  22:25:34  cire (Eric B. Decker)
  1289.  
  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.
  1293.  
  1294. 87/02/21  00:17:11  00:17:11  cire (Eric B. Decker)
  1295.  
  1296.     * parser.c: added predicate newer
  1297.  
  1298. 87/02/20  11:39:35  11:39:35  cire (Eric B. Decker)
  1299.  
  1300.     * parser.c: added ok guts.  consolidated exec and ok to using
  1301.     insert_exec_ok
  1302.  
  1303. 87/02/19  00:20:54  00:20:54  cire (Eric B. Decker)
  1304.  
  1305.     * parser.c: minor bug in -fulldays predicate parser.  It
  1306.     should have set the flag full_days to true.
  1307.  
  1308. 87/02/22  00:58:32  00:58:32  cire (Eric B. Decker)
  1309.  
  1310.     * find.c: changed where we are setting perm_mask to -1.  need
  1311.     to make sure that this happens before every apply_predicate.
  1312.  
  1313. 87/02/21  23:32:11  23:32:11  cire (Eric B. Decker)
  1314.  
  1315.     * find.c: added error checking for no paths.  better error
  1316.     message if illegal ordering.
  1317.  
  1318. 87/02/21  22:19:58  22:19:58  cire (Eric B. Decker)
  1319.  
  1320.     * find.c: added global convert_glob
  1321.  
  1322. 87/02/22  20:00:12  20:00:12  cire (Eric B. Decker)
  1323.  
  1324.     * defs.h: added definition of BLKSIZE for size
  1325.  
  1326. 87/02/21  22:19:25  22:19:25  cire (Eric B. Decker)
  1327.  
  1328.     * defs.h: added global convert_glob for name
  1329.