shr: Render td content with shr-descend
[gnus] / lisp / gnus-async.el
index 979e671..9bb28f3 100644 (file)
@@ -145,8 +145,7 @@ that was fetched."
   (when (and (gnus-buffer-live-p summary)
             gnus-asynchronous
             (gnus-group-asynchronous-p group))
-    (save-excursion
-      (set-buffer gnus-summary-buffer)
+    (with-current-buffer gnus-summary-buffer
       (let ((next (caadr (gnus-data-find-list article))))
        (when next
          (if (not (fboundp 'run-with-idle-timer))
@@ -205,8 +204,7 @@ that was fetched."
 
          (when (and do-fetch article)
            ;; We want to fetch some more articles.
-           (save-excursion
-             (set-buffer summary)
+           (with-current-buffer summary
              (let (mark)
                (gnus-async-set-buffer)
                (goto-char (point-max))
@@ -318,7 +316,8 @@ that was fetched."
     (set-marker (caddr entry) nil))
   (gnus-async-with-semaphore
     (setq gnus-async-article-alist
-         (delq entry gnus-async-article-alist))))
+         (delq entry gnus-async-article-alist))
+    (unintern (car entry) gnus-async-hashtb)))
 
 (defun gnus-async-prefetch-remove-group (group)
   "Remove all articles belonging to GROUP from the prefetch buffer."
@@ -334,8 +333,8 @@ that was fetched."
   "Return the entry for ARTICLE in GROUP if it has been prefetched."
   (let ((entry (save-excursion
                 (gnus-async-set-buffer)
-                (assq (intern (format "%s-%d" group article)
-                              gnus-async-hashtb)
+                (assq (intern-soft (format "%s-%d" group article)
+                                   gnus-async-hashtb)
                       gnus-async-article-alist))))
     ;; Perhaps something has emptied the buffer?
     (if (and entry