X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-art.el;h=e2ebd6be7bab2995378932bd605ff5a03db43b19;hb=4cacb5f23eb830e6950dba987063f413977708d7;hp=e4d43844a222b1b2d589abd4e50b36408b8f3f7f;hpb=3e29530cd9680c206e320bf76594f22bebfce235;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index e4d4384..e2ebd6b 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2500,20 +2500,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))))))))) @@ -3455,7 +3457,7 @@ This format is defined by the `gnus-article-time-format' variable." ((null split-name) (read-file-name (concat prompt " (default " - (file-name-nondirectory default-name) ") ") + (file-name-nondirectory default-name) "): ") (file-name-directory default-name) default-name)) ;; A single group name is returned. @@ -3465,7 +3467,7 @@ This format is defined by the `gnus-article-time-format' variable." (symbol-value variable))) (read-file-name (concat prompt " (default " - (file-name-nondirectory default-name) ") ") + (file-name-nondirectory default-name) "): ") (file-name-directory default-name) default-name)) ;; A single split name was found @@ -3478,7 +3480,7 @@ This format is defined by the `gnus-article-time-format' variable." ((file-exists-p name) name) (t gnus-article-save-directory)))) (read-file-name - (concat prompt " (default " name ") ") + (concat prompt " (default " name "): ") dir name))) ;; A list of splits was found. (t @@ -3489,7 +3491,7 @@ This format is defined by the `gnus-article-time-format' variable." (setq result (expand-file-name (read-file-name - (concat prompt " (`M-p' for defaults) ") + (concat prompt " (`M-p' for defaults): ") gnus-article-save-directory (car split-name)) gnus-article-save-directory))) @@ -3523,7 +3525,7 @@ This format is defined by the `gnus-article-time-format' variable." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (setq filename (gnus-read-save-file-name - "Save %s in rmail file:" filename + "Save %s in rmail file" filename gnus-rmail-save-name gnus-newsgroup-name gnus-current-headers 'gnus-newsgroup-last-rmail)) (gnus-eval-in-buffer-window gnus-save-article-buffer @@ -3538,7 +3540,7 @@ Directory to save to is default to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (setq filename (gnus-read-save-file-name - "Save %s in Unix mail file:" filename + "Save %s in Unix mail file" filename gnus-mail-save-name gnus-newsgroup-name gnus-current-headers 'gnus-newsgroup-last-mail)) (gnus-eval-in-buffer-window gnus-save-article-buffer @@ -3557,7 +3559,7 @@ Directory to save to is default to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. Directory to save to is default to `gnus-article-save-directory'." (setq filename (gnus-read-save-file-name - "Save %s in file:" filename + "Save %s in file" filename gnus-file-save-name gnus-newsgroup-name gnus-current-headers 'gnus-newsgroup-last-file)) (gnus-eval-in-buffer-window gnus-save-article-buffer @@ -3581,7 +3583,7 @@ The directory to save in defaults to `gnus-article-save-directory'." Optional argument FILENAME specifies file name. The directory to save in defaults to `gnus-article-save-directory'." (setq filename (gnus-read-save-file-name - "Save %s body in file:" filename + "Save %s body in file" filename gnus-file-save-name gnus-newsgroup-name gnus-current-headers 'gnus-newsgroup-last-file)) (gnus-eval-in-buffer-window gnus-save-article-buffer @@ -5356,14 +5358,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