emacs-devel
[Top][All Lists]
Advanced

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

Re: Reverting *Locate* buffers.


From: Luc Teirlinck
Subject: Re: Reverting *Locate* buffers.
Date: Mon, 26 Jun 2006 20:55:24 -0500 (CDT)

Peter Breton wrote:

   I've never actually used the revert feature.. someone
   else sent me in a patch for it, and it seemed harmless
   enough so I added it. I find the idea of reverting the
   buffer by rebuilding the database to be a bit odd; I
   would just rerun the search, and have an additional
   function to rebuild the database. However, if people
   are happy with the existing feature, then it still
   seems harmless to me :)

What about just setting the standard value of `locate-update-when-revert'
to nil?  Then the default behavior will make sense for most people and
people who prefer the old behavior just have to customize an option
to get it back.

   Having an additional warning when not running as root
   also sounds like a good idea.

The problem is that there is not that much space in the minibuffer.
But the docstring of `locate-update-when-revert' can mention the
problem.  Since one would need need to explicitly set this non-nil to
get asked the question, presumably people will read the docstring
before doing so.

The following patches and NEWS entry implement this.  I can install if
we all agree on this.

===File ~/NEWS-diff=========================================
*** NEWS        25 Jun 2006 09:51:35 -0500      1.1367
--- NEWS        26 Jun 2006 20:32:40 -0500      
***************
*** 3494,3499 ****
--- 3494,3508 ----
  (defun PP (data) (insert (format "%S\n" data)))
  (ewoc-create 'PP "start\n\n" "\n" t)
  
+ ** Locate changes
+ 
+ ---
+ *** By default, reverting the *Locate* buffer now just runs the last
+ `locate' command back over again without offering to update the locate
+ database (which normally only works if you have root privileges).  If
+ you prefer the old behavior, set the new customizable option
+ `locate-update-when-revert' to t.
+ 
  
  * Changes in Emacs 22.1 on non-free operating systems
  
============================================================

===File ~/locate-diff=======================================
*** locate.el   15 Mar 2006 19:31:47 -0600      1.36
--- locate.el   26 Jun 2006 20:11:34 -0500      
***************
*** 191,196 ****
--- 191,205 ----
    :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.)
+ 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
***************
*** 557,568 ****
  
  ;; 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'."
    (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)))))
  
  ;;; Modified three functions from `dired.el':
  ;;;   dired-find-directory,
--- 566,579 ----
  
  ;; From Stephen Eglen <address@hidden>
  (defun locate-update (ignore1 ignore2)
!   "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)))
!     (and locate-update-when-revert
!        (yes-or-no-p "Update locate database (may take a few seconds)? ")
!        (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]