]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix message of multi-line occur regexps and multi-buffer header lines.
authorJuri Linkov <juri@jurta.org>
Sun, 21 Mar 2010 10:52:51 +0000 (12:52 +0200)
committerJuri Linkov <juri@jurta.org>
Sun, 21 Mar 2010 10:52:51 +0000 (12:52 +0200)
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.

lisp/ChangeLog
lisp/replace.el

index f6b8fea964d1f69c7673b9ad213afc672eee3326..06e80db356d4f6550c1adffeb8aa29724a958e7f 100644 (file)
@@ -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.
index 92edd2e2657aef4d7101a553ffdf62756d7bec87..081d5c45f1dbbd3eb1e2b7b41b63739eb1c90b61 100644 (file)
@@ -1166,12 +1166,15 @@ See also `multi-occur'."
                      (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 @@ See also `multi-occur'."
                (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 @@ See also `multi-occur'."
                                          `(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