diff options
author | Juri Linkov <juri@jurta.org> | 2008-05-01 23:55:44 +0000 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2008-05-01 23:55:44 +0000 |
commit | 92cb5329a89572b2a5a04b37cc9e478e681c6915 (patch) | |
tree | 76170a2c92608268f24a7ff5b0995aee84f2e7aa /lisp | |
parent | 957849c0cb24b861182f534639cc912e73abf560 (diff) | |
download | emacs-92cb5329a89572b2a5a04b37cc9e478e681c6915.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')
-rw-r--r-- | lisp/replace.el | 21 |
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 |