# HG changeset patch # User Luc Teirlinck # Date 1151971433 0 # Node ID 6958f9575abf25f90b669fb8b42e5c6861b196e3 # Parent c7f90876123f586f7091f4159a8485a279471eda (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. diff -r c7f90876123f -r 6958f9575abf lisp/locate.el --- 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 (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,