diff options
| author | Stefan Monnier | 2012-09-28 11:17:08 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-09-28 11:17:08 -0400 |
| commit | 3df749b0f8a97c8b8f18a34bce494fd9d4fe987f (patch) | |
| tree | 89db15fa0b0ffb3de4784816ae92d3ae2d324239 | |
| parent | 404043ea8821e8902190e2e7d1140224c3ae33ea (diff) | |
| download | emacs-3df749b0f8a97c8b8f18a34bce494fd9d4fe987f.tar.gz emacs-3df749b0f8a97c8b8f18a34bce494fd9d4fe987f.zip | |
* lisp/type-break.el: Use lexical-binding.
(type-break-mode): Use define-minor-mode.
| -rw-r--r-- | lisp/ChangeLog | 3 | ||||
| -rw-r--r-- | lisp/type-break.el | 140 |
2 files changed, 61 insertions, 82 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 21a412f7424..b25a921219e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2012-09-28 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2012-09-28 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * type-break.el: Use lexical-binding. | ||
| 4 | (type-break-mode): Use define-minor-mode. | ||
| 5 | |||
| 3 | * emacs-lisp/pcase.el (pcase--mark-used): New. | 6 | * emacs-lisp/pcase.el (pcase--mark-used): New. |
| 4 | (pcase--u1): Use it (bug#12512). | 7 | (pcase--u1): Use it (bug#12512). |
| 5 | 8 | ||
diff --git a/lisp/type-break.el b/lisp/type-break.el index b3749853b77..949b3b720a0 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; type-break.el --- encourage rests from typing at appropriate intervals | 1 | ;;; type-break.el --- encourage rests from typing at appropriate intervals -*- lexical-binding: t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994-1995, 1997, 2000-2012 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1995, 1997, 2000-2012 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -69,18 +69,6 @@ | |||
| 69 | :prefix "type-break" | 69 | :prefix "type-break" |
| 70 | :group 'keyboard) | 70 | :group 'keyboard) |
| 71 | 71 | ||
| 72 | (defcustom type-break-mode nil | ||
| 73 | "Toggle typing break mode. | ||
| 74 | See the docstring for the `type-break-mode' command for more information. | ||
| 75 | Setting this variable directly does not take effect; | ||
| 76 | use either \\[customize] or the function `type-break-mode'." | ||
| 77 | :set (lambda (_symbol value) | ||
| 78 | (type-break-mode (if value 1 -1))) | ||
| 79 | :initialize 'custom-initialize-default | ||
| 80 | :type 'boolean | ||
| 81 | :group 'type-break | ||
| 82 | :require 'type-break) | ||
| 83 | |||
| 84 | (defcustom type-break-interval (* 60 60) | 72 | (defcustom type-break-interval (* 60 60) |
| 85 | "Number of seconds between scheduled typing breaks." | 73 | "Number of seconds between scheduled typing breaks." |
| 86 | :type 'integer | 74 | :type 'integer |
| @@ -285,7 +273,7 @@ It will be either \"seconds\" or \"keystrokes\".") | |||
| 285 | 273 | ||
| 286 | 274 | ||
| 287 | ;;;###autoload | 275 | ;;;###autoload |
| 288 | (defun type-break-mode (&optional prefix) | 276 | (define-minor-mode type-break-mode |
| 289 | "Enable or disable typing-break mode. | 277 | "Enable or disable typing-break mode. |
| 290 | This is a minor mode, but it is global to all buffers by default. | 278 | This is a minor mode, but it is global to all buffers by default. |
| 291 | 279 | ||
| @@ -358,74 +346,61 @@ Finally, a file (named `type-break-file-name') is used to store information | |||
| 358 | across Emacs sessions. This provides recovery of the break status between | 346 | across Emacs sessions. This provides recovery of the break status between |
| 359 | sessions and after a crash. Manual changes to the file may result in | 347 | sessions and after a crash. Manual changes to the file may result in |
| 360 | problems." | 348 | problems." |
| 361 | (interactive "P") | 349 | :lighter type-break-mode-line-format |
| 362 | (type-break-check-post-command-hook) | 350 | :global t |
| 363 | 351 | ||
| 364 | (let ((already-enabled type-break-mode)) | 352 | (type-break-check-post-command-hook) |
| 365 | (setq type-break-mode (>= (prefix-numeric-value prefix) 0)) | ||
| 366 | 353 | ||
| 367 | (cond | 354 | (cond |
| 368 | ((and already-enabled type-break-mode) | 355 | ;; ((and already-enabled type-break-mode) |
| 369 | (and (called-interactively-p 'interactive) | 356 | ;; (and (called-interactively-p 'interactive) |
| 370 | (message "Type Break mode is already enabled"))) | 357 | ;; (message "Type Break mode is already enabled"))) |
| 371 | (type-break-mode | 358 | (type-break-mode |
| 372 | (when type-break-file-name | 359 | (when type-break-file-name |
| 373 | (with-current-buffer (find-file-noselect type-break-file-name 'nowarn) | 360 | (with-current-buffer (find-file-noselect type-break-file-name 'nowarn) |
| 374 | (setq buffer-save-without-query t))) | 361 | (setq buffer-save-without-query t))) |
| 375 | 362 | ||
| 376 | (or global-mode-string | 363 | (or global-mode-string (setq global-mode-string '(""))) ;FIXME: Why? |
| 377 | (setq global-mode-string '(""))) | 364 | (type-break-keystroke-reset) |
| 378 | (or (assq 'type-break-mode-line-message-mode | 365 | (type-break-mode-line-countdown-or-break nil) |
| 379 | minor-mode-alist) | 366 | |
| 380 | (setq minor-mode-alist | 367 | (setq type-break-time-last-break |
| 381 | (cons type-break-mode-line-format | 368 | (or (type-break-get-previous-time) |
| 382 | minor-mode-alist))) | 369 | (current-time))) |
| 383 | (type-break-keystroke-reset) | 370 | |
| 384 | (type-break-mode-line-countdown-or-break nil) | 371 | ;; Schedule according to break time from session file. |
| 385 | 372 | (type-break-schedule | |
| 386 | (setq type-break-time-last-break | 373 | (let (diff) |
| 387 | (or (type-break-get-previous-time) | 374 | (if (and type-break-time-last-break |
| 388 | (current-time))) | 375 | (< (setq diff (type-break-time-difference |
| 389 | 376 | type-break-time-last-break | |
| 390 | ;; schedule according to break time from session file | 377 | (current-time))) |
| 391 | (type-break-schedule | 378 | type-break-interval)) |
| 392 | (let (diff) | 379 | ;; Use the file's value. |
| 393 | (if (and type-break-time-last-break | 380 | (progn |
| 394 | (< (setq diff (type-break-time-difference | 381 | (setq type-break-keystroke-count |
| 395 | type-break-time-last-break | 382 | (type-break-get-previous-count)) |
| 396 | (current-time))) | 383 | ;; File the time, in case it was read from the auto-save file. |
| 397 | type-break-interval)) | 384 | (type-break-file-time type-break-interval-start) |
| 398 | ;; use the file's value | 385 | (setq type-break-interval-start type-break-time-last-break) |
| 399 | (progn | 386 | (- type-break-interval diff)) |
| 400 | (setq type-break-keystroke-count | 387 | ;; Schedule from now. |
| 401 | (type-break-get-previous-count)) | 388 | (setq type-break-interval-start (current-time)) |
| 402 | ;; file the time, in case it was read from the auto-save file | 389 | (type-break-file-time type-break-interval-start) |
| 403 | (type-break-file-time type-break-interval-start) | 390 | type-break-interval)) |
| 404 | (setq type-break-interval-start type-break-time-last-break) | 391 | type-break-interval-start |
| 405 | (- type-break-interval diff)) | 392 | type-break-interval)) |
| 406 | ;; schedule from now | 393 | (t |
| 407 | (setq type-break-interval-start (current-time)) | 394 | (type-break-keystroke-reset) |
| 408 | (type-break-file-time type-break-interval-start) | 395 | (type-break-mode-line-countdown-or-break nil) |
| 409 | type-break-interval)) | 396 | (type-break-cancel-schedule) |
| 410 | type-break-interval-start | 397 | (do-auto-save) |
| 411 | type-break-interval) | 398 | (when type-break-file-name |
| 412 | 399 | (with-current-buffer (find-file-noselect type-break-file-name | |
| 413 | (and (called-interactively-p 'interactive) | 400 | 'nowarn) |
| 414 | (message "Type Break mode is enabled and set"))) | 401 | (set-buffer-modified-p nil) |
| 415 | (t | 402 | (unlock-buffer) |
| 416 | (type-break-keystroke-reset) | 403 | (kill-this-buffer)))))) |
| 417 | (type-break-mode-line-countdown-or-break nil) | ||
| 418 | (type-break-cancel-schedule) | ||
| 419 | (do-auto-save) | ||
| 420 | (when type-break-file-name | ||
| 421 | (with-current-buffer (find-file-noselect type-break-file-name | ||
| 422 | 'nowarn) | ||
| 423 | (set-buffer-modified-p nil) | ||
| 424 | (unlock-buffer) | ||
| 425 | (kill-this-buffer))) | ||
| 426 | (and (called-interactively-p 'interactive) | ||
| 427 | (message "Type Break mode is disabled"))))) | ||
| 428 | type-break-mode) | ||
| 429 | 404 | ||
| 430 | (define-minor-mode type-break-mode-line-message-mode | 405 | (define-minor-mode type-break-mode-line-message-mode |
| 431 | "Toggle warnings about typing breaks in the mode line. | 406 | "Toggle warnings about typing breaks in the mode line. |
| @@ -994,10 +969,11 @@ FRAC should be the inverse of the fractional value; for example, a value of | |||
| 994 | ;; "low" bits and format the time incorrectly. | 969 | ;; "low" bits and format the time incorrectly. |
| 995 | (defun type-break-time-sum (&rest tmlist) | 970 | (defun type-break-time-sum (&rest tmlist) |
| 996 | (let ((sum '(0 0 0))) | 971 | (let ((sum '(0 0 0))) |
| 997 | (dolist (tem tmlist sum) | 972 | (dolist (tem tmlist) |
| 998 | (setq sum (time-add sum (if (integerp tem) | 973 | (setq sum (time-add sum (if (integerp tem) |
| 999 | (list (floor tem 65536) (mod tem 65536)) | 974 | (list (floor tem 65536) (mod tem 65536)) |
| 1000 | tem)))))) | 975 | tem)))) |
| 976 | sum)) | ||
| 1001 | 977 | ||
| 1002 | (defun type-break-time-stamp (&optional when) | 978 | (defun type-break-time-stamp (&optional when) |
| 1003 | (if (fboundp 'format-time-string) | 979 | (if (fboundp 'format-time-string) |