GNU bug report logs -
#935
23.0.60; gnus-mime-view-part-as-charset displays non-ASCII characters as octals
Previous Next
Reported by: Sven Joachim <svenjoac <at> gmx.de>
Date: Mon, 8 Sep 2008 21:00:02 UTC
Severity: normal
Done: Sven Joachim <svenjoac <at> gmx.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
>>>>> Sven Joachim wrote:
> I have a problem with the gnus-mime-view-part-as-charset command that
> only shows up in Emacs 23, not sure whether this is a bug in Emacs or in
> Gnus.
> If an article has attachment with a wrongly specified charset, Gnus can
> work around that with the gnus-mime-view-part-as-charset command. For
> instance, <news:20080908175652.GF4996 <at> firemoth> on
> gmane.linux.debian.internationalization.german aka
> debian-l10n-german <at> lists.debian.org is such an article, it has an
> attachment that is incorrectly described as "Content-Type: text/x-diff;
> charset=utf-8" while it's actually encoded as iso-latin-1. Now when I
> press C RET iso-latin-1, Emacs displays the German umlauts as octal
> sequences. In Emacs 22.3, they are displayed correctly (Gnus version is
> the same, current No Gnus CVS).
That's exactly a bug. Even in Emacs 22.3, it is not displayed
correctly if attachment contains CJK characters with wrong charset.
The patch is below. I'll commit this after testing it further.
[Message part 2 (text/x-diff, inline)]
--- gnus-art.el~ 2008-08-11 22:24:20 +0000
+++ gnus-art.el 2008-09-09 00:56:42 +0000
@@ -5138,8 +5138,9 @@
(mm-string-to-multibyte contents)))
(goto-char b)))))
-(defun gnus-mime-strip-charset-parameters (handle)
- "Strip charset parameters from HANDLE."
+(defun gnus-mime-set-charset-parameters (handle)
+ "Set charset to parameters in HANDLE.
+The value of `gnus-newsgroup-charset' is used as a charset."
(if (stringp (car handle))
(mapc #'gnus-mime-strip-charset-parameters (cdr handle))
(let* ((type (mm-handle-type (if (equal (mm-handle-media-type handle)
@@ -5150,8 +5151,10 @@
(mm-handle-cache handle))
handle)))
(charset (assq 'charset (cdr type))))
- (when charset
- (delq charset type)))))
+ (if charset
+ (setcdr charset gnus-newsgroup-charset)
+ (setcdr type (cons (cons 'charset gnus-newsgroup-charset)
+ (cdr type)))))))
(defun gnus-mime-view-part-as-charset (&optional handle arg)
"Insert the MIME part under point into the current buffer using the
@@ -5172,7 +5175,7 @@
(mm-read-coding-system "Charset: "))))
(if (mm-handle-undisplayer handle)
(mm-remove-part handle)))
- (gnus-mime-strip-charset-parameters handle)
+ (gnus-mime-set-charset-parameters handle)
(when (and (consp (setq form (cdr-safe fun)))
(setq form (ignore-errors
(assq 'gnus-mime-display-alternative form)))
This bug report was last modified 16 years and 310 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.