From: Miles Bader Date: Wed, 28 Sep 2005 05:26:02 +0000 (+0000) Subject: Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-564 X-Git-Tag: emacs-pretest-22.0.90~6925 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=53cfefc8fb8b79ec7a2e9574a899c1aca0b236e1;p=emacs.git 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 --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 44675cdacd0..333e831dcca 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -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 --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 4957d3ae98b..249325a06f0 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -2333,20 +2333,22 @@ If PROMPT (the prefix), prompt for a coding system to use." (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 @@ If displaying \"text/html\" is discouraged \(see (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 --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 55f07183753..0023b58892e 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2030,6 +2030,14 @@ With prefix-argument just set Follow-Up, don't cross-post." ;;; 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 @@ subscribed address (and not the additional To and Cc header contents)." (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 @@ See `message-idna-encode'." (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 --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 435940faec2..76a66268586 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1058,9 +1058,15 @@ external if displayed external." (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 --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index fdb6b7f4585..dd1519ddfeb 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el @@ -77,11 +77,15 @@ decoder, such as hexbin." "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 @@ This can be either \"inline\" or \"attachment\".") 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 @@ Return that buffer." (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 --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index dec03bf0b9c..033548e3bed 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -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 --git a/man/ChangeLog b/man/ChangeLog index fa28c055cf3..dc98b9a58ef 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -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 --git a/man/gnus.texi b/man/gnus.texi index c6b11716ba0..2a27a8e49c2 100644 --- a/man/gnus.texi +++ b/man/gnus.texi @@ -12199,6 +12199,9 @@ Where the news is to be fetched from---the address. @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