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