emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: patch for locate.el when called with prefix arg


From: Luc Teirlinck
Subject: Re: patch for locate.el when called with prefix arg
Date: Sun, 22 Apr 2007 23:16:31 -0500 (CDT)

New patch identical to the last one, except for a trivial one-line
docstring change in `locate-with-filter':

ARG is the interactive prefix arg.

gets replaced by:

ARG is the interactive prefix arg, which has the same effect as in `locate'.
                                   

===File ~/locate-diff-8=====================================
*** locate.el   21 Apr 2007 00:00:52 -0500      1.42
--- locate.el   22 Apr 2007 23:04:26 -0500      
***************
*** 117,122 ****
--- 117,123 ----
  (defvar locate-current-filter nil)
  (defvar locate-local-filter nil)
  (defvar locate-local-search nil)
+ (defvar locate-local-prompt nil)
  
  (defgroup locate nil
    "Interface to the locate command."
***************
*** 221,227 ****
  
  (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)
  
--- 222,231 ----
  
  (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.
! 
! Setting this option non-nil actually inverts the meaning of a prefix arg;
! that is, with a prefix arg, you get the default behavior."
    :group 'locate
    :type 'boolean)
  
***************
*** 241,248 ****
         (skip-chars-backward "." pt)
         (point)))))
  
  ;;;###autoload
! (defun locate (search-string &optional filter)
    "Run the program `locate', putting results in `*Locate*' buffer.
  Pass it SEARCH-STRING as argument.  Interactively, prompt for SEARCH-STRING.
  With prefix arg, prompt for the exact shell command to run instead.
--- 245,275 ----
         (skip-chars-backward "." pt)
         (point)))))
  
