From 360289a661cb8a72d83683ed5d636eb8d80160a4 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 1 May 2008 23:55:44 +0000 Subject: [PATCH] (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. --- lisp/replace.el | 21 ++++++++++++++++----- 1 file 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 -- 2.39.5