summaryrefslogtreecommitdiffhomepage
path: root/lib/eos/jao-r2e.el
diff options
context:
space:
mode:
Diffstat (limited to 'lib/eos/jao-r2e.el')
-rw-r--r--lib/eos/jao-r2e.el20
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