emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r110238: * lisp/type-break.el: Use le


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110238: * lisp/type-break.el: Use lexical-binding.
Date: Fri, 28 Sep 2012 11:17:08 -0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110238
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Fri 2012-09-28 11:17:08 -0400
message:
  * lisp/type-break.el: Use lexical-binding.
  (type-break-mode): Use define-minor-mode.
modified:
  lisp/ChangeLog
  lisp/type-break.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-09-28 12:18:38 +0000
+++ b/lisp/ChangeLog    2012-09-28 15:17:08 +0000
@@ -1,5 +1,8 @@
 2012-09-28  Stefan Monnier  <address@hidden>
 
+       * type-break.el: Use lexical-binding.
+       (type-break-mode): Use define-minor-mode.
+
        * emacs-lisp/pcase.el (pcase--mark-used): New.
        (pcase--u1): Use it (bug#12512).
 

=== modified file 'lisp/type-break.el'
--- a/lisp/type-break.el        2012-09-28 08:01:08 +0000
+++ b/lisp/type-break.el        2012-09-28 15:17:08 +0000
@@ -1,4 +1,4 @@
-;;; type-break.el --- encourage rests from typing at appropriate intervals
+;;; type-break.el --- encourage rests from typing at appropriate intervals  
-*- lexical-binding: t -*-
 
 ;; Copyright (C) 1994-1995, 1997, 2000-2012  Free Software Foundation, Inc.
 
@@ -69,18 +69,6 @@
   :prefix "type-break"
   :group 'keyboard)
 
-(defcustom type-break-mode nil
-  "Toggle typing break mode.
-See the docstring for the `type-break-mode' command for more information.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `type-break-mode'."
-  :set (lambda (_symbol value)
-        (type-break-mode (if value 1 -1)))
-  :initialize 'custom-initialize-default
-  :type 'boolean
-  :group 'type-break
-  :require 'type-break)
-
 (defcustom type-break-interval (* 60 60)
   "Number of seconds between scheduled typing breaks."
   :type 'integer
@@ -285,7 +273,7 @@
 
 
 ;;;###autoload
-(defun type-break-mode (&optional prefix)
+(define-minor-mode type-break-mode
   "Enable or disable typing-break mode.
 This is a minor mode, but it is global to all buffers by default.
 
@@ -358,74 +346,61 @@
 across Emacs sessions.  This provides recovery of the break status between
 sessions and after a crash.  Manual changes to the file may result in
 problems."
-  (interactive "P")
+  :lighter type-break-mode-line-format
+  :global t
+
   (type-break-check-post-command-hook)
 
-  (let ((already-enabled type-break-mode))
-    (setq type-break-mode (>= (prefix-numeric-value prefix) 0))
-
-    (cond
-     ((and already-enabled type-break-mode)
-      (and (called-interactively-p 'interactive)
-           (message "Type Break mode is already enabled")))
-     (type-break-mode
-      (when type-break-file-name
-       (with-current-buffer (find-file-noselect type-break-file-name 'nowarn)
-         (setq buffer-save-without-query t)))
-
-      (or global-mode-string
-          (setq global-mode-string '("")))
-      (or (assq 'type-break-mode-line-message-mode
-               minor-mode-alist)
-         (setq minor-mode-alist
-               (cons type-break-mode-line-format
-                     minor-mode-alist)))
-      (type-break-keystroke-reset)
-      (type-break-mode-line-countdown-or-break nil)
-
-      (setq type-break-time-last-break
-            (or (type-break-get-previous-time)
-                (current-time)))
-
-      ;; schedule according to break time from session file
-      (type-break-schedule
-       (let (diff)
-         (if (and type-break-time-last-break
-                  (< (setq diff (type-break-time-difference
-                                 type-break-time-last-break
-                                 (current-time)))
-                     type-break-interval))
-             ;; use the file's value
-             (progn
-               (setq type-break-keystroke-count
-                     (type-break-get-previous-count))
-               ;; file the time, in case it was read from the auto-save file
-               (type-break-file-time type-break-interval-start)
-               (setq type-break-interval-start type-break-time-last-break)
-               (- type-break-interval diff))
-           ;; schedule from now
-           (setq type-break-interval-start (current-time))
-           (type-break-file-time type-break-interval-start)
-           type-break-interval))
-       type-break-interval-start
-       type-break-interval)
-
-      (and (called-interactively-p 'interactive)
-           (message "Type Break mode is enabled and set")))
-     (t
-      (type-break-keystroke-reset)
-      (type-break-mode-line-countdown-or-break nil)
-      (type-break-cancel-schedule)
-      (do-auto-save)
-      (when type-break-file-name
-       (with-current-buffer (find-file-noselect type-break-file-name
-                                                'nowarn)
-         (set-buffer-modified-p nil)
-         (unlock-buffer)
-         (kill-this-buffer)))
-      (and (called-interactively-p 'interactive)
-           (message "Type Break mode is disabled")))))
-  type-break-mode)
+  (cond
+   ;; ((and already-enabled type-break-mode)
+   ;;  (and (called-interactively-p 'interactive)
+   ;;       (message "Type Break mode is already enabled")))
+   (type-break-mode
+    (when type-break-file-name
+      (with-current-buffer (find-file-noselect type-break-file-name 'nowarn)
+        (setq buffer-save-without-query t)))
+
+    (or global-mode-string (setq global-mode-string '(""))) ;FIXME: Why?
+    (type-break-keystroke-reset)
+    (type-break-mode-line-countdown-or-break nil)
+
+    (setq type-break-time-last-break
+          (or (type-break-get-previous-time)
+              (current-time)))
+
+    ;; Schedule according to break time from session file.
+    (type-break-schedule
+     (let (diff)
+       (if (and type-break-time-last-break
+                (< (setq diff (type-break-time-difference
+                               type-break-time-last-break
+                               (current-time)))
+                   type-break-interval))
+           ;; Use the file's value.
+           (progn
+             (setq type-break-keystroke-count
+                   (type-break-get-previous-count))
+             ;; File the time, in case it was read from the auto-save file.
+             (type-break-file-time type-break-interval-start)
+             (setq type-break-interval-start type-break-time-last-break)
+             (- type-break-interval diff))
+         ;; Schedule from now.
+         (setq type-break-interval-start (current-time))
+         (type-break-file-time type-break-interval-start)
+         type-break-interval))
+     type-break-interval-start
+     type-break-interval))
+   (t
+    (type-break-keystroke-reset)
+    (type-break-mode-line-countdown-or-break nil)
+    (type-break-cancel-schedule)
+    (do-auto-save)
+    (when type-break-file-name
+      (with-current-buffer (find-file-noselect type-break-file-name
+                                               'nowarn)
+        (set-buffer-modified-p nil)
+        (unlock-buffer)
+        (kill-this-buffer))))))
 
 (define-minor-mode type-break-mode-line-message-mode
   "Toggle warnings about typing breaks in the mode line.
@@ -994,10 +969,11 @@
 ;; "low" bits and format the time incorrectly.
 (defun type-break-time-sum (&rest tmlist)
   (let ((sum '(0 0 0)))
-    (dolist (tem tmlist sum)
+    (dolist (tem tmlist)
       (setq sum (time-add sum (if (integerp tem)
                                  (list (floor tem 65536) (mod tem 65536))
-                               tem))))))
+                               tem))))
+    sum))
 
 (defun type-break-time-stamp (&optional when)
   (if (fboundp 'format-time-string)


reply via email to

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