emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r106911: lisp/subr.el (display-delaye


From: Juanma Barranquero
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106911: lisp/subr.el (display-delayed-warnings): Collapse identical adjacent messages.
Date: Mon, 23 Jan 2012 02:10:50 +0100
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106911
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Mon 2012-01-23 02:10:50 +0100
message:
  lisp/subr.el (display-delayed-warnings): Collapse identical adjacent messages.
modified:
  lisp/ChangeLog
  lisp/subr.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-01-22 12:55:36 +0000
+++ b/lisp/ChangeLog    2012-01-23 01:10:50 +0000
@@ -1,3 +1,8 @@
+2012-01-23  Juanma Barranquero  <address@hidden>
+
+       * subr.el (display-delayed-warnings):
+       Collapse identical adjacent messages.
+
 2012-01-22  Michael Albinus  <address@hidden>
 
        * net/tramp.el (tramp-action-login): Set connection property "login-as".

=== modified file 'lisp/subr.el'
--- a/lisp/subr.el      2012-01-19 07:21:25 +0000
+++ b/lisp/subr.el      2012-01-23 01:10:50 +0000
@@ -1857,9 +1857,20 @@
 
 (defun display-delayed-warnings ()
   "Display delayed warnings from `delayed-warnings-list'.
+Collapse identical adjacent messages into one (plus count).
 This is the default value of `delayed-warnings-hook'."
-  (dolist (warning (nreverse delayed-warnings-list))
-    (apply 'display-warning warning))
+  (let ((count 1)
+        (warnings (nreverse delayed-warnings-list))
+        warning)
+    (while warnings
+      (setq warning (pop warnings))
+      (if (equal warning (car warnings))
+          (setq count (1+ count))
+        (when (> count 1)
+          (setcdr warning (cons (format "%s [%d times]" (cadr warning) count)
+                                (cddr warning)))
+          (setq count 1))
+        (apply 'display-warning warning))))
   (setq delayed-warnings-list nil))
 
 (defvar delayed-warnings-hook '(display-delayed-warnings)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]