diff options
| author | Gnus developers | 2010-11-04 22:18:09 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2010-11-04 22:18:09 +0000 |
| commit | 181cb5fb657b4f226eb5f9f4d13d8ea9ede81268 (patch) | |
| tree | b295f56479fd578643457e21d196622cbbb0000f | |
| parent | 0a61b059c61e9867478339572caa3329f616996d (diff) | |
| download | emacs-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/ChangeLog | 10 | ||||
| -rw-r--r-- | doc/misc/gnus.texi | 9 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 29 | ||||
| -rw-r--r-- | lisp/gnus/gnus-html.el | 10 | ||||
| -rw-r--r-- | lisp/gnus/gnus-sum.el | 22 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 14 | ||||
| -rw-r--r-- | lisp/gnus/mm-decode.el | 12 | ||||
| -rw-r--r-- | lisp/gnus/nnimap.el | 7 | ||||
| -rw-r--r-- | lisp/gnus/nnir.el | 1 | ||||
| -rw-r--r-- | lisp/gnus/shr.el | 10 |
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 @@ | |||
| 1 | 2010-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 | |||
| 6 | 2010-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 | |||
| 1 | 2010-11-04 Michael Albinus <michael.albinus@gmx.de> | 11 | 2010-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. | |||
| 14883 | Some @acronym{IMAP} servers allow anonymous logins. In that case, | 14881 | Some @acronym{IMAP} servers allow anonymous logins. In that case, |
| 14884 | this should be set to @code{anonymous}. | 14882 | this should be set to @code{anonymous}. |
| 14885 | 14883 | ||
| 14884 | @item nnimap-expunge | ||
| 14885 | If non-@code{nil}, expunge articles after deleting them. This is always done | ||
| 14886 | if the server supports UID EXPUNGE, but it's not done by default on | ||
| 14887 | servers that doesn't support that command. | ||
| 14888 | |||
| 14886 | @item nnimap-streaming | 14889 | @item nnimap-streaming |
| 14887 | Virtually all @code{IMAP} server support fast streaming of data. If | 14890 | Virtually all @code{IMAP} server support fast streaming of data. If |
| 14888 | you have problems connecting to the server, try setting this to @code{nil}. | 14891 | you 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 @@ | |||
| 1 | 2010-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 | |||
| 13 | 2010-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 | |||
| 1 | 2010-11-04 Katsumi Yamaoka <yamaoka@jpl.org> | 30 | 2010-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 | |||
| 8445 | article." | 8445 | article." |
| 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' | |||
| 8832 | variable." | 8836 | variable." |
| 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." |