From 8a659016a9e3cfd90ef57464da91e0bdb06a5762 Mon Sep 17 00:00:00 2001
From: jao <jao@gnu.org>
Date: Wed, 10 Nov 2021 23:01:30 +0000
Subject: fix for rss subscriber

---
 init.org | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/init.org b/init.org
index a3577e8..0a92b75 100644
--- a/init.org
+++ b/init.org
@@ -1543,21 +1543,23 @@
       (autoload 'View-quit "view")
 
       (defun jao-rss--find-url ()
-        (when (derived-mode-p 'w3m-mode 'eww-mode)
-          (save-excursion
-            (if (fboundp 'w3m-view-source) (w3m-view-source) (eww-view-source))
-            (goto-char (point-min))
-            (when (re-search-forward
-                   "type=\"application/\\(?:atom\\|rss\\)\\+xml\" +" nil t)
-              (let ((url (save-excursion
-                           (when (re-search-forward
-                                  "href=\"\\([^\n\"]+\\)\"" nil t)
-                             (match-string-no-properties 1))))
-                    (title (when (re-search-forward
-                                  "\\(?:title=\"\\([^\n\"]+\\)\" +\\)" nil t)
-                             (match-string-no-properties 1))))
-                (if (fboundp 'w3m-view-mode) (w3m-view-source) (View-quit))
-                (when url (cons url (or title ""))))))))
+        (save-excursion
+          (when (derived-mode-p 'w3m-mode 'eww-mode)
+            (if (fboundp 'w3m-view-source) (w3m-view-source) (eww-view-source)))
+          (goto-char (point-min))
+          (when (re-search-forward
+                 "type=\"application/\\(?:atom\\|rss\\)\\+xml\" +" nil t)
+            (let ((url (save-excursion
+                         (when (re-search-forward
+                                "href=\"\\([^\n\"]+\\)\"" nil t)
+                           (match-string-no-properties 1))))
+                  (title (when (re-search-forward
+                                "\\(?:title=\"\\([^\n\"]+\\)\" +\\)" nil t)
+                           (match-string-no-properties 1))))
+              (cond ((derived-mode-p 'w3m-view-mode) (w3m-view-source))
+                    ((string-match-p ".*\\*eww-source\\b.*" (buffer-name))
+                     (View-quit)))
+              (when url (cons url (or title "")))))))
 
       (defun jao-rss2e-append (name url mbox)
         (with-current-buffer (find-file-noselect "~/.config/rss2email.cfg")
@@ -1569,12 +1571,10 @@
 
       (defun jao-rss-subscribe (url)
         "Subscribe to a given RSS URL.  If URL not given, look for it."
-        (interactive "sURL: ")
-        (let* ((url (or url
-                        (jao-url-around-point)
-                        (jao-rss--find-url)
-                        (read-string "Feed URL: ")))
-               (url+title (if (consp url) url (list url)))
+        (interactive (list (or (jao-url-around-point)
+                               (jao-rss--find-url)
+                               (read-string "Feed URL: "))))
+        (let* ((url+title (if (consp url) url (list url)))
                (url (car url+title))
                (title (cdr url+title)))
           (if url
-- 
cgit v1.2.3