emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r100849: time.el: Use `define-derived


From: Juanma Barranquero
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r100849: time.el: Use `define-derived-mode'. Simplify.
Date: Mon, 19 Jul 2010 13:06:42 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100849
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Mon 2010-07-19 13:06:42 +0200
message:
  time.el: Use `define-derived-mode'.  Simplify.
  
  * time.el (display-time-world-mode): Define with `define-derived-mode'.
    Set `show-trailing-whitespace' to nil.
    (display-time-world-display): Simplify.
modified:
  lisp/ChangeLog
  lisp/time.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-07-18 20:28:00 +0000
+++ b/lisp/ChangeLog    2010-07-19 11:06:42 +0000
@@ -1,3 +1,9 @@
+2010-07-19  Juanma Barranquero  <address@hidden>
+
+       * time.el (display-time-world-mode): Define with `define-derived-mode'.
+       Set `show-trailing-whitespace' to nil.
+       (display-time-world-display): Simplify.
+
 2010-07-18  Alan Mackenzie  <address@hidden>
 
        Enhance `c-file-style' in file/directory local variables.

=== modified file 'lisp/time.el'
--- a/lisp/time.el      2010-05-25 02:11:08 +0000
+++ b/lisp/time.el      2010-07-19 11:06:42 +0000
@@ -490,15 +490,10 @@
                 'display-time-event-handler)))
 
 
-(defun display-time-world-mode ()
+(define-derived-mode display-time-world-mode nil "World clock"
   "Major mode for buffer that displays times in various time zones.
 See `display-time-world'."
-  (interactive)
-  (kill-all-local-variables)
-  (setq
-   major-mode 'display-time-world-mode
-   mode-name "World clock")
-  (use-local-map display-time-world-mode-map))
+  (setq show-trailing-whitespace nil))
 
 (defun display-time-world-display (alist)
   "Replace current buffer text with times in various zones, based on ALIST."
@@ -506,24 +501,22 @@
        (buffer-undo-list t))
     (erase-buffer)
     (let ((max-width 0)
-         (result ()))
+         (result ())
+         fmt)
       (unwind-protect
          (dolist (zone alist)
            (let* ((label (cadr zone))
                   (width (string-width label)))
              (set-time-zone-rule (car zone))
-             (setq result
-                   (append result
-                           (list
-                            label width
-                            (format-time-string 
display-time-world-time-format))))
+             (push (cons label
+                         (format-time-string display-time-world-time-format))
+                   result)
              (when (> width max-width)
                (setq max-width width))))
        (set-time-zone-rule nil))
-      (while result
-       (insert (pop result)
-               (make-string (1+ (- max-width (pop result))) ?\s)
-               (pop result) "\n")))
+      (setq fmt (concat "%-" (int-to-string max-width) "s %s\n"))
+      (dolist (timedata (nreverse result))
+       (insert (format fmt (car timedata) (cdr timedata)))))
     (delete-char -1)))
 
 ;;;###autoload


reply via email to

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