History log of /freebsd-10.0-release/usr.bin/locate/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


244063 10-Dec-2012 eadler

Give users a hint when their locate database is too small.

Reviewed by: wblock, gcooper
Reviewed by: "Lowell Gilbert" <lgfbsd@be-well.ilk.org>
Approved by: cperciva (implicit)
MFC after: 3 weeks


229655 05-Jan-2012 uqs

Touch up some more small typos missed in the previous round.

Reported by: Ben Kaduk <minimarmot@gmail.com> et al.


229403 03-Jan-2012 ed

Replace index() and rindex() calls with strchr() and strrchr().

The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.


228992 30-Dec-2011 uqs

Spelling fixes for usr.bin/


215752 23-Nov-2010 nwhitehorn

Properly use SCHAR_MAX instead of CHAR_MAX for 0x7f. This fixes operation
of locate(1) on systems on which char is unsigned by default (ARM and
PowerPC).

Reported by: Paul Mather
MFC after: 4 days


214615 01-Nov-2010 wollman

Style cleanup: make this look more like a 21st-century shell script
and not something out of the early 1980s. Make sure all error
messages go to stderr, not stdout. Since there's error-handling code
to handle empty SEARCHPATHS and FILESYSTEMS, use the initialization
form that allows this error to be diagnosed. (hat tip: jilles@)


214613 01-Nov-2010 wollman

jilles@ pointed out that using ${PRUNEDIRS:=".zfs"} in updatedb.sh
made it impossible to override PRUNEDIRS to make it empty. Use the
non-colon form to only set PRUNEDIRS if it is completely unset. (For
parallelism, the other configuration defaults here could be done the
same way, but that could be more obviously accomplished by disabling
updatedb in periodic.conf, so leave them alone for now.)


214583 31-Oct-2010 wollman

Make it possible to exclude directories by name no matter where they
are in the filesystem from the locate database. By default, exclude
".zfs" directories, as users who who have set snapdir=visible and are
taking frequent snapshots most likely do not want the snapshots
included in the locate database.


209571 28-Jun-2010 gavin

Various changes to make locate compilable with WARNS=6. Note that there
is still one issue on FreeBSD/arm (signed vs unsigned char) which prevents
actually bumping this to WARNS=6 - I'm still considering the correct
solution to this issue.

Tested by: make universe


201386 02-Jan-2010 ed

Build usr.bin/ with WARNS=6 by default.

Also add some missing $FreeBSD$ to keep svn happy.


195839 24-Jul-2009 jhb

Move the check to ensure the locate database has the minimum required size
when using mmap() before invoking mmap(). This avoids a confusing error
message when locate is invoked against a zero-size database after the
recent change to make mmap() fail requests to map 0 bytes.

Submitted by: Jaakko Heinonen jh of saunalahti dot fi
Approved by: re (kensmith)
MFC after: 1 week


190657 02-Apr-2009 delphij

Signed/unsigned fixes, should be WARNS=2 clean now.


190656 02-Apr-2009 delphij

Don't crash when we have an invalid count number.

PR: bin/32686
Submitted by: Jaakko Heinonen <jh saunalahti.fi>
MFC after: 1 week


182673 02-Sep-2008 kevlo

Use RUSAGE_SELF for the current process instead of hardcoded value


172718 17-Oct-2007 se

The previous version included too many file system types in the scan,
since "local" includes also synthetic file systems (e.g. /dev, /proc)
and loopback mounts.

This version uses lsvfs to identify file system types that are local
and additionally not synthetik, loopback mounts, or read-only. This
has been suggested by Craig Rodrigues half a year ago. The patch that
has been committed is based on his suggestion, but slightly modified.

The comments in locate.rc have been updated to reflect the change and
o include zfs and xfs in the example file system parameter that can
be used to override the default outlined above.

PR: 114101
Submitted by: rodrigc at crodrigues dot org (Craig Rodrigues)
MFC: 2 weeks


172676 15-Oct-2007 se

Make the updatedb script installed as /usr/libexec/locate.updatedb
inspect all local file systems, not only ufs and ext2fs. A number
of local file systems has been added over time, and at least zfs
has the potential to become a popular choice. Without this change
a ZFS root file system causes the script to ignore all file-systems
and leads to an empty locate db. (An alternative is to add all the
relevant file systems individually, which means that at least zfs,
xfs, ntfs, ntfs-3g, msdosfs should be added, probably more).


171507 19-Jul-2007 jhb

Update the default FILESYSTEMS value in a comment to note that ext2fs is
included in the default list in the locate.updatedb script.

Approved by: re (bmah)
Inspired by: mwlucas


162792 29-Sep-2006 ru

Markup fixes.


161409 17-Aug-2006 ceri

Further nitpicking.


161408 17-Aug-2006 ceri

