bug-gnu-emacs
[Top][All Lists]
Advanced

[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;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]