summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2025-09-28 01:25:21 +0100
committerjao <jao@gnu.org>2025-09-28 01:29:49 +0100
commit75220ccdee2f3de039498b717d2b15c04f676d2a (patch)
tree99a15e815d47af748cf65deb82c5abd88bf90bcc /lib
parent372bb077bcbd6904845991e9e72c759207bc1cf8 (diff)
downloadelibs-75220ccdee2f3de039498b717d2b15c04f676d2a.tar.gz
elibs-75220ccdee2f3de039498b717d2b15c04f676d2a.tar.bz2
multisession variables instead of persist
Diffstat (limited to 'lib')
-rw-r--r--lib/doc/jao-doc-session.el8
-rw-r--r--lib/eos/jao-r2e.el20
2 files changed, 16 insertions, 12 deletions
diff --git a/lib/doc/jao-doc-session.el b/lib/doc/jao-doc-session.el
index b54a942..cea9356 100644
--- a/lib/doc/jao-doc-session.el
+++ b/lib/doc/jao-doc-session.el
@@ -20,7 +20,9 @@
;;; Code:
-(persist-defvar jao-doc-session nil "Documents session")
+(define-multisession-variable jao-doc-session "Documents session")
+
+(defun jao-doc-session () (multisession-value jao-doc-session))
(defvar-local jao-doc-session-is-doc nil
"Setting this variable as t in a buffer will mark it as belonging to a session.
@@ -31,8 +33,6 @@ See also `jao-doc-session-mark'.")
"Check whether the given or current buffer belong to the doc session."
(buffer-local-value 'jao-doc-session-is-doc (or buffer (current-buffer))))
-(defun jao-doc-session (&optional file) jao-doc-session)
-
(defun jao-doc-session-save (&optional skip-current force)
"Traverse all current buffers and update the value of `jao-doc-session'."
(interactive)
@@ -43,7 +43,7 @@ See also `jao-doc-session-mark'.")
(fs (if (listp fs) fs (list (buffer-file-name b)))))
(dolist (f fs) (add-to-list 'docs f))))
(when (or force (> (length docs) 0))
- (setq jao-doc-session docs))))
+ (setf (jao-doc-session) docs))))
(defun jao-doc-session-mark (&optional path)
"Mark the current buffer's file, or PATH, as persistent across sessions."
diff --git a/lib/eos/jao-r2e.el b/lib/eos/jao-r2e.el
index 24b6429..aa44040 100644
--- a/lib/eos/jao-r2e.el
+++ b/lib/eos/jao-r2e.el
@@ -148,9 +148,11 @@
(jao-r2e-list)
(goto-char p)))))
-(persist-defvar jao-r2e-deleted-feeds '()
+(define-multisession-variable jao-r2e-deleted-feeds '()
"List of rss2email feeds deleted at some point.")
+(defun jao-r2e--deleted () (multisession-value jao-r2e-deleted-feeds))
+
(defun jao-r2e-delete ()
"Delete feed at point. Use `jao-r2e-recover' to undelete."
(interactive)
@@ -158,9 +160,10 @@
(unless f (error "No feed at point"))
(let ((p (point))
(no (car f))
- (name (cadr f)))
- (when (yes-or-no-p (format "Delete feed '%s'" name))
- (add-to-list 'jao-r2e-deleted-feeds (cdr f))
+ (entry (cdr f)))
+ (when (yes-or-no-p (format "Delete feed '%s'" (car entry)))
+ (setf (jao-r2e--deleted)
+ (cons entry (remove entry (jao-r2e--deleted))))
(with-temp-buffer
(jao-r2e--do (format "delete %s" no) (current-buffer)))
(jao-r2e-list)
@@ -168,16 +171,17 @@
(defun jao-r2e-recover ()
(interactive)
- (when (seq-empty-p jao-r2e-deleted-feeds)
+ (when (seq-empty-p (jao-r2e--deleted))
(error "No feeds recoverable at this point."))
- (let ((feed (completing-read "Recover feed: " jao-r2e-deleted-feeds)))
- (when-let* ((ps (assoc feed jao-r2e-deleted-feeds))
+ (let* ((entries (jao-r2e--deleted))
+ (feed (completing-read "Recover feed: " entries)))
+ (when-let* ((ps (assoc feed entries))
(url (caddr ps))
(mail (car (last ps)))
(cat (when (string-match "feeds\\.\\(.+\\)@localhost" mail)
(match-string 1 mail))))
(jao-r2e-subscribe (list url feed) cat t)
- (setq jao-r2e-deleted-feeds (remove ps jao-r2e-deleted-feeds)))))
+ (setf (jao-r2e--deleted) (remove ps entries)))))
(defun jao-r2e--find-url ()
(save-excursion