emacs-devel
[Top][All Lists]
Advanced

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

Re: read-regexp


From: Juri Linkov
Subject: Re: read-regexp
Date: Sat, 18 Oct 2008 19:19:45 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu)

> This function accepts an optional argument DEFAULT, but it does not
> add its value to the list of defaults it passes to
> read-from-minibuffer.  Is that intentional, and if so, what is the
> reason for this behavior?
>
> Also, it sounds like DEFAULT must be a single string or nil, it cannot
> be a list of strings, as in other functions that read from the
> minibuffer.  Again, is that on purpose?
>
> (Btw, it would be good if the doc string gave answers to these
> questions.)

The problem is in the ambiguous name of the argument DEFAULT.
It was intended to provide exactly the same functionality as the
argument STRING-DESCRIBING-DEFAULT of the function `read-face-name',
i.e. to display in the minibuffer prompt what default the function
will use if the user types RET.

I thought that the name STRING-DESCRIBING-DEFAULT is too long and clumsy
but had no better idea.  Unless you want to propose a better name, I will
rename the argument DEFAULT of `read-regexp' to the same name
STRING-DESCRIBING-DEFAULT as below with docstring fixes:

Index: lisp/replace.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/replace.el,v
retrieving revision 1.276
diff -c -r1.276 replace.el
*** lisp/replace.el     12 Sep 2008 00:37:41 -0000      1.276
--- lisp/replace.el     18 Oct 2008 16:17:48 -0000
***************
*** 522,532 ****
  Maximum length of the history list is determined by the value
  of `history-length', which see.")
  
! (defun read-regexp (prompt &optional default)
    "Read regexp as a string using the regexp history and some useful defaults.
  Prompt for a regular expression with PROMPT (without a colon and
! space) in the minibuffer.  The optional string argument DEFAULT
! provides the basic default value, that is returned on typing RET.
  Additional defaults are the string at point, the last isearch regexp,
  the last isearch string, and the last replacement regexp."
    (let* ((defaults
--- 526,537 ----
  Maximum length of the history list is determined by the value
  of `history-length', which see.")
  
! (defun read-regexp (prompt &optional string-describing-default)
    "Read regexp as a string using the regexp history and some useful defaults.
  Prompt for a regular expression with PROMPT (without a colon and
! space) in the minibuffer.  The optional argument STRING-DESCRIBING-DEFAULT
! provides the value to display in the minibuffer prompt that is
! returned if the user just types RET.
  Additional defaults are the string at point, the last isearch regexp,
  the last isearch string, and the last replacement regexp."
    (let* ((defaults
***************
*** 544,555 ****
         (history-add-new-input nil)
         (input
          (read-from-minibuffer
!          (if default
!              (format "%s (default %s): " prompt (query-replace-descr default))
             (format "%s: " prompt))
           nil nil nil 'regexp-history defaults t)))
      (if (equal input "")
!       default
        (prog1 input
        (add-to-history 'regexp-history input)))))
  
--- 549,561 ----
         (history-add-new-input nil)
         (input
          (read-from-minibuffer
!          (if string-describing-default
!              (format "%s (default %s): " prompt
!                      (query-replace-descr string-describing-default))
             (format "%s: " prompt))
           nil nil nil 'regexp-history defaults t)))
      (if (equal input "")
!       string-describing-default
        (prog1 input
        (add-to-history 'regexp-history input)))))
  
-- 
Juri Linkov
http://www.jurta.org/emacs/




reply via email to

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