From 75220ccdee2f3de039498b717d2b15c04f676d2a Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 28 Sep 2025 01:25:21 +0100 Subject: multisession variables instead of persist --- init.el | 3 --- lib/doc/jao-doc-session.el | 8 ++++---- lib/eos/jao-r2e.el | 20 ++++++++++++-------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/init.el b/init.el index 9194f97..66a25e3 100644 --- a/init.el +++ b/init.el @@ -118,9 +118,6 @@ (jao-load-site-el "pre") ;;; System Utilities -;;;; persist -(use-package persist :ensure t) - ;;;; (no) backups (setq vc-make-backup-files nil make-backup-files nil) 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 -- cgit v1.2.3