+ (defun locate-prompt-for-search-string ()
+   (if (or (and current-prefix-arg
+              (not locate-prompt-for-command))
+         (and (not current-prefix-arg) locate-prompt-for-command))
+       (let ((locate-cmd (funcall locate-make-command-line "")))
+       (read-from-minibuffer
+        "Run locate (like this): "
+        (cons
+         (concat (car locate-cmd) "  "
+                 (mapconcat 'identity (cdr locate-cmd) " "))
+         (+ 2 (length (car locate-cmd))))
+        nil nil 'locate-history-list))
+     (let* ((default (locate-word-at-point))
+          (input
+           (read-from-minibuffer
+            (if  (> (length default) 0)
+                (format "Locate (default %s): " default)
+              (format "Locate: "))
+            nil nil nil 'locate-history-list default t)))
+       (and (equal input "") default
+          (setq input default))
+       input)))
+ 
  ;;;###autoload
! (defun locate (search-string &optional filter arg)
    "Run the program `locate', putting results in `*Locate*' buffer.
  Pass it SEARCH-STRING as argument.  Interactively, prompt for SEARCH-STRING.
  With prefix arg, prompt for the exact shell command to run instead.
***************
*** 259,296 ****
  the variables `locate-command' or `locate-make-command-line'.
  
  The main use of FILTER is to implement `locate-with-filter'.  See
! the docstring of that function for its meaning."
    (interactive
!       (list
!        (if (or (and current-prefix-arg
!                   (not locate-prompt-for-command))
!              (and (not current-prefix-arg) locate-prompt-for-command))
!          (let ((locate-cmd (funcall locate-make-command-line "")))
!            (read-from-minibuffer
!             "Run locate (like this): "
!             (cons
!              (concat (car locate-cmd) "  "
!                      (mapconcat 'identity (cdr locate-cmd) " "))
!                      (+ 2 (length (car locate-cmd))))
!             nil nil 'locate-history-list))
!        (let* ((default (locate-word-at-point))
!              (input
!               (read-from-minibuffer
!                (if  (> (length default) 0)
!                    (format "Locate (default %s): " default)
!                  (format "Locate: "))
!                nil nil nil 'locate-history-list default t)))
!              (and (equal input "") default
!                   (setq input default))
!              input))))
    (if (equal search-string "")
        (error "Please specify a filename to search for"))
    (let* ((locate-cmd-list (funcall locate-make-command-line search-string))
         (locate-cmd (car locate-cmd-list))
         (locate-cmd-args (cdr locate-cmd-list))
         (run-locate-command
!         (or (and current-prefix-arg (not locate-prompt-for-command))
!             (and (not current-prefix-arg) locate-prompt-for-command)))
         )
  
      ;; Find the Locate buffer
--- 286,308 ----
  the variables `locate-command' or `locate-make-command-line'.
  
  The main use of FILTER is to implement `locate-with-filter'.  See
! the docstring of that function for its meaning.
! 
! ARG is the interactive prefix arg."
    (interactive
!    (list
!     (locate-prompt-for-search-string)
!     nil
!     current-prefix-arg))
! 
    (if (equal search-string "")
        (error "Please specify a filename to search for"))
    (let* ((locate-cmd-list (funcall locate-make-command-line search-string))
         (locate-cmd (car locate-cmd-list))
         (locate-cmd-args (cdr locate-cmd-list))
         (run-locate-command
!         (or (and arg (not locate-prompt-for-command))
!             (and (not arg) locate-prompt-for-command)))
         )
  
      ;; Find the Locate buffer
***************
*** 304,309 ****
--- 316,322 ----
        (setq locate-current-filter filter)
        (set (make-local-variable 'locate-local-search) search-string)
        (set (make-local-variable 'locate-local-filter) filter)
+       (set (make-local-variable 'locate-local-prompt) run-locate-command)
  
        (if run-locate-command
            (shell-command search-string locate-buffer-name)
***************
*** 324,330 ****
    )
  
  ;;;###autoload
! (defun locate-with-filter (search-string filter)
    "Run the executable program `locate' with a filter.
  This function is similar to the function `locate', which see.
  The difference is that, when invoked interactively, the present function
--- 337,343 ----
    )
  
  ;;;###autoload
! (defun locate-with-filter (search-string filter &optional arg)
    "Run the executable program `locate' with a filter.
  This function is similar to the function `locate', which see.
  The difference is that, when invoked interactively, the present function
***************
*** 334,347 ****
  contain a match for the regular expression FILTER; this is often useful
  to constrain a big search.
  
  When called from Lisp, this function is identical with `locate',
  except that FILTER is not optional."
    (interactive
!    (list (read-from-minibuffer "Locate: " nil nil
!                              nil 'locate-history-list)
!        (read-from-minibuffer "Filter: " nil nil
!                              nil 'locate-grep-history-list)))
!   (locate search-string filter))
  
  (defun locate-filter-output (filter)
    "Filter output from the locate command."
--- 347,363 ----
  contain a match for the regular expression FILTER; this is often useful
  to constrain a big search.
  
+ ARG is the interactive prefix arg, which has the same effect as in `locate'.
+ 
  When called from Lisp, this function is identical with `locate',
  except that FILTER is not optional."
    (interactive
!    (list
!     (locate-prompt-for-search-string)
!     (read-from-minibuffer "Filter: " nil nil
!                         nil 'locate-grep-history-list)
!     current-prefix-arg))
!   (locate search-string filter arg))
  
  (defun locate-filter-output (filter)
    "Filter output from the locate command."
***************
*** 356,362 ****
     (require 'dired)
  
     (setq locate-mode-map (copy-keymap dired-mode-map))
- 
     ;; Undefine Useless Dired Menu bars
     (define-key locate-mode-map [menu-bar Dired]   'undefined)
     (define-key locate-mode-map [menu-bar subdir]  'undefined)
--- 372,377 ----
***************
*** 584,590 ****
    "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 ((locate-buffer-name (buffer-name)))
      (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
--- 599,606 ----
    "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 ((locate-buffer-name (buffer-name))
!       (locate-prompt-for-command locate-local-prompt))
      (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
============================================================




reply via email to

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