* nnimap.el: Use nnheader-message throughout.
[gnus] / lisp / nnimap.el
index 5aca6f3..8f0a112 100644 (file)
@@ -304,6 +304,8 @@ textual parts.")
               ((or (eq nnimap-stream 'network)
                    (and (eq nnimap-stream 'starttls)
                         (fboundp 'open-gnutls-stream)))
+               (nnheader-message 7 "Opening connection to %s..."
+                                 nnimap-address)
                (open-network-stream
                 "*nnimap*" (current-buffer) nnimap-address
                 (setq port
@@ -313,17 +315,24 @@ textual parts.")
                             "143"))))
                '("143" "imap"))
               ((eq nnimap-stream 'shell)
+               (nnheader-message 7 "Opening connection to %s via shell..."
+                                 nnimap-address)
                (nnimap-open-shell-stream
                 "*nnimap*" (current-buffer) nnimap-address
                 (setq port (or nnimap-server-port "imap")))
                '("imap"))
               ((eq nnimap-stream 'starttls)
-               (let ((tls-program "openssl s_client %s -connect %h:%p -no_ssl2 -ign_eof -starttls imap"))
+               (nnheader-message 7 "Opening connection to %s via starttls..."
+                        nnimap-address)
+               (let ((tls-program
+                      '("openssl s_client -connect %h:%p -no_ssl2 -ign_eof -starttls imap")))
                  (open-tls-stream
                   "*nnimap*" (current-buffer) nnimap-address
                   (setq port (or nnimap-server-port "imap"))))
                '("imap"))
               ((memq nnimap-stream '(ssl tls))
+               (nnheader-message 7 "Opening connection to %s via tls..."
+                                 nnimap-address)
                (funcall (if (fboundp 'open-gnutls-stream)
                             'open-gnutls-stream
                           'open-tls-stream)
@@ -434,6 +443,7 @@ textual parts.")
   (when (nnoo-change-server 'nnimap server nil)
     (ignore-errors
       (delete-process (get-buffer-process (nnimap-buffer))))
+    (nnoo-close-server 'nnimap server)
     t))
 
 (deffoo nnimap-request-close ()
@@ -727,7 +737,7 @@ textual parts.")
    ((and force
         (eq nnmail-expiry-target 'delete))
     (unless (nnimap-delete-article (gnus-compress-sequence articles))
-      (message "Article marked for deletion, but not expunged."))
+      (nnheader-message 7 "Article marked for deletion, but not expunged."))
     nil)
    (t
     (let ((deletable-articles
@@ -753,7 +763,7 @@ textual parts.")
       (let ((target nnmail-expiry-target))
        (with-temp-buffer
          (when (nnimap-request-article article group server (current-buffer))
-           (message "Expiring article %s:%d" group article)
+           (nnheader-message 7 "Expiring article %s:%d" group article)
            (when (functionp target)
              (setq target (funcall target group)))
            (when (and target
@@ -823,7 +833,7 @@ textual parts.")
   (when (and (nnimap-possibly-change-group nil server)
             nnimap-inbox
             nnimap-split-methods)
-    (message "nnimap %s splitting mail..." server)
+    (nnheader-message 7 "nnimap %s splitting mail..." server)
     (nnimap-split-incoming-mail)))
 
 (defun nnimap-marks-to-flags (marks)
@@ -875,7 +885,7 @@ textual parts.")
        (let ((result (nnimap-get-response sequence)))
          (if (not (car result))
              (progn
-               (message "%s" (nnheader-get-report-string 'nnimap))
+               (nnheader-message 7 "%s" (nnheader-get-report-string 'nnimap))
                nil)
            (cons group
                  (nnimap-find-article-by-message-id group message-id))))))))
@@ -1309,6 +1319,25 @@ textual parts.")
   (setq nnimap-status-string "Read-only server")
   nil)
 
+(deffoo nnimap-request-thread (id)
+    (let* ((refs (split-string
+              (or (mail-header-references (gnus-summary-article-header))
+                  "")))
+          (cmd (let ((value
+                      (format
+                       "(OR HEADER REFERENCES %s HEADER Message-Id %s)"
+                       id id)))
+                 (dolist (refid refs value)
+                   (setq value (format
+                                "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
+                                refid refid value)))))
+          (result
+           (with-current-buffer (nnimap-buffer)
+             (nnimap-command  "UID SEARCH %s" cmd))))
+      (gnus-fetch-headers (and (car result)
+          (delete 0 (mapcar #'string-to-number
+                            (cdr (assoc "SEARCH" (cdr result)))))))))
+
 (defun nnimap-possibly-change-group (group server)
   (let ((open-result t))
     (when (and server
@@ -1405,7 +1434,7 @@ textual parts.")
                              (point-min))
                            t)))
            (when messagep
-             (message "nnimap read %dk" (/ (buffer-size) 1000)))
+             (nnheader-message 7 "nnimap read %dk" (/ (buffer-size) 1000)))
            (nnheader-accept-process-output process)
            (goto-char (point-max)))
           openp)