;;; -*- Mode:LISP; Package:ZWEI; Base:10; Readtable:ZL -*-

(DEFMINOR COM-AUTO-SAVE-MODE AUTO-SAVE-MODE "with Auto Save" 2
  "Minor mode in which buffer is saved every so many keystrokes."
	  ()
  (setq *AUTO-SAVE-CHAR-COUNT* 0)	  
  (COMMAND-HOOK 'AUTO-SAVE-HOOK *POST-COMMAND-HOOK*))

(DEFPROP AUTO-SAVE-HOOK -20 COMMAND-HOOK-PRIORITY)
(defvar *AUTO-SAVE-CHAR-COUNT* 0.)
(defvar *AUTO-SAVE-MAX-CHARS* 1000.)
(DEFUN AUTO-SAVE-HOOK (ignore)
  (if (and ( *auto-save-char-count* *auto-save-max-chars*)
	   (neq *interval* (window-interval *mini-buffer-window*)))
      (progn (save-buffer *interval*)
	     (setq *AUTO-SAVE-CHAR-COUNT* 0))
    (incf *auto-save-char-count*)))


(DEFPROP AUTO-SAVE-HOOK DOCUMENT-AUTO-SAVE-HOOK HOOK-DOCUMENTATION-FUNCTION)

(DEFUN DOCUMENT-AUTO-SAVE-HOOK (IGNORE )
  (PRINC "Auto save buffer after *AUTO-SAVE-MAX-CHARS* keystrokes."))



