# HG changeset patch # User Miles Bader # Date 1127885162 0 # Node ID 5265a405912679c7b7d1c958a96700049f38fc49 # Parent c4fe5f0b4e8351a44b175667c521698ff53776aa Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-564 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 125-127) - Merge from emacs--cvs-trunk--0 - Update from CVS 2005-09-27 Reiner Steib * lisp/gnus/mm-uu.el (mm-uu-emacs-sources-regexp): Make variable customizable. Change default value. (mm-uu-diff-groups-regexp): Change default value. (mm-uu-type-alist): Added doc string. (mm-uu-configure): Added doc string. Make it interactive. (mm-uu-diff-groups-regexp): Fix missing quotes from previous commit. 2005-09-27 Simon Josefsson * lisp/gnus/message.el (message-idna-to-ascii-rhs-1): Reformat. 2005-09-27 Arne J,Ax(Brgensen * lisp/gnus/message.el (message-remove-duplicates): New function. Implementation borrowed from `gnus-remove-duplicates'. (message-idna-to-ascii-rhs): Also encode idna addresses in Reply-To:, Mail-Reply-To: and Mail-Followup-To:. (message-idna-to-ascii-rhs-1): When `message-use-idna' is 'ask only ask about the same idna domain once per header and also tell in what header to replace the idna domain. * lisp/gnus/gnus-art.el (article-decode-idna-rhs): Also decode idna addresses in Reply-To:, Mail-Reply-To: and Mail-Followup-To:. (article-decode-idna-rhs): Fix regexp so that all idna-address in a header is decoded and not just the last one. 2005-09-27 Katsumi Yamaoka * lisp/gnus/gnus-art.el (gnus-mime-display-single): Don't modify text if it has been decoded. * lisp/gnus/mm-decode.el (mm-insert-part): Don't modify text if it has been decoded. * lisp/gnus/mm-view.el (mm-inline-text): Don't strip text props unless decoding enriched or richtext parts. 2005-09-26 Katsumi Yamaoka * man/gnus.texi (Server Buffer Format): Document the %a format spec. diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/ChangeLog Wed Sep 28 05:26:02 2005 +0000 @@ -1,3 +1,43 @@ +2005-09-27 Reiner Steib + + * mm-uu.el (mm-uu-emacs-sources-regexp): Make variable + customizable. Change default value. + (mm-uu-diff-groups-regexp): Change default value. + (mm-uu-type-alist): Added doc string. + (mm-uu-configure): Added doc string. Make it interactive. + (mm-uu-diff-groups-regexp): Fix missing quotes from previous + commit. + +2005-09-27 Simon Josefsson + + * message.el (message-idna-to-ascii-rhs-1): Reformat. + +2005-09-27 Arne J,Ax(Brgensen + + * message.el (message-remove-duplicates): New function. + Implementation borrowed from `gnus-remove-duplicates'. + (message-idna-to-ascii-rhs): Also encode idna addresses in + Reply-To:, Mail-Reply-To: and Mail-Followup-To:. + (message-idna-to-ascii-rhs-1): When `message-use-idna' is 'ask + only ask about the same idna domain once per header and also tell + in what header to replace the idna domain. + + * gnus-art.el (article-decode-idna-rhs): Also decode idna + addresses in Reply-To:, Mail-Reply-To: and Mail-Followup-To:. + (article-decode-idna-rhs): Fix regexp so that all idna-address in + a header is decoded and not just the last one. + +2005-09-27 Katsumi Yamaoka + + * gnus-art.el (gnus-mime-display-single): Don't modify text if it + has been decoded. + + * mm-decode.el (mm-insert-part): Don't modify text if it has been + decoded. + + * mm-view.el (mm-inline-text): Don't strip text props unless + decoding enriched or richtext parts. + 2005-09-25 Romain Francoise * gnus-agent.el (gnus-agent-expire-group, gnus-agent-expire): diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/gnus-art.el Wed Sep 28 05:26:02 2005 +0000 @@ -2333,20 +2333,22 @@ (autoload 'idna-to-unicode "idna") (defun article-decode-idna-rhs () - "Decode IDNA strings in RHS in From:, To: and Cc: headers in current buffer." + "Decode IDNA strings in RHS in various headers in current buffer. +The following headers are decoded: From:, To:, Cc:, Reply-To:, +Mail-Reply-To: and Mail-Followup-To:." (when gnus-use-idna (save-restriction (let ((inhibit-point-motion-hooks t) (inhibit-read-only t)) (article-narrow-to-head) (goto-char (point-min)) - (while (re-search-forward "@.*\\(xn--[-A-Za-z0-9.]*\\)[ \t\n\r,>]" nil t) + (while (re-search-forward "@[^ \t\n\r,>]*\\(xn--[-A-Za-z0-9.]*\\)[ \t\n\r,>]" nil t) (let (ace unicode) (when (save-match-data (and (setq ace (match-string 1)) (save-excursion (and (re-search-backward "^[^ \t]" nil t) - (looking-at "From\\|To\\|Cc"))) + (looking-at "From\\|To\\|Cc\\|Reply-To\\|Mail-Reply-To\\|Mail-Followup-To"))) (setq unicode (idna-to-unicode ace)))) (unless (string= ace unicode) (replace-match unicode nil nil nil 1))))))))) @@ -4864,14 +4866,17 @@ (forward-line -1) (setq beg (point))) (gnus-article-insert-newline) - (mm-insert-inline handle - (let ((charset - (mail-content-type-get - (mm-handle-type handle) 'charset))) - (if (eq charset 'gnus-decoded) - (mm-get-part handle) - (mm-decode-string (mm-get-part handle) - charset)))) + (mm-insert-inline + handle + (let ((charset (mail-content-type-get (mm-handle-type handle) + 'charset))) + (cond ((not charset) + (mm-string-as-multibyte (mm-get-part handle))) + ((eq charset 'gnus-decoded) + (with-current-buffer (mm-handle-buffer handle) + (buffer-string))) + (t + (mm-decode-string (mm-get-part handle) charset))))) (goto-char (point-max)))) ;; Do highlighting. (save-excursion diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/message.el --- a/lisp/gnus/message.el Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/message.el Wed Sep 28 05:26:02 2005 +0000 @@ -2030,6 +2030,14 @@ ;;; End of functions adopted from `message-utils.el'. +(defun message-remove-duplicates (list) + (let (new) + (while list + (or (member (car list) new) + (setq new (cons (car list) new))) + (setq list (cdr list))) + (nreverse new))) + (defun message-remove-header (header &optional is-regexp first reverse) "Remove HEADER in the narrowed buffer. If IS-REGEXP, HEADER is a regular expression. @@ -4957,13 +4965,17 @@ (let ((field (message-fetch-field header)) rhs ace address) (when field - (dolist (address (mail-header-parse-addresses field)) - (setq address (car address) - rhs (downcase (or (cadr (split-string address "@")) "")) - ace (downcase (idna-to-ascii rhs))) + (dolist (rhs + (message-remove-duplicates + (mapcar (lambda (rhs) (or (cadr (split-string rhs "@")) "")) + (mapcar 'downcase + (mapcar + 'car (mail-header-parse-addresses field)))))) + (setq ace (downcase (idna-to-ascii rhs))) (when (and (not (equal rhs ace)) (or (not (eq message-use-idna 'ask)) - (y-or-n-p (format "Replace %s with %s? " rhs ace)))) + (y-or-n-p (format "Replace %s with %s in %s:? " + rhs ace header)))) (goto-char (point-min)) (while (re-search-forward (concat "^" header ":") nil t) (message-narrow-to-field) @@ -4982,6 +4994,9 @@ (message-narrow-to-head) (message-idna-to-ascii-rhs-1 "From") (message-idna-to-ascii-rhs-1 "To") + (message-idna-to-ascii-rhs-1 "Reply-To") + (message-idna-to-ascii-rhs-1 "Mail-Reply-To") + (message-idna-to-ascii-rhs-1 "Mail-Followup-To") (message-idna-to-ascii-rhs-1 "Cc"))))) (defun message-generate-headers (headers) diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/mm-decode.el --- a/lisp/gnus/mm-decode.el Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/mm-decode.el Wed Sep 28 05:26:02 2005 +0000 @@ -1058,9 +1058,15 @@ (defun mm-insert-part (handle) "Insert the contents of HANDLE in the current buffer." (save-excursion - (insert (if (mm-multibyte-p) - (mm-string-as-multibyte (mm-get-part handle)) - (mm-get-part handle))))) + (insert + (cond ((eq (mail-content-type-get (mm-handle-type handle) 'charset) + 'gnus-decoded) + (with-current-buffer (mm-handle-buffer handle) + (buffer-string))) + ((mm-multibyte-p) + (mm-string-as-multibyte (mm-get-part handle))) + (t + (mm-get-part handle)))))) (defun mm-file-name-delete-whitespace (file-name) "Remove all whitespace characters from FILE-NAME." diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/mm-uu.el --- a/lisp/gnus/mm-uu.el Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/mm-uu.el Wed Sep 28 05:26:02 2005 +0000 @@ -77,11 +77,15 @@ "The default disposition of uu parts. This can be either \"inline\" or \"attachment\".") -(defvar mm-uu-emacs-sources-regexp "gnu\\.emacs\\.sources" - "The regexp of Emacs sources groups.") +(defcustom mm-uu-emacs-sources-regexp "\\.emacs\\.sources" + "The regexp of Emacs sources groups." + :version "22.1" + :type 'regexp + :group 'gnus-article-mime) -(defcustom mm-uu-diff-groups-regexp "gnus\\.commits" - "*Regexp matching diff groups." +(defcustom mm-uu-diff-groups-regexp + "\\(gmane\\|gnu\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|devel\\)" + "Regexp matching diff groups." :version "22.1" :type 'regexp :group 'gnus-article-mime) @@ -153,7 +157,12 @@ nil mm-uu-diff-extract nil - mm-uu-diff-test))) + mm-uu-diff-test)) + "A list of specifications for non-MIME attachments. +Each element consist of the following entries: label, +start-regexp, end-regexp, extract-function, test-function. + +After modifying this list you must run \\[mm-uu-configure].") (defcustom mm-uu-configure-list '((shar . disabled)) "A list of mm-uu configuration. @@ -202,6 +211,8 @@ (member (cons key val) mm-uu-configure-list)) (defun mm-uu-configure (&optional symbol value) + "Configure detection of non-MIME attachments." + (interactive) (if symbol (set-default symbol value)) (setq mm-uu-beginning-regexp nil) (mapcar (lambda (entry) diff -r c4fe5f0b4e83 -r 5265a4059126 lisp/gnus/mm-view.el --- a/lisp/gnus/mm-view.el Wed Sep 28 00:50:55 2005 +0000 +++ b/lisp/gnus/mm-view.el Wed Sep 28 05:26:02 2005 +0000 @@ -367,9 +367,9 @@ (goto-char (point-max)))) (save-restriction (narrow-to-region b (point)) - (set-text-properties (point-min) (point-max) nil) (when (or (equal type "enriched") (equal type "richtext")) + (set-text-properties (point-min) (point-max) nil) (ignore-errors (enriched-decode (point-min) (point-max)))) (mm-handle-set-undisplayer diff -r c4fe5f0b4e83 -r 5265a4059126 man/ChangeLog --- a/man/ChangeLog Wed Sep 28 00:50:55 2005 +0000 +++ b/man/ChangeLog Wed Sep 28 05:26:02 2005 +0000 @@ -1,3 +1,7 @@ +2005-09-26 Katsumi Yamaoka + + * gnus.texi (Server Buffer Format): Document the %a format spec. + 2005-09-25 Richard M. Stallman * search.texi (Regexp Search): Doc search-whitespace-regexp. diff -r c4fe5f0b4e83 -r 5265a4059126 man/gnus.texi --- a/man/gnus.texi Wed Sep 28 00:50:55 2005 +0000 +++ b/man/gnus.texi Wed Sep 28 05:26:02 2005 +0000 @@ -12199,6 +12199,9 @@ @item s The opened/closed/denied status of the server. + +@item a +Whether this server is agentized. @end table @vindex gnus-server-mode-line-format