[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#14287: 24.3.50; Some *-dos coding systems remove characters before L
From: |
Eli Zaretskii |
Subject: |
bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files. |
Date: |
Sat, 27 Apr 2013 15:55:50 +0300 |
> Date: Sat, 27 Apr 2013 21:03:03 +0900
> From: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
>
> When I evaluate the below code on trunk, I get different result from 24.3.
>
> (let ((file (expand-file-name "HELLO" data-directory)))
> (mapcar
> (lambda (coding)
> (with-temp-buffer
> (let ((coding-system-for-read coding))
> (insert-file-contents file))
> (cons coding
> (buffer-substring
> (point-min) (progn (forward-line 1) (point))))))
> '(iso-8859-1-unix
> iso-8859-1-dos
> raw-text-unix
> raw-text-dos
> sjis-unix
> sjis-dos
> iso-2022-7bit-unix
> iso-2022-7bit-dos)))
>
> ->
>
> ((iso-8859-1-unix . "This is a list of ways to say hello in various languages.
> ") (iso-8859-1-dos . "This is a list of ways to say hello in various languages
Does the patch below fix that?
=== modified file 'src/coding.c'
--- src/coding.c 2013-04-24 15:09:49 +0000
+++ src/coding.c 2013-04-27 12:52:02 +0000
@@ -7774,7 +7774,7 @@ decode_coding_gap (struct coding_system
while (src_beg < src)
{
*--dst = *--src;
- if (*src == '\n')
+ if (*src == '\n' && src > src_beg && src[-1] == '\r')
src--;
}
diff = dst - src;