From: Juri Linkov Date: Thu, 20 Sep 2012 21:57:13 +0000 (+0300) Subject: * lisp/replace.el (query-replace-read-from): Use `read-regexp' instead X-Git-Tag: emacs-24.2.90~269^2~4 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=eb2deaffd17e760b3ec945c58d43080e8a44767a;p=emacs.git * lisp/replace.el (query-replace-read-from): Use `read-regexp' instead of `read-from-minibuffer' when `regexp-flag' is non-nil. (occur-read-primary-args): Use `read-regexp' instead of `read-string'. (multi-occur-in-matching-buffers): Use `read-regexp' instead of `read-from-minibuffer'. * lisp/isearch.el (isearch-occur): Use `read-regexp' instead of `read-string'. * lisp/dired.el (dired-read-regexp): Use `read-regexp' instead of `read-from-minibuffer'. * lisp/progmodes/grep.el (grep-read-regexp): Use `read-regexp' instead of `read-string'. Fixes: debbugs:7567 --- diff --git a/etc/NEWS b/etc/NEWS index 3b4b06341c5..ccd8a6fe35b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -750,6 +750,14 @@ in Emacs 24.1: **** `special-display-function' **** `display-buffer-function' +** Minibuffer + +*** `read-regexp' has a new argument HISTORY; the first argument PROMPT +of `read-regexp' accepts a string ending with a colon and space, and its +second argument DEFAULTS can be a list of strings accessible via M-n +in the minibuffer ahead of other hard-coded useful regexp-related values. +More commands use `read-regexp' now to read their regexp arguments. + ** Completion *** New function `completion-table-with-quoting' to handle completion diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1d4dd0ed827..f7f4193e777 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,18 @@ 2012-09-20 Juri Linkov + * replace.el (query-replace-read-from): Use `read-regexp' instead + of `read-from-minibuffer' when `regexp-flag' is non-nil. + (occur-read-primary-args): Use `read-regexp' instead of + `read-string'. + (multi-occur-in-matching-buffers): Use `read-regexp' instead of + `read-from-minibuffer'. + * isearch.el (isearch-occur): Use `read-regexp' instead of + `read-string'. + * dired.el (dired-read-regexp): Use `read-regexp' instead of + `read-from-minibuffer'. + * progmodes/grep.el (grep-read-regexp): Use `read-regexp' instead + of `read-string'. (Bug#7567) + * replace.el (read-regexp): Rename DEFAULT-VALUE arg to DEFAULTS and allow accepting a list of strings prepended to a list of standard default values. Doc fix. (Bug#12321) diff --git a/lisp/dired.el b/lisp/dired.el index a4fbaddec38..a5169fc301c 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3178,8 +3178,8 @@ As always, hidden subdirs are not affected." (defvar dired-regexp-history nil "History list of regular expressions used in Dired commands.") -(defun dired-read-regexp (prompt) - (read-from-minibuffer prompt nil nil nil 'dired-regexp-history)) +(defun dired-read-regexp (prompt &optional default history) + (read-regexp prompt default (or history 'dired-regexp-history))) (defun dired-mark-files-regexp (regexp &optional marker-char) "Mark all files matching REGEXP for use in later commands. diff --git a/lisp/isearch.el b/lisp/isearch.el index 04f5a7acc2c..37993767013 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1649,9 +1649,9 @@ characters in that string." (isearch-done nil t) (isearch-clean-overlays) (let ((default (car occur-collect-regexp-history))) - (read-string + (read-regexp (format "Regexp to collect (default %s): " default) - nil 'occur-collect-regexp-history default))) + default 'occur-collect-regexp-history))) ;; Otherwise normal occur takes numerical prefix argument. (when current-prefix-arg (prefix-numeric-value current-prefix-arg)))))) diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index a6ae42f86b1..c056b0f4e26 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -817,11 +817,11 @@ substitution string. Note dynamic scoping of variables.") (defun grep-read-regexp () "Read regexp arg for interactive grep." (let ((default (grep-tag-default))) - (read-string + (read-regexp (concat "Search for" (if (and default (> (length default) 0)) (format " (default \"%s\"): " default) ": ")) - nil 'grep-regexp-history default))) + default 'grep-regexp-history))) (defun grep-read-files (regexp) "Read files arg for interactive grep." diff --git a/lisp/replace.el b/lisp/replace.el index 435c6c2fb60..f192574a7e2 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -128,20 +128,21 @@ wants to replace FROM with TO." (if query-replace-interactive (car (if regexp-flag regexp-search-ring search-ring)) (let* ((history-add-new-input nil) + (prompt + (if query-replace-defaults + (format "%s (default %s -> %s): " prompt + (query-replace-descr (car query-replace-defaults)) + (query-replace-descr (cdr query-replace-defaults))) + (format "%s: " prompt))) (from ;; The save-excursion here is in case the user marks and copies ;; a region in order to specify the minibuffer input. ;; That should not clobber the region for the query-replace itself. (save-excursion - (read-from-minibuffer - (if query-replace-defaults - (format "%s (default %s -> %s): " prompt - (query-replace-descr (car query-replace-defaults)) - (query-replace-descr (cdr query-replace-defaults))) - (format "%s: " prompt)) - nil nil nil - query-replace-from-history-variable - nil t)))) + (if regexp-flag + (read-regexp prompt nil query-replace-from-history-variable) + (read-from-minibuffer + prompt nil nil nil query-replace-from-history-variable nil t))))) (if (and (zerop (length from)) query-replace-defaults) (cons (car query-replace-defaults) (query-replace-compile-replacement @@ -1139,9 +1140,9 @@ which means to discard all text properties." "\\&" ;; Get the regexp for collection pattern. (let ((default (car occur-collect-regexp-history))) - (read-string + (read-regexp (format "Regexp to collect (default %s): " default) - nil 'occur-collect-regexp-history default))) + default 'occur-collect-regexp-history))) ;; Otherwise normal occur takes numerical prefix argument. (when current-prefix-arg (prefix-numeric-value current-prefix-arg)))))) @@ -1228,14 +1229,10 @@ See also `multi-occur'." (cons (let* ((default (car regexp-history)) (input - (read-from-minibuffer + (read-regexp (if current-prefix-arg "List lines in buffers whose names match regexp: " - "List lines in buffers whose filenames match regexp: ") - nil - nil - nil - 'regexp-history))) + "List lines in buffers whose filenames match regexp: ")))) (if (equal input "") default input))