shr: Render td content with shr-descend
[gnus] / lisp / gnus-int.el
index b344a5e..767ac2e 100644 (file)
@@ -259,20 +259,21 @@ If it is down, start it up (again)."
          (gnus-message 1 "Denied server %s" server)
          nil)
       ;; Open the server.
-      (let* ((open-server-function (gnus-get-function gnus-command-method 'open-server))
+      (let* ((open-server-function
+             (gnus-get-function gnus-command-method 'open-server))
              (result
-             (condition-case err
-                 (funcall open-server-function
-                          (nth 1 gnus-command-method)
-                          (nthcdr 2 gnus-command-method))
-               (error
-                (gnus-message 1 "Unable to open server %s due to: %s"
-                             server (error-message-string err))
-                nil)
-               (quit
-                (gnus-message 1 "Quit trying to open server %s" server)
-                nil)))
-            open-offline)
+             (condition-case err
+                 (funcall open-server-function
+                          (nth 1 gnus-command-method)
+                          (nthcdr 2 gnus-command-method))
+               (error
+                (gnus-message 1 "Unable to open server %s due to: %s"
+                              server (error-message-string err))
+                nil)
+               (quit
+                (gnus-message 1 "Quit trying to open server %s" server)
+                nil)))
+            open-offline)
        ;; If this hasn't been opened before, we add it to the list.
        (unless elem
          (setq elem (list gnus-command-method nil)
@@ -503,11 +504,22 @@ If BUFFER, insert the article in that group."
             (nth 1 gnus-command-method) buffer)))
 
 (defun gnus-request-thread (id)
-  "Request the thread containing the article specified by Message-ID id."
+  "Request the headers in the thread containing the article
+specified by Message-ID id."
   (let ((gnus-command-method (gnus-find-method-for-group gnus-newsgroup-name)))
     (funcall (gnus-get-function gnus-command-method 'request-thread)
             id)))
 
+(defun gnus-warp-to-article ()
+  "Warps from an article in a virtual group to the article in its
+real group. Does nothing on a real group."
+  (interactive)
+  (let ((gnus-command-method
+        (gnus-find-method-for-group gnus-newsgroup-name)))
+    (when (gnus-check-backend-function
+          'warp-to-article (car gnus-command-method))
+      (funcall (gnus-get-function gnus-command-method 'warp-to-article)))))
+
 (defun gnus-request-head (article group)
   "Request the head of ARTICLE in GROUP."
   (let* ((gnus-command-method (gnus-find-method-for-group group))