summaryrefslogtreecommitdiff
path: root/lisp/replace.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2008-05-01 23:55:44 +0000
committerJuri Linkov <juri@jurta.org>2008-05-01 23:55:44 +0000
commit360289a661cb8a72d83683ed5d636eb8d80160a4 (patch)
tree64f790a98c6baf4bda3e56d274eaaef6ea5a5abf /lisp/replace.el
parentdffd9d9ad62e23829304abea77dc3b2b6dacb86c (diff)
downloademacs-360289a661cb8a72d83683ed5d636eb8d80160a4.tar.gz
(occur-read-primary-args): Set default to the car of
regexp-history and display it in the prompt, but don't add to the list of minibuffer defaults. Bind history-add-new-input to nil to not add automatically `default'. For empty input return `default'. Otherwise, add `input' to regexp-history and return it. (occur-1): Signal an error for the empty regexp.
Diffstat (limited to 'lisp/replace.el')
-rw-r--r--lisp/replace.el21
1 files changed, 16 insertions, 5 deletions
diff --git a/lisp/replace.el b/lisp/replace.el
index d62da35f082..962b02774d9 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1005,7 +1005,8 @@ which means to discard all text properties."
(nreverse result))))
(defun occur-read-primary-args ()
- (let* ((default
+ (let* ((default (car regexp-history))
+ (defaults
(list (and transient-mark-mode mark-active
(regexp-quote
(buffer-substring-no-properties
@@ -1020,12 +1021,20 @@ which means to discard all text properties."
(regexp-quote (or (car search-ring) ""))
(car (symbol-value
query-replace-from-history-variable))))
- (default (delete-dups (delq nil (delete "" default))))
+ (defaults (delete-dups (delq nil (delete "" defaults))))
+ ;; Don't add automatically the car of defaults for empty input
+ (history-add-new-input nil)
(input
(read-from-minibuffer
- "List lines matching regexp: "
- nil nil nil 'regexp-history default)))
- (list input
+ (if default
+ (format "List lines matching regexp (default %s): "
+ (query-replace-descr default))
+ "List lines matching regexp: ")
+ nil nil nil 'regexp-history defaults)))
+ (list (if (equal input "")
+ default
+ (prog1 input
+ (add-to-history 'regexp-history input)))
(when current-prefix-arg
(prefix-numeric-value current-prefix-arg)))))
@@ -1123,6 +1132,8 @@ See also `multi-occur'."
(buffer-list))))))
(defun occur-1 (regexp nlines bufs &optional buf-name)
+ (unless (and regexp (not (equal regexp "")))
+ (error "Occur doesn't work with the empty regexp"))
(unless buf-name
(setq buf-name "*Occur*"))
(let (occur-buf