+ (setq type-break-query-mode
+ (>= (prefix-numeric-value prefix) 0))
+ (and (interactive-p)
+ (if type-break-query-mode
+ (message "type-break-query-mode is enabled")
+ (message "type-break-query-mode is disabled")))
+ type-break-query-mode)
+
+\f
+;;; session file functions
+
+(defvar type-break-auto-save-file-name
+ (let ((buffer-file-name type-break-file-name))
+ (make-auto-save-file-name))
+ "Auto-save name of `type-break-file-name'.")
+
+(defun type-break-file-time (&optional time)
+ "File break time in `type-break-file-name', unless the file is locked."
+ (if (and type-break-file-name
+ (not (stringp (file-locked-p type-break-file-name))))
+ (with-current-buffer (find-file-noselect type-break-file-name
+ 'nowarn)
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert (format "%s\n\n" (or time type-break-interval-start)))
+ ;; file saving is left to auto-save
+ ))))
+
+(defun type-break-file-keystroke-count ()
+ "File keystroke count in `type-break-file-name', unless the file is locked."
+ (if (and type-break-file-name
+ (not (stringp (file-locked-p type-break-file-name))))
+ ;; Prevent deactivation of the mark in some other buffer.
+ (let (deactivate-mark)
+ (with-current-buffer (find-file-noselect type-break-file-name
+ 'nowarn)
+ (save-excursion
+ (let ((inhibit-read-only t))
+ (goto-char (point-min))
+ (forward-line)
+ (delete-region (point) (save-excursion (end-of-line) (point)))
+ (insert (format "%s" type-break-keystroke-count))
+ ;; file saving is left to auto-save
+ ))))))
+
+(defun timep (time)
+ "If TIME is in the format returned by `current-time' then
+return TIME, else return nil."
+ (and (listp time)
+ (eq (length time) 3)
+ (integerp (car time))
+ (integerp (nth 1 time))
+ (integerp (nth 2 time))
+ time))
+
+(defun type-break-choose-file ()
+ "Return file to read from."