Fix a grammatical error.
Funny how one character can completely distort the perception of a sentence :)


159519 11-Jun-2006 maxim

o Sync usage() with reality.


153197 07-Dec-2005 des

Add a -0 option for interoperability with xargs -0.

PR: bin/56558
Submitted by: Eugene Grosbein <eugen@grosbein.pp.ru>
MFC after: 2 weeks


152330 12-Nov-2005 grog

Look through ext2fs file systems as well as ufs.

This should almost certainly be extended to other local file systems
as well (ntfs springs to mind), but I don't have the ability to test
it.


149365 22-Aug-2005 cperciva

Most users probably aren't interested in locating 13000+ files named
[0-9a-f]{64}, so exclude portsnap's compressed snapshots from locate's
indexing.

Suggested by: silby
MFC after: 3 days


148109 17-Jul-2005 wosch

remove myself as maintainer


141846 13-Feb-2005 ru

Expand *n't contractions.


141563 09-Feb-2005 stefanf

Include missing headers.


140420 18-Jan-2005 ru

Sort sections.


140295 15-Jan-2005 ru

Eliminate macro calls inside literal displays.


139103 21-Dec-2004 ru

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


136910 24-Oct-2004 ru

For variables that are only checked with defined(), don't provide
any fake value.


132706 27-Jul-2004 cperciva

Merge the "multibyte not supported" BUG into the pre-existing BUGS
section.

Move the HISTORY section to place it before BUGS rather than after BUGS,
in order to minimize the chance of this error being reproduced in the
future. (Both mdoc(7) and 63% of manual pages have these sections listed
in this order.)


132576 23-Jul-2004 tjr

Document incorrect handling of multibyte characters.


131507 03-Jul-2004 ru

Deal with double whitespace.


131491 02-Jul-2004 ru

Mechanically kill hard sentence breaks.


116045 08-Jun-2003 charnier

The .Xr utility


100872 29-Jul-2002 ru

Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by: bde


100482 22-Jul-2002 tjr

Correct syntax error, remove the unescaped newline between "||" and the
command it is intended to test. pdksh and bash caught this syntax error,
sh(1) did not behave as intended.

PR: 40386


100313 18-Jul-2002 ru

s/${INSTALL} -c/${INSTALL} ${COPY}/


99970 14-Jul-2002 charnier

The .Nm utility


99284 02-Jul-2002 trhodes

Fix grammar in 1 sentence
Reword 'Usually faster in most cases' to 'and is faster in most cases'

PR: 40024 (partly)


98751 24-Jun-2002 naddy

Fix unaligned access error.

Reviewed by: ticso


98654 23-Jun-2002 obrien

Only got one of the Perl usages.


98653 23-Jun-2002 obrien

Replace a perl usage with an AWK one.

Submitted by: Bob Willcox <bob@immure.com>


98446 19-Jun-2002 eivind

Make locate.updatedb tell about the security risk when it is run as root.


92920 22-Mar-2002 imp

remove __P


90868 18-Feb-2002 mike

o Move NTOHL() and associated macros into <sys/param.h>. These are
deprecated in favor of the POSIX-defined lowercase variants.
o Change all occurrences of NTOHL() and associated marcros in the
source tree to use the lowercase function variants.
o Add missing license bits to sparc64's <machine/endian.h>.
Approved by: jake
o Clean up <machine/endian.h> files.
o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>.
o Remove prototypes for non-existent bswapXX() functions.
o Include <machine/endian.h> in <arpa/inet.h> to define the
POSIX-required ntohl() family of functions.
o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>,
and <sys/param.h>.
o Prepend underscores to the ntohl() family to help deal with
complexities associated with having MD (asm and inline) versions, and
having to prevent exposure of these functions in other headers that
happen to make use of endian-specific defines.
o Create weak aliases to the canonical function name to help deal with
third-party software forgetting to include an appropriate header.
o Remove some now unneeded pollution from <sys/types.h>.
o Add missing <arpa/inet.h> includes in userland.

Tested on: alpha, i386
Reviewed by: bde, jake, tmm


88787 01-Jan-2002 wosch

A global is used even though the value is
passed through the function call.

Submitted by: "Crist J . Clark" <cjc@freebsd.org>


87759 12-Dec-2001 mikeh

Print the path with the shortest absolute length, rather than
arbitrarily selecting one.

PR: bin/14361
Approved by: wosch
MFC after: 1 week


81251 07-Aug-2001 ru

mdoc(7) police:

Avoid using parenthesis enclosure macros (.Pq and .Po/.Pc) with plain text.
Not only this slows down the mdoc(7) processing significantly, but it also
has an undesired (in this case) effect of disabling hyphenation within the
entire enclosed block.


79755 15-Jul-2001 dd

Remove whitespace at EOL.


79535 10-Jul-2001 ru

