* ediff-files uses wrong coding system for temporary file
@ 2007-08-15 13:10 Joe Wells
2007-09-25 23:27 ` Joe Wells
0 siblings, 1 reply; 3+ messages in thread
From: Joe Wells @ 2007-08-15 13:10 UTC (permalink / raw)
To: bug-gnu-emacs
To reproduce:
1. Pick a UTF-8-encoded file with lots of non-ASCII characters. (For
example, you can pick “latin-ltx.el” from the Emacs distribution.)
Assume for the sake of discussion that this file is named “X”.
This file should be uncompressed. (If it is compressed, adjust the
following instructions to make an _uncompressed_ copy of it.)
2. Copy this file to a fresh name:
cp X /tmp/Y
3. Compress the copy:
gzip /tmp/Y
4. Start a fresh Emacs:
emacs -Q
5. Use ediff-files on the original file and its compressed copy:
M-x ediff-files RET X RET /tmp/Y RET
6. Observe many differences reported, despite the fact that the files
should be considered identical.
The cause of the problem is that Ediff uses ediff-make-temp-file to
make a temporary uncompressed version of the compressed file to use as
input to “diff”. It uses the value of ediff-coding-system-for-write
for the coding system when writing this temporary file. The value of
ediff-coding-system-for-write at this point in time differs from the
coding system of the original file. It should probably instead use
the coding system of the compressed file.
I hope this report is helpful.
Joe
======================================================================
In GNU Emacs 22.1.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
of 2007-06-27 on artemis
Windowing system distributor `The X.Org Foundation', version 11.0.70000000
configured using `configure '--prefix=/home/jbw/local2' '--enable-debug' '--disable-nls' '--with-x-toolkit=gtk' 'CFLAGS=-O0 -g3 -ggdb''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: en_US.UTF-8
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: jbw
value of $LANG: nil
locale-coding-system: utf-8
default-enable-multibyte-characters: t
Minor modes in effect:
shell-dirtrack-mode: t
outline-minor-mode: t
desktop-save-mode: t
url-handler-mode: t
partial-completion-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
temp-buffer-resize-mode: t
size-indication-mode: t
line-number-mode: t
transient-mark-mode: t
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ediff-files uses wrong coding system for temporary file
2007-08-15 13:10 ediff-files uses wrong coding system for temporary file Joe Wells
@ 2007-09-25 23:27 ` Joe Wells
2007-09-26 23:58 ` Glenn Morris
0 siblings, 1 reply; 3+ messages in thread
From: Joe Wells @ 2007-09-25 23:27 UTC (permalink / raw)
To: bug-gnu-emacs
Has anyone else been able to reproduce this bug?
Joe
Joe Wells <jbw@macs.hw.ac.uk> writes:
> To reproduce:
>
> 1. Pick a UTF-8-encoded file with lots of non-ASCII characters. (For
> example, you can pick “latin-ltx.el” from the Emacs distribution.)
> Assume for the sake of discussion that this file is named “X”.
>
> This file should be uncompressed. (If it is compressed, adjust the
> following instructions to make an _uncompressed_ copy of it.)
>
> 2. Copy this file to a fresh name:
>
> cp X /tmp/Y
>
> 3. Compress the copy:
>
> gzip /tmp/Y
>
> 4. Start a fresh Emacs:
>
> emacs -Q
>
> 5. Use ediff-files on the original file and its compressed copy:
>
> M-x ediff-files RET X RET /tmp/Y RET
>
> 6. Observe many differences reported, despite the fact that the files
> should be considered identical.
>
> The cause of the problem is that Ediff uses ediff-make-temp-file to
> make a temporary uncompressed version of the compressed file to use as
> input to “diff”. It uses the value of ediff-coding-system-for-write
> for the coding system when writing this temporary file. The value of
> ediff-coding-system-for-write at this point in time differs from the
> coding system of the original file. It should probably instead use
> the coding system of the compressed file.
>
> I hope this report is helpful.
>
> Joe
>
> ======================================================================
> In GNU Emacs 22.1.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
> of 2007-06-27 on artemis
> Windowing system distributor `The X.Org Foundation', version 11.0.70000000
> configured using `configure '--prefix=/home/jbw/local2' '--enable-debug' '--disable-nls' '--with-x-toolkit=gtk' 'CFLAGS=-O0 -g3 -ggdb''
>
> Important settings:
> value of $LC_ALL: nil
> value of $LC_COLLATE: nil
> value of $LC_CTYPE: en_US.UTF-8
> value of $LC_MESSAGES: nil
> value of $LC_MONETARY: nil
> value of $LC_NUMERIC: nil
> value of $LC_TIME: jbw
> value of $LANG: nil
> locale-coding-system: utf-8
> default-enable-multibyte-characters: t
>
> Minor modes in effect:
> shell-dirtrack-mode: t
> outline-minor-mode: t
> desktop-save-mode: t
> url-handler-mode: t
> partial-completion-mode: t
> tooltip-mode: t
> mouse-wheel-mode: t
> file-name-shadow-mode: t
> global-font-lock-mode: t
> font-lock-mode: t
> blink-cursor-mode: t
> unify-8859-on-encoding-mode: t
> utf-translate-cjk-mode: t
> auto-compression-mode: t
> temp-buffer-resize-mode: t
> size-indication-mode: t
> line-number-mode: t
> transient-mark-mode: t
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ediff-files uses wrong coding system for temporary file
2007-09-25 23:27 ` Joe Wells
@ 2007-09-26 23:58 ` Glenn Morris
0 siblings, 0 replies; 3+ messages in thread
From: Glenn Morris @ 2007-09-26 23:58 UTC (permalink / raw)
To: Joe Wells; +Cc: bug-gnu-emacs
Joe Wells wrote:
> Has anyone else been able to reproduce this bug?
It looks like this has been fixed:
2007-08-19 Michael Kifer <kifer@cs.stonybrook.edu>
[...]
* ediff-util.el (ediff-make-temp-file): Use the coding system of the
buffer for which file is created.
>> The cause of the problem is that Ediff uses ediff-make-temp-file to
>> make a temporary uncompressed version of the compressed file to use as
>> input to “diff”. It uses the value of ediff-coding-system-for-write
>> for the coding system when writing this temporary file. The value of
>> ediff-coding-system-for-write at this point in time differs from the
>> coding system of the original file. It should probably instead use
>> the coding system of the compressed file.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-09-26 23:58 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-15 13:10 ediff-files uses wrong coding system for temporary file Joe Wells
2007-09-25 23:27 ` Joe Wells
2007-09-26 23:58 ` Glenn Morris
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.