(type-break-good-break-interval, type-break-demo-boring-stats)
(type-break-terse-messages, type-break-file-name): New defcustoms.
(type-break-post-command-hook)
(type-break-warning-countdown-string): Quote variable names in doc.
(type-break-interval-start, type-break-auto-save-file-name): New defvars.
(type-break-mode): Document type-break-good-break-interval and the
"session" file. Schedule break according to the session file.
Kill session file buffer on exit. Organise for save-some-buffers
to always save the session file.
(type-break-mode-line-message-mode, type-break-query-mode):
Uppercase arguments.
(type-break-file-time, type-break-file-keystroke-count, timep)
(type-break-choose-file, type-break-get-previous-time)
(type-break-get-previous-count): New defuns.
(type-break): Avoid break querying after a completed break in the
case where the query was initiated during user invocation of the
break. Optional terse messages. Use
type-break-good-break-interval if type-break-good-rest-interval is
nil. File the break time.
(type-break-schedule): New optional args for overriding the use of
the current time.
(type-break-cancel-time-warning-schedule): Avoid leftover warnings
after a break.
(type-break-check): File the keystroke count.
(type-break-do-query): Prevent a second query when the break is
interrupted. Optional terse message.
(type-break-keystroke-reset): Record the start of a typing interval.
(type-break-demo-boring): Optional terse messages. Display word
per minute and keystroke counts according to
type-break-demo-boring-stats.
Suggested by Stephen Gildea <gildea@intouchsys.com>.
(type-break-do-query): Cancel query schedule while performing
actual query, to avoid possibility of a second query being made
while first one is already in progress.
(type-break-time-stamp-format): New variable.
(type-break-time-stamp): New function.
(type-break-time-warning): Use it.
(type-break-keystroke-warning): Use it.
(type-break-noninteractive-query): Use it.
depending on variant.
Do not use defsubst anywhere. Replace with defuns.
(type-break-warning-message-mode): Variable deleted.
(type-break-query-mode): New variable and function.
(type-break-mode): Mention in docstring.
(type-break-run-at-time): New function.
All callers of run-at-time changed.
(type-break-cancel-function-timers): New function.
All callers of cancel-function-timers changed.
(type-break-check-post-command-hook): New function.
(type-break-mode, type-break-schedule, type-break-alarm,
type-break-time-warning-alarm): Call it.
(type-break-mode-line-countdown-or-break): New function.
(type-break): Call it.
(type-break-time-warning-schedule): Put type-break-time-warning
on type-break-post-command-hook.
(type-break-check): Call type-break-mode-line-countdown-or-break.
(type-break-noninteractive-query): New function.
(type-break-force-mode-line-update): New function.
1996-01-20 Richard M. Stallman <rms@whiz-bang.gnu.ai.mit.edu>
Move defsubsts before defuns.
1996-01-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
(type-break-demo-life): Pass proper format string to message.
1996-01-04 Paul Eggert <eggert@twinsun.com>
(type-break-guesstimate-keystroke-threshold): Renamed from
type-break-guestimate-keystroke-threshold.
(type-break-keystroke-threshold, type-break-mode): Doc fix.
(type-break-warning-message-mode): New variable.
(type-break-warning-countdown-string): New variable.
(type-break-warning-countdown-string-type): New variable.
(type-break-warning-message-mode): New function.
(type-break-alarm): Reset type-break mode.
(type-break-check): Ignore mouse motion.
type-break-schedule: Use it.
Make interactive again.
type-break-guestimate-keystroke-threshold: Use `N' interactive spec, not `n'.
type-break-demo-boring: Show elapsed time of break, or number of minutes
left for good break.
(top level): Do not call type-break-mode.
type-break-warning-repeat: New variables.
type-break-current-time-warning-interval,
type-break-current-keystroke-warning-interval,
type-break-time-warning-count, type-break-keystroke-warning-count: New
variables.
type-break-demo-boring: New function.
type-break-demo-functions: Add it to the default list.
type-break-post-command-hook: New variable.
type-break-run-tb-post-command-hook: New function.
type-break-mode: Install them.
type-break-keystroke-reset: New function.
type-break-check: Call it when appropriate.
type-break: call type-break-cancel-schedule.
Check that rest time was within 60 seconds of "good rest" interval, not 120.
type-break-time-warning-schedule, type-break-cancel-time-warning-schedule,
type-break-time-warning-alarm, type-break-time-warning: New functions.
type-break-schedule: Remove interactive spec and docstring.
Call type-break-time-warning-schedule.
type-break-cancel-schedule: Remove interactive spec and docstring.
Call type-break-cancel-time-warning-schedule.
type-break-check: Don't check for type-break-mode here.
type-break-run-tb-post-command-hook does that now.
type-break-keystroke-warning: New function.
type-break-check-keystroke-warning: New inline function (defsubst).
type-break-check: Call it.
type-break-query: Bind type-break-mode to nil while calling query function.
type-break-keystroke-threshold: Calcuate based on 35wpm, not 30.
type-break-demo-function-vector: Variable deleted.
type-break-demo-functions: New variable.
type-break: Use new variable.
type-break-time-difference: Return absolute value.
type-break-format-time: New inline function (defsubst).
type-break-statistics, type-break: Use it.
type-break-mode: Just test prefix-numeric-value >= 0 to to enable mode.
The only visible difference is that invocation with no prefix arg the same
as if given positive numeric prefix arg now.
Do not document type-break-query-interval or type-break-query-function
here; make fritterware-happy users read the source.
type-break: If type break is much less (at least 2 minutes) than a "good
rest interval", ask user whether or not to continue with the break.
type-break-check: Do nothing if user is in the minibuffer.
When alarm is signaled but min threshold isn't reached, reschedule break.
type-break-demo-life: Eat char entered to end life demo.
threshold to 1/5, rather than 1/4, of upper.
type-break-guestimate-keystroke-threshold: Change threshold fraction here too.
type-break-demo-life: Restart when all life perishes.
type-break-mode (function): If setting to t and mode was already enabled,
don't reschedule breaks or reset keystroke counter.
type-break-good-rest-interval: New variable.
type-break-time-difference: New inline function (defsubst).
tyype-break-time-last-break, type-break-time-next-break,
type-break-time-last-command: New variables.
type-break-check: Reset timers and counters if user has been idle more than
type-break-good-rest-interval seconds (assuming it's set).
Never set keystroke counter to be less than the min threshold.
type-break: Admonish user if s/he rested less than
type-break-good-rest-interval seconds (assuming it's set).
type-break-demo-hanoi: Eat a char when quitting.
type-break-statistics, type-break-guestimate-keystroke-threshold: New
commands.
type-break-interval: Increase default to 1 hour.
type-break-query-interval: Variable renamed from type-break-delay-interval.
type-break-keystroke-interval: Variable deleted.
type-break-keystroke-threshold: New variable.
type-break-demo-life: Function renamed from type-break-life.
type-break-demo-hanoi: Function renamed from type-break-hanoi.
type-break-alarm-p: Variable renamed from type-break-p.
type-break: Don't query.
type-break-query: (New function) query here.
type-break-check: Call type-break-query, not type-break.
Do nothing if type-break-mode is nil.
Increment type-break-keystroke-count with the length of this-command-keys,
not just 1.
Query for break when keystroke count exceeds cdr of keystroke threshold
variable.
Query for break after an alarm only if keystroke count exceeds car of
keystroke threshold variable.
type-break-select: Function deleted.
type-break: Move that code here.
type-break-cancel-schedule: Function renamed from cancel-type-break.
Reset type-break-alarm-p.
type-break-alarm: Function renamed from type-break-soon.
(top level): Call type-break-mode; don't set up hook explicitly.