mdoc(7) police: removed HISTORY info from the .Os call.


78686 24-Jun-2001 dd

Remove duplicate words.


75286 07-Apr-2001 ru

beforeinstall -> SCRIPTS.


74848 27-Mar-2001 ru

MAN[1-9] -> MAN.


70716 06-Jan-2001 wosch

Off by one error in reading mmap data.

Submitted by: Martin Kraemer <Martin.Kraemer@Fujitsu-Siemens.com>


70197 19-Dec-2000 ru

Prepare for mdoc(7)NG.


68716 14-Nov-2000 ru

Use Fx macro wherever possible.


65428 04-Sep-2000 imp

getopt and friends are declared in <unistd.h>
getopt returns -1 not EOF.


61682 14-Jun-2000 alex

/etc/weekly --> /etc/periodic/weekly/310.locate

PR: 19268
Submitted by: Uwe Pierau <uwe.pierau@tu-clausthal.de>
Reviewed by: asmodai


57782 06-Mar-2000 sheldonh

Remove more single-space hard sentence breaks.


57670 01-Mar-2000 sheldonh

Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.


57577 28-Feb-2000 gsutter

underline "pattern" in the synopsis.

PR: 17042
Submitted by: Edwin Groothuis <mavetju@chello.nl>


56764 28-Jan-2000 asmodai

Fix typo's.

PR: 16430
Submitted by: Adam.Kranzel@teru.dyndns.org (shade@dnai.com)


55835 12-Jan-2000 kris

Use mktemp(1) for tempfiles (concatdb.sh), and increase the number of X's.


50477 28-Aug-1999 peter

$Id$ -> $FreeBSD$


48792 12-Jul-1999 nik

Add $Id$, to make it simpler for members of the translation teams to
track.

The $Id$ line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;

.\" $Id$
.\"

If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.

Approved by: bde


47758 05-Jun-1999 ru

Fix a width.


47197 14-May-1999 wosch

Delete debug line.

PR: bin/9793
Submitted by: Andy Farkas <andyf@speednet.com.au>


47174 14-May-1999 wosch

Don't overwrite the variable LOCATE_CONFIG
This is useful for people who want index their home directory:

$ env LOCATE_CONFIG=$HOME/.locate.rc /usr/libexec/locate.updatedb

Submitted by: Dmitry Morozovsky <marck@rinet.ru>


44339 28-Feb-1999 ache

fix PRUNEPATHS assignment


43805 09-Feb-1999 wosch

Added myself as maintainer.


41413 29-Nov-1998 wosch

Set TMPDIR to /tmp
Use the new find option -s for sorted output.
Remove the temp directory in trap.


41393 29-Nov-1998 wosch

Set TMPDIR to /tmp
Remove the temp directory in trap.
Replace the buggy awk script with a correct perl script.

Don't make a copy of the input data anymore if the input is already
sorted (option -presort). This scheme avoid large temporary files in
/tmp.


41392 29-Nov-1998 wosch

Recommended TMPDIR is now /tmp (undo rev 1.6)


37049 18-Jun-1998 wosch

