# HG changeset patch # User Juanma Barranquero # Date 1279537602 -7200 # Node ID 1d31012de150c65a4b8b357a633c7c830d8a233a # Parent cb59bcad6ad9337a760229dcce382426da126666 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. diff -r cb59bcad6ad9 -r 1d31012de150 lisp/ChangeLog --- a/lisp/ChangeLog Mon Jul 19 12:26:48 2010 +0200 +++ b/lisp/ChangeLog Mon Jul 19 13:06:42 2010 +0200 @@ -1,3 +1,9 @@ +2010-07-19 Juanma Barranquero + + * 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 Enhance `c-file-style' in file/directory local variables. diff -r cb59bcad6ad9 -r 1d31012de150 lisp/time.el --- a/lisp/time.el Mon Jul 19 12:26:48 2010 +0200 +++ b/lisp/time.el Mon Jul 19 13:06:42 2010 +0200 @@ -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