Subject: bug#5050: 23.1; efiff: Displaying bytes instead of characters in messages

From: Eli Zaretskii <[email-masked]>
Date: Thu, 20 Aug 2020 22:50:16 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Date: Thu, 20 Aug 2020 21:42:47 +0200
> Cc: Sebastian Rose <[email-masked]>, [email-masked]
> 
> (defun ediff-exec-process (program buffer synch options &rest files)
> 
> [...]
> 
> 	;; If this is a buffer job, we are diffing temporary files
> 	;; produced by Emacs with ediff-coding-system-for-write, so
> 	;; use the same encoding to read the results.
> 	(coding-system-for-read
> 	 (if (string-match "buffer" (symbol-name ediff-job-name))
> 	     ediff-coding-system-for-write
> 	   ediff-coding-system-for-read))
> 	args)
> 
> This is the problem: ediff-coding-system-for-read is raw-text, which
> gives us the binary data in the buffer instead of characters.

How else can you compare files which could have different encodings?

And anyway, Stephen just answered my question, and the diffs are
displayed correctly with non-ASCII characters, not as raw bytes.  So
there's more here than meets the eye.