Mercurial > emacs
changeset 107449:e64817c0ab40
Fix message of multi-line occur regexps and multi-buffer header lines.
http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00457.html
* replace.el (occur-1): Don't display regexp if it is longer
than window-width. Use `query-replace-descr' to display regexp.
(occur-engine): Don't display regexp in the buffer header for
multi-buffer occur. Display a separate header line with total
match count and regexp for multi-buffer occur.
Use `query-replace-descr' to display regexp.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Sun, 21 Mar 2010 12:52:51 +0200 |
parents | c34ce344379e |
children | 8da5b7ca4663 4fbbaa6bce36 |
files | lisp/ChangeLog lisp/replace.el |
diffstat | 2 files changed, 35 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Mar 20 17:46:31 2010 -0400 +++ b/lisp/ChangeLog Sun Mar 21 12:52:51 2010 +0200 @@ -1,3 +1,15 @@ +2010-03-21 Juri Linkov <juri@jurta.org> + + Fix message of multi-line occur regexps and multi-buffer header lines. + http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00457.html + + * replace.el (occur-1): Don't display regexp if it is longer + than window-width. Use `query-replace-descr' to display regexp. + (occur-engine): Don't display regexp in the buffer header for + multi-buffer occur. Display a separate header line with total + match count and regexp for multi-buffer occur. + Use `query-replace-descr' to display regexp. + 2010-03-20 Teodor Zlatanov <tzz@lifelogs.com> * net/secrets.el: Fix parenthesis.
--- a/lisp/replace.el Sat Mar 20 17:46:31 2010 -0400 +++ b/lisp/replace.el Sun Mar 21 12:52:51 2010 +0200 @@ -1166,12 +1166,15 @@ (not (eq occur-excluded-properties t))))) (let* ((bufcount (length active-bufs)) (diff (- (length bufs) bufcount))) - (message "Searched %d buffer%s%s; %s match%s for `%s'" + (message "Searched %d buffer%s%s; %s match%s%s" bufcount (if (= bufcount 1) "" "s") (if (zerop diff) "" (format " (%d killed)" diff)) (if (zerop count) "no" (format "%d" count)) (if (= count 1) "" "es") - regexp)) + ;; Don't display regexp if with remaining text + ;; it is longer than window-width. + (if (> (+ (length regexp) 42) (window-width)) + "" (format " for `%s'" (query-replace-descr regexp))))) (setq occur-revert-arguments (list regexp nlines bufs)) (if (= count 0) (kill-buffer occur-buf) @@ -1298,9 +1301,13 @@ (goto-char headerpt) (let ((beg (point)) end) - (insert (format "%d match%s for \"%s\" in buffer: %s\n" + (insert (format "%d match%s%s in buffer: %s\n" matches (if (= matches 1) "" "es") - regexp (buffer-name buf))) + ;; Don't display regexp for multi-buffer. + (if (> (length buffers) 1) + "" (format " for \"%s\"" + (query-replace-descr regexp))) + (buffer-name buf))) (setq end (point)) (add-text-properties beg end (append @@ -1308,6 +1315,18 @@ `(font-lock-face ,title-face)) `(occur-title ,buf)))) (goto-char (point-min))))))) + ;; Display total match count and regexp for multi-buffer. + (when (and (not (zerop globalcount)) (> (length buffers) 1)) + (goto-char (point-min)) + (let ((beg (point)) + end) + (insert (format "%d match%s total for \"%s\":\n" + globalcount (if (= globalcount 1) "" "es") + (query-replace-descr regexp))) + (setq end (point)) + (add-text-properties beg end (when title-face + `(font-lock-face ,title-face)))) + (goto-char (point-min))) (if coding ;; CODING is buffer-file-coding-system of the first buffer ;; that locally binds it. Let's use it also for the output