;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Sat Jun  6 14:09:37 1998
;;; from file /gd/gnu/emacs/lisp/locate.el
;;; in Emacs version 20.2.94.1
;;; with bytecomp version 2.45
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`locate.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\304\300!\204 \305\300	B\306\307\305\310\n\311\312&\207" [locate-current-filter current-load-list :prefix :group boundp nil custom-declare-group locate "Interface to the locate command." "locate-" external] 8)
#@61 *The executable program used to search a database of files.
(custom-declare-variable 'locate-command '"locate" '(#$ . -827) :type 'string :group 'locate)
#@49 The history list used by the \[locate] command.
(defvar locate-history-list nil (#$ . 987))
#@51 *Function used to create the locate command line.
(custom-declare-variable 'locate-make-command-line ''locate-default-make-command-line '(#$ . -1085) :type 'function :group 'locate)
#@65 *Name of the buffer to show results from the \[locate] command.
(custom-declare-variable 'locate-buffer-name '"*Locate*" '(#$ . -1273) :type 'string :group 'locate)
#@44 *File name for the database of file names.
(custom-declare-variable 'locate-fcodes-file 'nil '(#$ . -1444) :type '(choice file (const nil)) :group 'locate)
#@41 *Face used to highlight locate entries.
(custom-declare-variable 'locate-mouse-face ''highlight '(#$ . -1606) :type 'face :group 'locate)
#@44 *Face used to highlight the locate header.
(custom-declare-variable 'locate-header-face ''underline '(#$ . -1750) :type 'face :group 'locate)
#@49 The command used to update the locate database.
(custom-declare-variable 'locate-update-command '"updatedb" '(#$ . 1898) :type 'string :group 'locate)
(defalias 'locate-default-make-command-line #[(search-string) "	D\207" [locate-command search-string] 2])
#@65 Run the program `locate', putting results in `*Locate*' buffer.
(defalias 'locate #[(search-string &optional filter) "	!\211@\nA\306\213\210\307 \230?\205 \310!+\207" [locate-make-command-line search-string locate-cmd-list locate-cmd locate-cmd-args locate-buffer-name ((byte-code "\305!q\210\306 \210\307 \210	\310\311\312\313\312\f&\210	\203 \314	!\210\315 \207" [locate-buffer-name filter locate-current-filter locate-cmd locate-cmd-args get-buffer-create locate-mode erase-buffer apply call-process nil t locate-filter-output locate-do-setup] 7)) buffer-name switch-to-buffer-other-window] 3 (#$ . 2162) (list (read-from-minibuffer "Locate: " nil nil nil 'locate-history-list))])
#@39 Run the locate command with a filter.
(defalias 'locate-with-filter #[(search-string filter) "\302	\"\207" [search-string filter locate] 3 (#$ . 2864) (list (read-from-minibuffer "Locate: " nil nil nil 'locate-history-list) (read-from-minibuffer "Filter: " nil nil nil 'grep-history))])
#@40 Filter output from the locate command.
(defalias 'locate-filter-output #[(filter) "eb\210\301\302!!\207" [filter delete-non-matching-lines regexp-quote] 3 (#$ . 3158)])
#@39 Local keymap for Locate mode buffers.
(defvar locate-mode-map nil (#$ . 3334))
(byte-code "\204B \302\303!\210\304	!\305\306\307#\210\305\310\307#\210\305\311\307#\210\305\312\307#\210\305\313\307#\210\305\314\307#\210\305\315\316#\210\305\317\320#\210\305\321\322#\210\302\207" [locate-mode-map dired-mode-map require dired copy-keymap define-key [menu-bar Dired] undefined [menu-bar subdir] [menu-bar mark executables] [menu-bar mark directory] [menu-bar mark directories] [menu-bar mark symlinks] [mouse-2] mouse-locate-view-file "t" locate-tags "U" dired-unmark-all-files-no-query] 4)
#@42 The amount of indentation for each file.
(defconst locate-filename-indentation 4 (#$ . 3941))
(defalias 'locate-get-file-positions #[nil "\212\302\210`\303y\210	u\210`*D\207" [eol locate-filename-indentation nil 0] 2])
#@48 Return the current line number, as an integer.
(defalias 'locate-current-line-number #[nil "\300e`\"i\301=\203 \302\202 \301\\\207" [count-lines 0 1] 3 (#$ . 4169)])
(defalias 'locate-get-filename #[nil "\302 \303 \304=?\205 \305=?\205 	\306\234	\304\234{*\207" [lineno pos locate-get-file-positions locate-current-line-number 1 2 0] 3])
#@47 In Locate mode, view a file, using the mouse.
(defalias 'mouse-locate-view-file #[(event) "\212\211A@)\211A@:\203 	A@@\202 	A@)b\210\302\303 !)\207" [event position view-file locate-get-filename] 3 (#$ . 4521) "@e"])
#@57 Major mode for the `*Locate*' buffer made by \[locate].
(defalias 'locate-mode #[nil "\306 \210\307!\210\310\311\312\312\313 BC\314\315!\210\316\317\"\314\320!\210\321\314\322!\210\323\314\324!\210\325\326\327!\207" [locate-mode-map major-mode mode-name default-directory dired-subdir-alist locate-filename-indentation kill-all-local-variables use-local-map locate-mode "Locate" "/" point-min-marker make-local-variable dired-move-to-filename-regexp make-string 32 dired-actual-switches "" dired-permission-flags-regexp "^\\(    \\)" revert-buffer-function locate-update run-hooks locate-mode-hook] 3 (#$ . 4749)])
(defalias 'locate-do-setup #[nil "@eb\210\212m\203! \305\n!\210\203 \306\307	#\210\202! \306\310	\"\210\311	!\210m?\2059 \312\313\f\314#\210\315 \210\316y\210\202% *\207" [locate-history-list search-string locate-buffer-name locate-current-filter locate-filename-indentation kill-buffer error "Locate: no match for %s in database using filter %s" "Locate: no match for %s in database" locate-insert-header insert-char 32 t locate-set-properties 1] 4])
(defalias 'locate-set-properties #[nil "\212\302 \303\304\234\305\234\306	D#*\207" [pos locate-mouse-face locate-get-file-positions add-text-properties 0 1 mouse-face] 5])
(defalias 'locate-insert-header #[(search-string) "\306\307\310!\311QC\f\203\" \312P\n\313\310\f!\311R\314\fC	\"\203: \315P\n\316\317\310!\311\260\314C	\"\320P\n\321P\322\323\324	!#c\210\212eb\210\325\n!\205 \326\327\224\327\225\330D#\210\331\224\203p \326\331\224\331\225\330D#\210\332\224\205 \326\332\224\332\225\330D#,\207" [search-string locate-format-args locate-regexp-match locate-format-string locate-fcodes-file locate-current-filter "Matches for %s" " *Matches for \\(" regexp-quote "\\)" " in %s" " in \\(" append " using filter %s" " using filter " "\\(" ": \n\n" ": \n" apply format reverse looking-at add-text-properties 1 face 2 3 locate-header-face] 5])
#@40 Visit a tags table in `*Locate*' mode.
(defalias 'locate-tags #[nil "\301 \302\303\304\"!\205 \305!)\207" [tags-table locate-get-filename y-or-n-p format "Visit tags table %s? " visit-tags-table] 4 (#$ . 6716) nil])
#@101 Update the locate database.
Database is updated using the shell command in `locate-update-command'.
(defalias 'locate-update #[(ignore1 ignore2) "@\303\304!\205 \305\n!\210\306	!)\207" [locate-history-list str locate-update-command yes-or-no-p "Update locate database (may take a few seconds)? " shell-command locate] 2 (#$ . 6943)])
(provide 'locate)
