mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-22 18:35:09 +00:00
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.
This commit is contained in:
parent
311f0356ad
commit
16f3ade52e
@ -1,3 +1,9 @@
|
||||
2010-07-19 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* 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 <acm@muc.de>
|
||||
|
||||
Enhance `c-file-style' in file/directory local variables.
|
||||
|
27
lisp/time.el
27
lisp/time.el
@ -490,15 +490,10 @@ This runs the normal hook `display-time-hook' after each update."
|
||||
'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 @@ See `display-time-world'."
|
||||
(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
|
||||
|
Loading…
Reference in New Issue
Block a user