Mercurial > emacs
changeset 71600:6958f9575abf
(locate-update-when-revert): New option.
(locate-update-path): New option (suggested by Michael Albinus).
(locate-prompt-for-command): Whitespace change.
(locate-update): No longer offer to update the locate database by
default. Implement the two new options.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Tue, 04 Jul 2006 00:03:53 +0000 |
parents | c7f90876123f |
children | c7218dbd298e |
files | lisp/locate.el |
diffstat | 1 files changed, 33 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/locate.el Mon Jul 03 23:41:32 2006 +0000 +++ b/lisp/locate.el Tue Jul 04 00:03:53 2006 +0000 @@ -191,17 +191,37 @@ :group 'locate :version "22.1") +(defcustom locate-update-when-revert nil + "This option affects how the *Locate* buffer gets reverted. +If non-nil, offer to update the locate database when reverting that buffer. +\(Normally, you need to have root privileges for this to work. See the +option `locate-update-path'.) +If nil, reverting does not update the locate database." + :type 'boolean + :group 'locate + :version "22.1") + (defcustom locate-update-command "updatedb" "The executable program used to update the locate database." :type 'string :group 'locate) +(defcustom locate-update-path "/" + "The default directory from where `locate-update-command' is called. +Usually, root permissions are required to run that command. This +can be achieved by setting this option to \"/su::\" or \"/sudo::\" +\(if you have the appropriate authority). If your current user +permissions are sufficient to run the command, you can set this +option to \"/\"." + :type 'string + :group 'locate + :version "22.1") + (defcustom locate-prompt-for-command nil "If non-nil, the `locate' command prompts for a command to run. Otherwise, that behavior is invoked via a prefix argument." :group 'locate - :type 'boolean - ) + :type 'boolean) ;; Functions @@ -557,12 +577,18 @@ ;; From Stephen Eglen <stephen@cns.ed.ac.uk> (defun locate-update (ignore1 ignore2) - "Update the locate database. -Database is updated using the shell command in `locate-update-command'." + "Revert the *Locate* buffer. +If `locate-update-when-revert' is non-nil, offer to update the +locate database using the shell command in `locate-update-command'." (let ((str (car locate-history-list))) - (cond ((yes-or-no-p "Update locate database (may take a few seconds)? ") - (shell-command locate-update-command) - (locate str))))) + (and locate-update-when-revert + (yes-or-no-p "Update locate database (may take a few seconds)? ") + ;; `expand-file-name' is used in order to autoload Tramp if + ;; necessary. It cannot be loaded when `default-directory' + ;; is remote. + (let ((default-directory (expand-file-name locate-update-path))) + (shell-command locate-update-command))) + (locate str))) ;;; Modified three functions from `dired.el': ;;; dired-find-directory,