# HG changeset patch # User Juri Linkov # Date 1209686144 0 # Node ID dea0b823c8e26cb64c06fdabe353e35914a8bc88 # Parent d5bb3798f8cbd55a757567b8edbe480b77f874ad (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. diff -r d5bb3798f8cb -r dea0b823c8e2 lisp/replace.el --- a/lisp/replace.el Thu May 01 22:53:09 2008 +0000 +++ b/lisp/replace.el Thu May 01 23:55:44 2008 +0000 @@ -1005,7 +1005,8 @@ (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 @@ (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 @@ (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