aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGnus developers2010-11-04 22:18:09 +0000
committerKatsumi Yamaoka2010-11-04 22:18:09 +0000
commit181cb5fb657b4f226eb5f9f4d13d8ea9ede81268 (patch)
treeb295f56479fd578643457e21d196622cbbb0000f
parent0a61b059c61e9867478339572caa3329f616996d (diff)
downloademacs-181cb5fb657b4f226eb5f9f4d13d8ea9ede81268.tar.gz
emacs-181cb5fb657b4f226eb5f9f4d13d8ea9ede81268.zip
Merge changes made in Gnus trunk.
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.
-rw-r--r--doc/misc/ChangeLog10
-rw-r--r--doc/misc/gnus.texi9
-rw-r--r--lisp/gnus/ChangeLog29
-rw-r--r--lisp/gnus/gnus-html.el10
-rw-r--r--lisp/gnus/gnus-sum.el22
-rw-r--r--lisp/gnus/message.el14
-rw-r--r--lisp/gnus/mm-decode.el12
-rw-r--r--lisp/gnus/nnimap.el7
-rw-r--r--lisp/gnus/nnir.el1
-rw-r--r--lisp/gnus/shr.el10
10 files changed, 96 insertions, 28 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 89e16eaa308..9761e599d8f 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,13 @@
12010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
4 since that works by default.
5
62010-11-03 Kan-Ru Chen <kanru@kanru.info> (tiny change)
7
8 * gnus.texi (Customizing the IMAP Connection): Document
9 `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
10
12010-11-04 Michael Albinus <michael.albinus@gmx.de> 112010-11-04 Michael Albinus <michael.albinus@gmx.de>
2 12
3 * tramp.texi (Remote shell setup): New item "Interactive shell 13 * tramp.texi (Remote shell setup): New item "Interactive shell
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index eccef851980..8709635a58b 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -14845,9 +14845,7 @@ Here's an example method that's more complex:
14845 (nnimap-inbox "INBOX") 14845 (nnimap-inbox "INBOX")
14846 (nnimap-split-methods default) 14846 (nnimap-split-methods default)
14847 (nnimap-expunge t) 14847 (nnimap-expunge t)
14848 (nnimap-stream ssl) 14848 (nnimap-stream ssl))
14849 (nnir-search-engine imap)
14850 (nnimap-expunge-inbox t))
14851@end example 14849@end example
14852 14850
14853@table @code 14851@table @code
@@ -14883,6 +14881,11 @@ what you need.
14883Some @acronym{IMAP} servers allow anonymous logins. In that case, 14881Some @acronym{IMAP} servers allow anonymous logins. In that case,
14884this should be set to @code{anonymous}. 14882this should be set to @code{anonymous}.
14885 14883
14884@item nnimap-expunge
14885If non-@code{nil}, expunge articles after deleting them. This is always done
14886if the server supports UID EXPUNGE, but it's not done by default on
14887servers that doesn't support that command.
14888
14886@item nnimap-streaming 14889@item nnimap-streaming
14887Virtually all @code{IMAP} server support fast streaming of data. If 14890Virtually all @code{IMAP} server support fast streaming of data. If
14888you have problems connecting to the server, try setting this to @code{nil}. 14891you have problems connecting to the server, try setting this to @code{nil}.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index aff887fb770..2cb1a77107a 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,32 @@
12010-11-04 Andrew Cohen <cohen@andy.bu.edu>
2
3 * nnir.el (gnus-summary-nnir-goto-thread): limiting work done by
4 gnus-summary-refer-thread.
5
6 * gnus-sum.el (gnus-build-all-threads): force updating of dependency
7 headers.
8 (gnus-summary-limit-include-thread): prevent articles in thread from
9 being cut in gnus-cut-threads.
10 (gnus-summary-refer-thread): limit retrieved headers to those in
11 thread.
12
132010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
14
15 * message.el (message-send-mail): Use the value of
16 message-courtesy-message from the message buffer.
17
18 * gnus-html.el (gnus-html-browse-url): Implement mailto: URLs.
19
20 * shr.el (shr-browse-url): Implement mailto: URLs.
21
22 * gnus-sum.el (gnus-summary-show-article): Take `t' as the arg to mean
23 "raw".
24
25 * nnimap.el (nnimap-find-article-by-message-id): Don't EXAMINE a group
26 if it's already selected.
27
28 * mm-decode.el (mm-save-part): Put the entire path in the `M-n' slot.
29
12010-11-04 Katsumi Yamaoka <yamaoka@jpl.org> 302010-11-04 Katsumi Yamaoka <yamaoka@jpl.org>
2 31
3 * shr.el (shr-tag-img): Use string-width and truncate-string-to-width 32 * shr.el (shr-tag-img): Use string-width and truncate-string-to-width
diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el
index cf139f2154d..46e5881d9fb 100644
--- a/lisp/gnus/gnus-html.el
+++ b/lisp/gnus/gnus-html.el
@@ -350,9 +350,13 @@ Use ALT-TEXT for the image string."
350 "Browse the image under point." 350 "Browse the image under point."
351 (interactive) 351 (interactive)
352 (let ((url (get-text-property (point) 'gnus-string))) 352 (let ((url (get-text-property (point) 'gnus-string)))
353 (if (not url) 353 (cond
354 (message "No URL at point") 354 ((not url)
355 (browse-url url)))) 355 (message "No link under point"))
356 ((string-match "^mailto:" url)
357 (gnus-url-mailto url))
358 (t
359 (browse-url url)))))
356 360
357(defun gnus-html-schedule-image-fetching (buffer image) 361(defun gnus-html-schedule-image-fetching (buffer image)
358 "Retrieve IMAGE, and place it into BUFFER on arrival." 362 "Retrieve IMAGE, and place it into BUFFER on arrival."
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 0f49ed84fac..2eedc07d10f 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -4506,7 +4506,7 @@ the id of the parent article (if any)."
4506 (while (not (eobp)) 4506 (while (not (eobp))
4507 (ignore-errors 4507 (ignore-errors
4508 (setq article (read (current-buffer)) 4508 (setq article (read (current-buffer))
4509 header (gnus-nov-parse-line article dependencies))) 4509 header (gnus-nov-parse-line article dependencies t)))
4510 (when header 4510 (when header
4511 (with-current-buffer gnus-summary-buffer 4511 (with-current-buffer gnus-summary-buffer
4512 (push header gnus-newsgroup-headers) 4512 (push header gnus-newsgroup-headers)
@@ -8445,7 +8445,11 @@ When called interactively, ID is the Message-ID of the current
8445article." 8445article."
8446 (interactive (list (mail-header-id (gnus-summary-article-header)))) 8446 (interactive (list (mail-header-id (gnus-summary-article-header))))
8447 (let ((articles (gnus-articles-in-thread 8447 (let ((articles (gnus-articles-in-thread
8448 (gnus-id-to-thread (gnus-root-id id))))) 8448 (gnus-id-to-thread (gnus-root-id id))))
8449 ;;we REALLY want the whole thread---this prevents cut-threads
8450 ;;from removing the thread we want to include.
8451 (gnus-fetch-old-headers nil)
8452 (gnus-build-sparse-threads nil))
8449 (prog1 8453 (prog1
8450 (gnus-summary-limit (nconc articles gnus-newsgroup-limit)) 8454 (gnus-summary-limit (nconc articles gnus-newsgroup-limit))
8451 (gnus-summary-limit-include-matching-articles 8455 (gnus-summary-limit-include-matching-articles
@@ -8832,7 +8836,13 @@ fetch what's specified by the `gnus-refer-thread-limit'
8832variable." 8836variable."
8833 (interactive "P") 8837 (interactive "P")
8834 (let ((id (mail-header-id (gnus-summary-article-header))) 8838 (let ((id (mail-header-id (gnus-summary-article-header)))
8839 (subject (gnus-simplify-subject
8840 (mail-header-subject (gnus-summary-article-header))))
8841 (refs (split-string (or (mail-header-references
8842 (gnus-summary-article-header)) "")))
8835 (gnus-summary-ignore-duplicates t) 8843 (gnus-summary-ignore-duplicates t)
8844 (gnus-inhibit-demon t)
8845 (gnus-read-all-available-headers t)
8836 (limit (if limit (prefix-numeric-value limit) 8846 (limit (if limit (prefix-numeric-value limit)
8837 gnus-refer-thread-limit))) 8847 gnus-refer-thread-limit)))
8838 (if (gnus-check-backend-function 'request-thread gnus-newsgroup-name) 8848 (if (gnus-check-backend-function 'request-thread gnus-newsgroup-name)
@@ -8859,6 +8869,11 @@ variable."
8859 (gnus-message 5 "Fetching headers for %s...done" 8869 (gnus-message 5 "Fetching headers for %s...done"
8860 gnus-newsgroup-name)))) 8870 gnus-newsgroup-name))))
8861 (when (eq gnus-headers-retrieved-by 'nov) 8871 (when (eq gnus-headers-retrieved-by 'nov)
8872 ;; might as well restrict the headers to the relevant ones. this
8873 ;; should save time when building threads.
8874 (with-current-buffer nntp-server-buffer
8875 (goto-char (point-min))
8876 (keep-lines (regexp-opt (append refs (list id subject)))))
8862 (gnus-build-all-threads)) 8877 (gnus-build-all-threads))
8863 (gnus-summary-limit-include-thread id))) 8878 (gnus-summary-limit-include-thread id)))
8864 8879
@@ -9423,7 +9438,8 @@ C-u g', show the raw article."
9423 ((not arg) 9438 ((not arg)
9424 ;; Select the article the normal way. 9439 ;; Select the article the normal way.
9425 (gnus-summary-select-article nil 'force)) 9440 (gnus-summary-select-article nil 'force))
9426 ((equal arg '(16)) 9441 ((or (equal arg '(16))
9442 (eq arg t))
9427 ;; C-u C-u g 9443 ;; C-u C-u g
9428 ;; We have to require this here to make sure that the following 9444 ;; We have to require this here to make sure that the following
9429 ;; dynamic binding isn't shadowed by autoloading. 9445 ;; dynamic binding isn't shadowed by autoloading.
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 48daea844bf..cc793dfcf9a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4498,7 +4498,9 @@ This function could be useful in `message-setup-hook'."
4498 (string= "base64" 4498 (string= "base64"
4499 (message-fetch-field 4499 (message-fetch-field
4500 "content-transfer-encoding"))))))) 4500 "content-transfer-encoding")))))))
4501 (message-insert-courtesy-copy)) 4501 (message-insert-courtesy-copy
4502 (with-current-buffer mailbuf
4503 message-courtesy-message)))
4502 ;; Let's make sure we encoded all the body. 4504 ;; Let's make sure we encoded all the body.
4503 (assert (save-excursion 4505 (assert (save-excursion
4504 (goto-char (point-min)) 4506 (goto-char (point-min))
@@ -5939,7 +5941,7 @@ Headers already prepared in the buffer are not modified."
5939 ;; Check for IDNA 5941 ;; Check for IDNA
5940 (message-idna-to-ascii-rhs)))) 5942 (message-idna-to-ascii-rhs))))
5941 5943
5942(defun message-insert-courtesy-copy () 5944(defun message-insert-courtesy-copy (message)
5943 "Insert a courtesy message in mail copies of combined messages." 5945 "Insert a courtesy message in mail copies of combined messages."
5944 (let (newsgroups) 5946 (let (newsgroups)
5945 (save-excursion 5947 (save-excursion
@@ -5949,12 +5951,12 @@ Headers already prepared in the buffer are not modified."
5949 (goto-char (point-max)) 5951 (goto-char (point-max))
5950 (insert "Posted-To: " newsgroups "\n"))) 5952 (insert "Posted-To: " newsgroups "\n")))
5951 (forward-line 1) 5953 (forward-line 1)
5952 (when message-courtesy-message 5954 (when message
5953 (cond 5955 (cond
5954 ((string-match "%s" message-courtesy-message) 5956 ((string-match "%s" message)
5955 (insert (format message-courtesy-message newsgroups))) 5957 (insert (format message newsgroups)))
5956 (t 5958 (t
5957 (insert message-courtesy-message))))))) 5959 (insert message)))))))
5958 5960
5959;;; 5961;;;
5960;;; Setting up a message buffer 5962;;; Setting up a message buffer
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index f3c04cee4f8..bcd6a80f1e8 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1251,11 +1251,13 @@ PROMPT overrides the default one used to ask user for a file name."
1251 (setq filename (gnus-map-function mm-file-name-rewrite-functions 1251 (setq filename (gnus-map-function mm-file-name-rewrite-functions
1252 (file-name-nondirectory filename)))) 1252 (file-name-nondirectory filename))))
1253 (setq file 1253 (setq file
1254 (read-file-name (or prompt 1254 (read-file-name
1255 (format "Save MIME part to (default %s): " 1255 (or prompt
1256 (or filename ""))) 1256 (format "Save MIME part to (default %s): "
1257 (or mm-default-directory default-directory) 1257 (or filename "")))
1258 (or filename ""))) 1258 (or mm-default-directory default-directory)
1259 (expand-file-name (or filename "")
1260 (or mm-default-directory default-directory))))
1259 (if (file-directory-p file) 1261 (if (file-directory-p file)
1260 (setq file (expand-file-name filename file)) 1262 (setq file (expand-file-name filename file))
1261 (setq file (expand-file-name 1263 (setq file (expand-file-name
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index ef7831caa29..65d5af964e5 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -731,8 +731,6 @@ textual parts.")
731 ;; to examine a mailbox that doesn't exist. This seems to be 731 ;; to examine a mailbox that doesn't exist. This seems to be
732 ;; the only way that allows us to reliably go back to unselected 732 ;; the only way that allows us to reliably go back to unselected
733 ;; state on Courier. 733 ;; state on Courier.
734 (nnimap-command "EXAMINE DOES.NOT.EXIST")
735 (setf (nnimap-group nnimap-object) nil)
736 (car (nnimap-command "RENAME %S %S" 734 (car (nnimap-command "RENAME %S %S"
737 (utf7-encode group t) (utf7-encode new-name t)))))) 735 (utf7-encode group t) (utf7-encode new-name t))))))
738 736
@@ -863,8 +861,9 @@ textual parts.")
863(defun nnimap-find-article-by-message-id (group message-id) 861(defun nnimap-find-article-by-message-id (group message-id)
864 (with-current-buffer (nnimap-buffer) 862 (with-current-buffer (nnimap-buffer)
865 (erase-buffer) 863 (erase-buffer)
866 (setf (nnimap-group nnimap-object) nil) 864 (unless (equal group (nnimap-group nnimap-object))
867 (nnimap-send-command "EXAMINE %S" (utf7-encode group t)) 865 (setf (nnimap-group nnimap-object) nil)
866 (nnimap-send-command "EXAMINE %S" (utf7-encode group t)))
868 (let ((sequence 867 (let ((sequence
869 (nnimap-send-command "UID SEARCH HEADER Message-Id %S" message-id)) 868 (nnimap-send-command "UID SEARCH HEADER Message-Id %S" message-id))
870 article result) 869 article result)
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 0788ccbe7ca..326de6e3ac8 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -510,7 +510,6 @@ and show thread that contains this article."
510 (cdr (assoc "SEARCH" (cdr result)))))))))) 510 (cdr (assoc "SEARCH" (cdr result))))))))))
511 (gnus-summary-read-group-1 group t t gnus-summary-buffer 511 (gnus-summary-read-group-1 group t t gnus-summary-buffer
512 nil (list backend-number)) 512 nil (list backend-number))
513 (gnus-summary-limit (list backend-number))
514 (gnus-summary-refer-thread)))) 513 (gnus-summary-refer-thread))))
515 514
516 515
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index 5614e72f518..c828d190b96 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -340,9 +340,13 @@ redirects somewhere else."
340 "Browse the URL under point." 340 "Browse the URL under point."
341 (interactive) 341 (interactive)
342 (let ((url (get-text-property (point) 'shr-url))) 342 (let ((url (get-text-property (point) 'shr-url)))
343 (if (not url) 343 (cond
344 (message "No link under point") 344 ((not url)
345 (browse-url url)))) 345 (message "No link under point"))
346 ((string-match "^mailto:" url)
347 (gnus-url-mailto url))
348 (t
349 (browse-url url)))))
346 350
347(defun shr-save-contents (directory) 351(defun shr-save-contents (directory)
348 "Save the contents from URL in a file." 352 "Save the contents from URL in a file."