--- Begin Message ---
Subject: |
23.1.50; rmail changes encoding of characters on save |
Date: |
Sat, 3 Oct 2009 16:54:35 +0200 (CEST) |
With rmail I observed random encoding changes in mbox files: some
non-ascii characters are changed depending on which message you look
at while saving.
Providing a test case is a bit tiresome, so I omit one for now.
The reason for the problem is that rmail-expunge-and-save uses the
coding system of the current message when saving the file. This is
certainly wrong: the coding system for writing the mbox file must not
depend on the currently selected message.
Since rmail reads the mbox file with coding-system 'no-conversion, it
should save it with coding-system 'no-conversion.
Perhaps the problem sits in rmail-swap-buffers: Shouldn't
rmail-swap-buffers exchange the value of buffer-file-coding-system in
both ways? Or perhaps it should ensure that the buffer which contains
the full mbox file has always the same buffer-file-coding-system,
namely 'no-conversion.
Anyway, the following ad hoc patch fixes the problem for me.
*** rmail.el.~1.552.~ 2009-09-26 21:21:07.000000000 +0200
--- rmail.el 2009-10-02 16:14:30.000000000 +0200
***************
*** 1458,1464 ****
(rmail-expunge)
;; No need to swap buffers: rmail-write-region-annotate takes care of it.
;; (rmail-swap-buffers-maybe)
! (save-buffer)
(if (rmail-summary-exists)
(rmail-select-summary (set-buffer-modified-p nil))))
--- 1458,1465 ----
(rmail-expunge)
;; No need to swap buffers: rmail-write-region-annotate takes care of it.
;; (rmail-swap-buffers-maybe)
! (let ((coding-system-for-write 'no-conversion))
! (save-buffer))
(if (rmail-summary-exists)
(rmail-select-summary (set-buffer-modified-p nil))))
In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.16.1)
of 2009-10-02 on laptop
Windowing system distributor `The X.Org Foundation', version 11.0.10600000
configured using `configure '--prefix=/home/rost/local/cvs''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: C
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#4623: 23.1.50; rmail changes encoding of characters on save |
Date: |
Fri, 16 Oct 2009 23:12:23 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Markus Rost wrote:
> Anyway, I think that your patch should be installed.
In the absence of any other comments on this, I did so.
--- End Message ---