]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge changes made in Gnus trunk.
authorGnus developers <ding@gnus.org>
Thu, 4 Nov 2010 22:18:09 +0000 (22:18 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 4 Nov 2010 22:18:09 +0000 (22:18 +0000)
mm-decode.el (mm-save-part): Put the entire path in the `M-n' slot.
nnimap.el (nnimap-find-article-by-message-id): Don't EXAMINE a group if it's already selected.
gnus.texi (Customizing the IMAP Connection): Document `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
gnus.texi (Customizing the IMAP Connection): Remove nnir mention, since that works by default.
gnus-sum.el (gnus-summary-show-article): Take `t' as the arg to mean "raw".
gnus-html.el (gnus-html-browse-url): Implement mailto: URLs.
shr.el (shr-browse-url): Implement mailto: URLs.
nnir.el, gnus-sum.el: Improve thread-referral.
message.el (message-send-mail): Use the value of message-courtesy-message from the message buffer.

doc/misc/ChangeLog
doc/misc/gnus.texi
lisp/gnus/ChangeLog
lisp/gnus/gnus-html.el
lisp/gnus/gnus-sum.el
lisp/gnus/message.el
lisp/gnus/mm-decode.el
lisp/gnus/nnimap.el
lisp/gnus/nnir.el
lisp/gnus/shr.el

index 89e16eaa30825d007186bdc680ab066ea6e5d142..9761e599d8fcf4f6846709f443a35f78d9441cc4 100644 (file)
@@ -1,3 +1,13 @@
+2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
+       since that works by default.
+
+2010-11-03  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
+
+       * gnus.texi (Customizing the IMAP Connection): Document
+       `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
+
 2010-11-04  Michael Albinus  <michael.albinus@gmx.de>
 
        * tramp.texi (Remote shell setup): New item "Interactive shell
index eccef8519800dc29f94df84a0bd33ae7c4702d18..8709635a58bc6c3933f34eea0bc698267b00a98c 100644 (file)
@@ -14845,9 +14845,7 @@ Here's an example method that's more complex:
         (nnimap-inbox "INBOX")
         (nnimap-split-methods default)
         (nnimap-expunge t)
-        (nnimap-stream ssl)
-        (nnir-search-engine imap)
-        (nnimap-expunge-inbox t))
+        (nnimap-stream ssl))
 @end example
 
 @table @code
@@ -14883,6 +14881,11 @@ what you need.
 Some @acronym{IMAP} servers allow anonymous logins.  In that case,
 this should be set to @code{anonymous}.
 
+@item nnimap-expunge
+If non-@code{nil}, expunge articles after deleting them.  This is always done
+if the server supports UID EXPUNGE, but it's not done by default on
+servers that doesn't support that command.
+
 @item nnimap-streaming
 Virtually all @code{IMAP} server support fast streaming of data.  If
 you have problems connecting to the server, try setting this to @code{nil}.
index aff887fb77017c39d02147d192e8a367b32059c3..2cb1a77107a3aa218948aeb0cc10e870e45e399e 100644 (file)
@@ -1,3 +1,32 @@
+2010-11-04  Andrew Cohen  <cohen@andy.bu.edu>
+
+       * nnir.el (gnus-summary-nnir-goto-thread): limiting work done by
+       gnus-summary-refer-thread.
+
+       * gnus-sum.el (gnus-build-all-threads): force updating of dependency
+       headers.
+       (gnus-summary-limit-include-thread): prevent articles in thread from
+       being cut in gnus-cut-threads.
+       (gnus-summary-refer-thread): limit retrieved headers to those in
+       thread.
+
+2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-send-mail): Use the value of
+       message-courtesy-message from the message buffer.
+
+       * gnus-html.el (gnus-html-browse-url): Implement mailto: URLs.
+
+       * shr.el (shr-browse-url): Implement mailto: URLs.
+
+       * gnus-sum.el (gnus-summary-show-article): Take `t' as the arg to mean
+       "raw".
+
+       * nnimap.el (nnimap-find-article-by-message-id): Don't EXAMINE a group
+       if it's already selected.
+
+       * mm-decode.el (mm-save-part): Put the entire path in the `M-n' slot.
+
 2010-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * shr.el (shr-tag-img): Use string-width and truncate-string-to-width
