diff options
author | jao <jao@gnu.org> | 2025-09-28 01:25:21 +0100 |
---|---|---|
committer | jao <jao@gnu.org> | 2025-09-28 01:29:49 +0100 |
commit | 75220ccdee2f3de039498b717d2b15c04f676d2a (patch) | |
tree | 99a15e815d47af748cf65deb82c5abd88bf90bcc /lib/eos/jao-r2e.el | |
parent | 372bb077bcbd6904845991e9e72c759207bc1cf8 (diff) | |
download | elibs-75220ccdee2f3de039498b717d2b15c04f676d2a.tar.gz elibs-75220ccdee2f3de039498b717d2b15c04f676d2a.tar.bz2 |
multisession variables instead of persist
Diffstat (limited to 'lib/eos/jao-r2e.el')
-rw-r--r-- | lib/eos/jao-r2e.el | 20 |
1 files changed, 12 insertions, 8 deletions
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 |