emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/locate.el,v


From: Luc Teirlinck
Subject: [Emacs-diffs] Changes to emacs/lisp/locate.el,v
Date: Tue, 04 Jul 2006 00:03:53 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Luc Teirlinck <teirllm> 06/07/04 00:03:53

Index: locate.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/locate.el,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- locate.el   16 Mar 2006 01:43:59 -0000      1.36
+++ locate.el   4 Jul 2006 00:03:53 -0000       1.37
@@ -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 <address@hidden>
 (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,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]