;; print buffers unsaved, unless within "seconds" below
-;; run with
-;; emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)" | sed 's/^..//;s/..$//'
-
+;; for example running, see system-stat
(format "%s"
(-reduce-from
(lambda (acc buf)
- (let ((seconds 60)
- (bpath (buffer-file-name buf)))
+ (let ((bpath (buffer-file-name buf)))
(if (and bpath
- (buffer-modified-p buf)
- (time-less-p
- (file-attribute-modification-time (file-attributes bpath))
- (time-add (current-time) (- seconds))))
+ (buffer-modified-p buf))
(cons bpath acc )
acc)))
nil (buffer-list))
)
+
+;; put into
+;; (format "%s" (-reduce-from (lambda (acc buf) (let ((bpath (buffer-file-name buf))) (if (and bpath (buffer-modified-p buf)) (cons bpath acc ) acc))) nil (buffer-list)))
+
+
+;;
+;; Previously, I used a condition to check only for files not saved
+;; which had mod times > 60 seconds. However, using it my system status
+;; script meant stating a lot of files over and over, which eventually
+;; caused some lag, so I abandoned it.
+;;