Create a save TMPDIR using `mktemp -d'.


36057 15-May-1998 jkoshy

Add cross references for find(1), locate(1), whereis(1) and which(1).

Submitted by: Josh Gillam <josh@quick.net>
PR: docs/6642


34313 08-Mar-1998 wosch

Change default temporary directory (TMPDIR) from /tmp to /var/tmp.

Mosts users seems to have a larger /var/tmp partition
than /tmp - IMHO silly but who cares?


34312 08-Mar-1998 wosch

Improve shell variable substitution.


33151 07-Feb-1998 alex

locate(1) is no longer started by /etc/weekly.


32148 01-Jan-1998 alex

Typo fix.


31819 17-Dec-1997 bde

<bsd.prog.mk> has always included ../Makefile.inc, and there are no
complications involving .PATH or dependencies, so don't include it here.


31703 13-Dec-1997 sef

Allow TMPDIR to be set and actually *used*; if it not set, it defaults
to /tmp.


29739 23-Sep-1997 wosch

Float overflow in statistic function for large databases
(>100MB characters).


27574 21-Jul-1997 charnier

Use err(3). Use .Pa macro for filenames in man page.


24997 18-Apr-1997 jmg

fix up this man page

one typo was:
Submitted by: Josh Gilliam
PR#3319


24360 29-Mar-1997 imp

compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.


23420 06-Mar-1997 jmg

fix a couple misspellings, one of 'em closes pr 2892.


23012 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21786 16-Jan-1997 alex

Sweep through the tree fixing mmap() usage:

- Use MAP_FAILED instead of the constant -1 to indicate
failure (required by POSIX).
- Removed flag arguments of '0' (required by POSIX).
- Fixed code which expected an error return of 0.
- Fixed code which thought any address with the high bit set
was an error.
- Check for failure where no checks were present.

Discussed with: bde


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


20406 13-Dec-1996 wosch

Fix uninitialized memory read for case insensitive search. Harmless.

submitted by: purify


19297 31-Oct-1996 wosch

add forgotten variable $locate


19214 27-Oct-1996 alex

Typo: to --> too. Fixes PR#1907.

Pointed out by: Pat Lashley <patl@Phoenix.Volant.ORG>


19213 27-Oct-1996 wosch

Do not store character 30. I made a test at my CS department
and at least one user use this char in a file name. Older
locate implementions core'd.


19134 23-Oct-1996 ache

Rename FNM_ICASE to FNM_CASEFOLD


19060 20-Oct-1996 wosch

Better case insensitve search support for pattern with meta chars.
In some rare cases this does not work proper before flag FNM_ICASE was
added to fnmatch(3).


18905 13-Oct-1996 wosch

8-Bit character support.

Old locate(1) programs still works with the new database format, print
some garbage for 8 bit characters, but don't core (maybe except char 30).

7-Bit Puritan should not notice any difference. Same speed,
Same database size if the database contain only ASCII characters.

Reviewed by: ache


18895 12-Oct-1996 wosch

export variable TMPDIR (which maybe set, but not exported in /etc/locate.rc)


18829 09-Oct-1996 wosch

Fix searching for shell quoting characters. I guess it was
broken since locate exists.

This works now

$ locate '*\['
$ locate '*i386-\**'
$ locate '*[C\[]'


18311 16-Sep-1996 wosch

#include <fastfind.c> -> #include "fastfind.c"


18300 14-Sep-1996 wosch

remove unnecessary boundary check, 2x faster
code cleanup


18060 05-Sep-1996 guido

Document the existance of a configuration file for updatedb.
Fix a typo in the default rc file and add a comment about
default values.


17991 01-Sep-1996 wosch

Fix to work with obj directories: -I. -> -I${.CURDIR}
Submitted by: Bruce


17980 31-Aug-1996 wosch

optimized search algorithm
faster IO due mmap(2) [-m | -s]
better error check for damaged databases
support for databases in network byte order (SunOS/sparc)
optional case insensitve search [-i]
optional multiple databases
optional multiple pattern
new enviroment variable LOCATE_PATH for database(s)
[-S] print some statistic about the database
[-l number] limit output to number file names
[-c] suppress normal output; instead print a count of matching file names


17972 31-Aug-1996 wosch

NULL -> '\0'
Submitted by: Bruce, see also c-faq 5.6 and 5.9


17943 30-Aug-1996 peter

fix prototypes/forward declarations/return type
kill obsolete updatedb.csh, it's been rewritten in sh now.


17942 30-Aug-1996 peter

delete unused #include <string.h>


17849 27-Aug-1996 wosch

sync copyright with /usr/share/examples/etc/bsd-style-copyright


17776 22-Aug-1996 wosch

code cleanup


17592 14-Aug-1996 wosch

bigram
Bigram does not remove newline at end of filename. This
break particulary the bigram algorithm and /var/db/locate.database
grow up 15 %.

Bigram does not check for characters outside 32-127.

The bigram output is silly and need ~1/2 CPU time of
database rebuilding.

old:
locate.bigram < $filelist | sort | uniq -c | sort -nr
^^^^^^^^^^^^^^
this can easy made bigram

new:
bigram < $filelist | sort -nr

code
Code does not check for char 31.
Use a lookup array instead a function. 3 x faster.

updatedb
rewritten
sync with bigram changes

read config file /etc/locate.rc if exists
submitted by: guido@gvr.win.tue.nl (Guido van Rooij)

concatdb - concatenate locate databases
mklocatedb - build locate database


14388 05-Mar-1996 dg

Use '-fstype ufs' rather than '-fstype local' on the find command to avoid
special non-filesystems like procfs from being included.


14034 11-Feb-1996 mpp

Added a small man page for locate.updatedb(8).


14033 11-Feb-1996 mpp

Added some info describing the script that updates the database,
and the fact that it is usually run by /etc/weekly.
Closes docs/127.


12155 09-Nov-1995 nate

Re-wrote the locate.updatedb script in /bin/sh for speed and portability.

Obtained from: Partially my work in 1.


9701 25-Jul-1995 bde

Change `install' to `${INSTALL}' so that default install flags can be
specified in the top level Makefiles.


8874 30-May-1995 rgrimes

Remove trailing whitespace.


5761 21-Jan-1995 ache

Better protection against too long pathes and 8bit controls in file
names, locate dumps core instead


2540 07-Sep-1994 jkh

Fix a longstanding bogon with setenv usage.
Submitted by: jkh


1591 27-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1590,
which included commits to RCS files with non-trunk default branches.