all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: pbreton@cs.umb.edu, rms@gnu.org, emacs-devel@gnu.org
Subject: Re: locate-with-filter
Date: Mon, 13 Mar 2006 23:39:14 -0600 (CST)	[thread overview]
Message-ID: <200603140539.k2E5dE307411@raven.dms.auburn.edu> (raw)
In-Reply-To: <uoe09tz70.fsf@gnu.org> (message from Eli Zaretskii on Tue, 14 Mar 2006 06:41:55 +0200)

Eli Zaretskii wrote:

   I think "executable command" is not clear enough.  How about "program"
   or "executable program"?

I used this in the patch below.  In addition, I also noticed that
even after my changes, it may not be clear what the database consists
of or where it comes from.  So I suggest the following updated patch,
which addresses this.

===File ~/locate-diff=======================================
*** locate.el	06 Feb 2006 16:01:50 -0600	1.35
--- locate.el	13 Mar 2006 23:39:11 -0600	
***************
*** 122,128 ****
    :group 'external)
  
  (defcustom locate-command "locate"
!   "*The executable program used to search a database of files."
    :type 'string
    :group 'locate)
  
--- 122,148 ----
    :group 'external)
  
  (defcustom locate-command "locate"
!   "Executable program for searching a database of files.
! The Emacs commands `locate' and `locate-with-filter' use this.
! The value should be a program that can be called from a shell
! with one argument, SEARCH-STRING.  The program determines which
! database it searches.  The output of the program should consist
! of those file names in the database that match SEARCH-STRING,
! listed one per line, possibly with leading or trailing
! whitespace.  If the output is in another form, you may have to
! redefine the function `locate-get-file-positions'.
! 
! The program may interpret SEARCH-STRING as a literal string, a
! shell pattern or a regular expression.  The exact rules of what
! constitutes a match may also depend on the program.
! 
! The standard value of this variable is \"locate\".
! This program normally searches a database of all files on your
! system, or of all files that you have access to.  Do
! `M-x man RET locate RET' to check whether you have this program
! installed, how it interprets SEARCH-STRING, how it determines
! which files match SEARCH-STRING, and how it maintains its
! database.  (The details vary highly with the version.)"
    :type 'string
    :group 'locate)
  
***************
*** 133,139 ****
    "The history list used by the \\[locate-with-filter] command.")
  
  (defcustom locate-make-command-line 'locate-default-make-command-line
!   "*Function used to create the locate command line."
    :type 'function
    :group 'locate)
  
--- 153,164 ----
    "The history list used by the \\[locate-with-filter] command.")
  
  (defcustom locate-make-command-line 'locate-default-make-command-line
!   "Function used to create the locate command line.
! The Emacs commands `locate' and `locate-with-filter' use this.
! This function should take one argument, a string (the name to find)
! and return a list.  The first element of the list should be a command
! to be executed by a shell, the remaining elements should be the arguments
! to that command (including the name to find)."
    :type 'function
    :group 'locate)
  
***************
*** 143,149 ****
    :group 'locate)
  
  (defcustom locate-fcodes-file nil
!   "*File name for the database of file names."
    :type '(choice (const :tag "None" nil) file)
    :group 'locate)
  
--- 168,181 ----
    :group 'locate)
  
  (defcustom locate-fcodes-file nil
!   "File name for the database of file names used by `locate'.
! If non-nil, `locate' uses this name in the header of the `*Locate*'
! buffer.  If nil, it mentions no file name in that header.
! 
! Just setting this variable does not actually change the database
! that `locate' searches.  The executive program that the Emacs
! function `locate' uses, as given by the variables `locate-command'
! or `locate-make-command-line', determines the database."
    :type '(choice (const :tag "None" nil) file)
    :group 'locate)
  
***************
*** 161,172 ****
    :version "22.1")
  
  (defcustom locate-update-command "updatedb"
!   "The command used to update the locate database."
    :type 'string
    :group 'locate)
  
  (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
--- 193,204 ----
    :version "22.1")
  
  (defcustom locate-update-command "updatedb"
!   "The executable program used to update the locate database."
    :type 'string
    :group 'locate)
  
  (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
***************
*** 190,197 ****
  
  ;;;###autoload
  (defun locate (search-string &optional filter)
!   "Run the program `locate', putting results in `*Locate*' buffer.
! With prefix arg, prompt for the locate command to run."
    (interactive
        (list
         (if (or (and current-prefix-arg
--- 222,246 ----
  
  ;;;###autoload
  (defun locate (search-string &optional filter)
!   "Run a \"locate\" type program, putting results in `*Locate*' buffer.
! Pass it SEARCH-STRING as argument.  Interactively, prompt for SEARCH_STRING.
! With prefix arg, prompt for the exact \"locate\" command to run instead.
! 
! Without prefix arg, this normally runs the executable program GNU locate.
! This program searches for those file names in a database that match
! SEARCH-STRING and normally outputs all matching absolute file names,
! one per line.  The database normally consists of all files on your
! system, or of all files that you have access to.  Do
! `M-x man RET locate RET' to check whether you have this program
! installed, how it interprets SEARCH-STRING, how it determines
! what constitutes a match, and how it maintains its database.
! \(The details vary highly with the version.)
! 
! You can specify another program for this command to run by customizing
! 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
***************
*** 255,264 ****
  
  ;;;###autoload
  (defun locate-with-filter (search-string filter)
!   "Run the locate command with a filter.
  
! The filter is a regular expression. Only results matching the filter are
! shown; this is often useful to constrain a big search."
    (interactive
     (list (read-from-minibuffer "Locate: " nil nil
  			       nil 'locate-history-list)
--- 304,319 ----
  
  ;;;###autoload
  (defun locate-with-filter (search-string filter)
!   "Run a \"locate\" type program with a filter.
! This is similar to `locate', which see.  The difference is that,
! when invoked interactively, this command prompts for both SEARCH-STRING
! and FILTER.  It passes SEARCH-STRING to the locate program.
! It only shows those lines in the output of the locate program
! that contain a match for the regular expression FILTER in the
! `*Locate*' buffer; 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)
***************
*** 269,275 ****
  (defun locate-filter-output (filter)
    "Filter output from the locate command."
    (goto-char (point-min))
!   (delete-non-matching-lines filter))
  
  (defvar locate-mode-map nil
    "Local keymap for Locate mode buffers.")
--- 324,330 ----
  (defun locate-filter-output (filter)
    "Filter output from the locate command."
    (goto-char (point-min))
!   (keep-lines filter))
  
  (defvar locate-mode-map nil
    "Local keymap for Locate mode buffers.")
============================================================

  reply	other threads:[~2006-03-14  5:39 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-11 23:46 locate-with-filter Richard Stallman
2006-03-12 23:59 ` locate-with-filter Luc Teirlinck
2006-03-13  0:18   ` locate-with-filter Luc Teirlinck
2006-03-13  4:39     ` locate-with-filter Eli Zaretskii
2006-03-13 11:30       ` locate-with-filter Peter Breton
2006-03-13 12:55   ` locate-with-filter Richard Stallman
2006-03-14  2:55     ` locate-with-filter Luc Teirlinck
2006-03-14  4:41       ` locate-with-filter Eli Zaretskii
2006-03-14  5:39         ` Luc Teirlinck [this message]
2006-03-14 16:09       ` locate-with-filter Richard Stallman
2006-03-15  5:41         ` locate-with-filter Luc Teirlinck
2006-03-15 13:33           ` locate-with-filter Luc Teirlinck
2006-03-15 13:39             ` locate-with-filter Luc Teirlinck
2006-03-15 20:23           ` locate-with-filter Richard Stallman
2006-03-15 22:47             ` locate-with-filter Luc Teirlinck
2006-03-16 20:18               ` locate-with-filter Richard Stallman
2006-03-17  1:38                 ` locate-with-filter Luc Teirlinck
2006-03-17  2:21                 ` locate-with-filter Luc Teirlinck
2006-03-18  8:44                   ` locate-with-filter Richard Stallman
2006-03-18  8:59                     ` locate-with-filter Nick Roberts
2006-03-18 17:16                       ` locate-with-filter Luc Teirlinck
2006-03-19  4:15                         ` locate-with-filter Nick Roberts
2006-03-19  3:50                           ` locate-with-filter Luc Teirlinck
2006-03-19  4:55                           ` locate-with-filter Luc Teirlinck
2006-03-19  5:09                             ` locate-with-filter Luc Teirlinck
2006-03-19  5:22                               ` locate-with-filter Luc Teirlinck
2006-03-19 21:51                             ` locate-with-filter Richard Stallman
2006-03-20  5:12                               ` locate-with-filter Luc Teirlinck
2006-03-21  1:02                                 ` locate-with-filter Richard Stallman
2006-03-21  1:13                                   ` locate-with-filter Luc Teirlinck
2006-03-29  4:09                                   ` locate-with-filter Luc Teirlinck
2006-03-29 23:02                                     ` locate-with-filter Richard Stallman
2006-03-30  0:29                                       ` locate-with-filter Luc Teirlinck
2006-03-31  3:10                                         ` locate-with-filter Richard Stallman
2006-04-01  1:34                                           ` locate-with-filter Luc Teirlinck
2006-04-01  1:52                                           ` locate-with-filter Luc Teirlinck
2006-03-19  9:09                       ` locate-with-filter Richard Stallman
2006-03-19 20:15                         ` locate-with-filter Nick Roberts
2006-03-19 20:19                           ` locate-with-filter Luc Teirlinck
2006-03-19 22:05                             ` locate-with-filter Nick Roberts
2006-03-20 15:05                           ` locate-with-filter Richard Stallman
2006-03-19  1:28                     ` locate-with-filter Luc Teirlinck
2006-03-19  2:29                       ` locate-with-filter Luc Teirlinck
2006-03-20  6:18                 ` locate-with-filter Stefan Monnier
2006-03-14 16:09       ` locate-with-filter Richard Stallman
2006-03-15  5:37         ` locate-with-filter Luc Teirlinck
2006-03-15  5:48         ` locate-with-filter Luc Teirlinck
2006-03-15 20:23           ` locate-with-filter Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200603140539.k2E5dE307411@raven.dms.auburn.edu \
    --to=teirllm@dms.auburn.edu \
    --cc=emacs-devel@gnu.org \
    --cc=pbreton@cs.umb.edu \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.