index cf139f2154d6bb386c19f8c3bea2aee10fd7676c..46e5881d9fb8b75c42ce8b59665736ac2003eb7f 100644 (file)
@@ -350,9 +350,13 @@ Use ALT-TEXT for the image string."
   "Browse the image under point."
   (interactive)
   (let ((url (get-text-property (point) 'gnus-string)))
-    (if (not url)
-       (message "No URL at point")
-      (browse-url url))))
+    (cond
+     ((not url)
+      (message "No link under point"))
+     ((string-match "^mailto:" url)
+      (gnus-url-mailto url))
+     (t
+      (browse-url url)))))
 
 (defun gnus-html-schedule-image-fetching (buffer image)
   "Retrieve IMAGE, and place it into BUFFER on arrival."
index 0f49ed84fac8b8a30df867a2b5cc3994172f8e3a..2eedc07d10f708fdf9cffba98fce32d846cbf86a 100644 (file)
@@ -4506,7 +4506,7 @@ the id of the parent article (if any)."
        (while (not (eobp))
          (ignore-errors
            (setq article (read (current-buffer))
-                 header (gnus-nov-parse-line article dependencies)))
+                 header (gnus-nov-parse-line article dependencies t)))
          (when header
            (with-current-buffer gnus-summary-buffer
              (push header gnus-newsgroup-headers)
@@ -8445,7 +8445,11 @@ When called interactively, ID is the Message-ID of the current
 article."
   (interactive (list (mail-header-id (gnus-summary-article-header))))
   (let ((articles (gnus-articles-in-thread
-                  (gnus-id-to-thread (gnus-root-id id)))))
+                  (gnus-id-to-thread (gnus-root-id id))))
+       ;;we REALLY want the whole thread---this prevents cut-threads
+       ;;from removing the thread we want to include.
+       (gnus-fetch-old-headers nil)
+       (gnus-build-sparse-threads nil))
     (prog1
        (gnus-summary-limit (nconc articles gnus-newsgroup-limit))
       (gnus-summary-limit-include-matching-articles
@@ -8832,7 +8836,13 @@ fetch what's specified by the `gnus-refer-thread-limit'
 variable."
   (interactive "P")
   (let ((id (mail-header-id (gnus-summary-article-header)))
+       (subject (gnus-simplify-subject
+                 (mail-header-subject (gnus-summary-article-header))))
+       (refs (split-string (or (mail-header-references
+                                (gnus-summary-article-header)) "")))
        (gnus-summary-ignore-duplicates t)
+       (gnus-inhibit-demon t)
+       (gnus-read-all-available-headers t)
        (limit (if limit (prefix-numeric-value limit)
                 gnus-refer-thread-limit)))
     (if  (gnus-check-backend-function 'request-thread gnus-newsgroup-name)
@@ -8859,6 +8869,11 @@ variable."
          (gnus-message 5 "Fetching headers for %s...done"
                        gnus-newsgroup-name))))
     (when (eq gnus-headers-retrieved-by 'nov)
+      ;; might as well restrict the headers to the relevant ones. this
+      ;; should save time when building threads.
+      (with-current-buffer nntp-server-buffer
+       (goto-char (point-min))
+       (keep-lines (regexp-opt (append refs (list id subject)))))
       (gnus-build-all-threads))
     (gnus-summary-limit-include-thread id)))
 
@@ -9423,7 +9438,8 @@ C-u g', show the raw article."
    ((not arg)
     ;; Select the article the normal way.
     (gnus-summary-select-article nil 'force))
-   ((equal arg '(16))
+   ((or (equal arg '(16))
+       (eq arg t))
     ;; C-u C-u g
     ;; We have to require this here to make sure that the following
     ;; dynamic binding isn't shadowed by autoloading.
index 48daea844bfdd22313c29493e107a7ae62890b83..cc793dfcf9a9c8d53cc5ceedf278b8b4b2e2dd81 100644 (file)
@@ -4498,7 +4498,9 @@ This function could be useful in `message-setup-hook'."
                         (string= "base64"
                                  (message-fetch-field
                                   "content-transfer-encoding")))))))
-           (message-insert-courtesy-copy))
+           (message-insert-courtesy-copy
+            (with-current-buffer mailbuf
+              message-courtesy-message)))
           ;; Let's make sure we encoded all the body.
           (assert (save-excursion
                     (goto-char (point-min))
@@ -5939,7 +5941,7 @@ Headers already prepared in the buffer are not modified."
       ;; Check for IDNA
       (message-idna-to-ascii-rhs))))
 
-(defun message-insert-courtesy-copy ()
+(defun message-insert-courtesy-copy (message)
   "Insert a courtesy message in mail copies of combined messages."
   (let (newsgroups)
     (save-excursion
@@ -5949,12 +5951,12 @@ Headers already prepared in the buffer are not modified."
          (goto-char (point-max))
          (insert "Posted-To: " newsgroups "\n")))
       (forward-line 1)
-      (when message-courtesy-message
+      (when message
        (cond
-        ((string-match "%s" message-courtesy-message)
-         (insert (format message-courtesy-message newsgroups)))
+        ((string-match "%s" message)
+         (insert (format message newsgroups)))
         (t
-         (insert message-courtesy-message)))))))
+         (insert message)))))))
 
 ;;;
 ;;; Setting up a message buffer
index f3c04cee4f80d956ef72a83cc7d37db5691d79d0..bcd6a80f1e8a7e5c073b42018a6cc979f35bd02d 100644 (file)
@@ -1251,11 +1251,13 @@ PROMPT overrides the default one used to ask user for a file name."
       (setq filename (gnus-map-function mm-file-name-rewrite-functions
                                        (file-name-nondirectory filename))))
     (setq file
-          (read-file-name (or prompt
-                             (format "Save MIME part to (default %s): "
-                                     (or filename "")))
-                          (or mm-default-directory default-directory)
-                         (or filename "")))
+          (read-file-name
+          (or prompt
+              (format "Save MIME part to (default %s): "
+                      (or filename "")))
+          (or mm-default-directory default-directory)
+          (expand-file-name (or filename "")
+                            (or mm-default-directory default-directory))))
     (if (file-directory-p file)
        (setq file (expand-file-name filename file))
       (setq file (expand-file-name
index ef7831caa29902d677dbe3b0b59e9b7cf086bc9a..65d5af964e575e942ee5dbd0381aadc3608c6e09 100644 (file)
@@ -731,8 +731,6 @@ textual parts.")
       ;; to examine a mailbox that doesn't exist.  This seems to be
       ;; the only way that allows us to reliably go back to unselected
       ;; state on Courier.
-      (nnimap-command "EXAMINE DOES.NOT.EXIST")
-      (setf (nnimap-group nnimap-object) nil)
       (car (nnimap-command "RENAME %S %S"
                           (utf7-encode group t) (utf7-encode new-name t))))))
 
@@ -863,8 +861,9 @@ textual parts.")
 (defun nnimap-find-article-by-message-id (group message-id)
   (with-current-buffer (nnimap-buffer)
     (erase-buffer)
-    (setf (nnimap-group nnimap-object) nil)
-    (nnimap-send-command "EXAMINE %S" (utf7-encode group t))
+    (unless (equal group (nnimap-group nnimap-object))
+      (setf (nnimap-group nnimap-object) nil)
+      (nnimap-send-command "EXAMINE %S" (utf7-encode group t)))
     (let ((sequence
           (nnimap-send-command "UID SEARCH HEADER Message-Id %S" message-id))
          article result)
index 0788ccbe7cac699e1dc332298a33c1284b00c306..326de6e3ac889c6dffb0ee7dccafe925055f3f4d 100644 (file)
@@ -510,7 +510,6 @@ and show thread that contains this article."
                               (cdr (assoc "SEARCH" (cdr result))))))))))
       (gnus-summary-read-group-1 group t t gnus-summary-buffer
                                 nil (list backend-number))
-      (gnus-summary-limit (list backend-number))
       (gnus-summary-refer-thread))))
 
 
index 5614e72f5181925d3aff52a16bec40511b726248..c828d190b96f402a076bc93f241487c99b915888 100644 (file)
@@ -340,9 +340,13 @@ redirects somewhere else."
   "Browse the URL under point."
   (interactive)
   (let ((url (get-text-property (point) 'shr-url)))
-    (if (not url)
-       (message "No link under point")
-      (browse-url url))))
+    (cond
+     ((not url)
+      (message "No link under point"))
+     ((string-match "^mailto:" url)
+      (gnus-url-mailto url))
+     (t
+      (browse-url url)))))
 
 (defun shr-save-contents (directory)
   "Save the contents from URL in a file."