home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / me34src.zip / me3 / mutt / package / saveall.mut < prev    next >
Text File  |  1995-01-14  |  1KB  |  73 lines

  1. (include me.mh)
  2.  
  3. (defun
  4.   save-all-buffers { (save-them-all FALSE) }
  5.   save-them-all (bool interruptable) HIDDEN
  6.   {
  7.     (int j cw bp flags)
  8.  
  9.     (cw (current-buffer))
  10.  
  11.     (for (j 0) (< j (buffers)) (+= j 1)
  12.     {
  13.     ;; maybe quit early if user is typing
  14.       (if (and interruptable (key-waiting)) (break))
  15.       (bp (nth-buffer j))
  16.       (flags (buffer-flags bp))
  17.       (if (and
  18.         (!= "" (file-name bp))
  19.         (== 0 (bit-and BFNoCare   flags))
  20.         (!= 0 (bit-and BFModified flags)))
  21.         {
  22.       (current-buffer bp)
  23.       (save-buffer)
  24.     })
  25.     })
  26.     (current-buffer cw)
  27.   }
  28. )
  29.  
  30.  
  31. (small-int save-tick)
  32.  
  33. (defun
  34.   MAIN
  35.   {
  36.     (save-tick 150)        ;; default
  37.   }
  38.   idle-save-tick (int tick)
  39.   {
  40.     (if (== 1 (nargs)) (save-tick tick))
  41.     save-tick
  42.   }
  43.   save-when-idle
  44.   {
  45.     (int m s)
  46.  
  47.     (if (and (not (arg-flag)) (unregister-hook IDLE-HOOK "idle-save"))
  48.       {
  49.     (msg "Saving when idle turned off.")
  50.     FALSE
  51.       }
  52.       {
  53.     (register-hook IDLE-HOOK "idle-save")
  54.  
  55.     (if (arg-flag) (idle-save-tick (arg-prefix)))
  56.     (arg-flag FALSE 1)        ;; reset arg count
  57.     
  58.     (s (- save-tick (* 60 (m (/ save-tick 60)))))
  59.     (msg "Saving when idle set to about "
  60.           m " minutes, " s " seconds.")
  61.     TRUE
  62.       })
  63.   }
  64.   idle-save (int tick)
  65.   {
  66.     (if (== tick save-tick)
  67.       {
  68.     (save-them-all TRUE)
  69.     (update)    ;; restore cursor
  70.       })
  71.   }
  72. )
  73.