GNU bug report logs - #14287
24.3.50; Some *-dos coding systems remove characters before LF for some files.

Previous Next

Package: emacs;

Reported by: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>

Date: Sat, 27 Apr 2013 12:04:01 UTC

Severity: normal

Found in version 24.3.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 14287 in the body.
You can then email your comments to 14287 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#14287; Package emacs. (Sat, 27 Apr 2013 12:04:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 27 Apr 2013 12:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50;
	Some *-dos coding systems remove characters before LF for some files.
Date: Sat, 27 Apr 2013 21:03:03 +0900
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
") (raw-text-unix . "This is a list of ways to say hello in various languages.
") (raw-text-dos . "This is a list of ways to say hello in various languages
") (sjis-unix . "This is a list of ways to say hello in various languages.
") (sjis-dos . "This is a list of ways to say hello in various languages
") (iso-2022-7bit-unix . "This is a list of ways to say hello in various languages.
") (iso-2022-7bit-dos . "This is a list of ways to say hello in various languages.
"))

Result of Emacs 23.4 is below.

((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.
") (raw-text-unix . "This is a list of ways to say hello in various languages.
") (raw-text-dos . "This is a list of ways to say hello in various languages.
") (sjis-unix . "This is a list of ways to say hello in various languages.
") (sjis-dos . "This is a list of ways to say hello in various languages.
") (iso-2022-7bit-unix . "This is a list of ways to say hello in various languages.
") (iso-2022-7bit-dos . "This is a list of ways to say hello in various languages.
"))


We can confirm manually with universal-coding-system-argument and
find-file command.  The problem seems to depend the content of the
file and the kind of coding system.  For example, it does not occur
with NEWS file.  Of course, it is bad manner to load the content of
the file with incorrect coding system.  But I think this current
behavior is very confusing.

-- 
Kazuhiro Ito




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14287; Package emacs. (Sat, 27 Apr 2013 12:57:02 GMT) Full text and rfc822 format available.

Message #8 received at 14287 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
Cc: 14287 <at> debbugs.gnu.org
Subject: Re: 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 <at> 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;





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14287; Package emacs. (Sat, 27 Apr 2013 22:21:01 GMT) Full text and rfc822 format available.

Message #11 received at 14287 <at> debbugs.gnu.org (full text, mbox):

From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 14287 <at> debbugs.gnu.org
Subject: Re: bug#14287: 24.3.50;
	Some *-dos coding systems remove characters before LF for some files.
Date: Sun, 28 Apr 2013 07:19:56 +0900
> > 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?

I confirmed your patch fixed the problem.  Thank you.

-- 
Kazuhiro Ito




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sun, 28 Apr 2013 18:24:02 GMT) Full text and rfc822 format available.

Notification sent to Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>:
bug acknowledged by developer. (Sun, 28 Apr 2013 18:24:02 GMT) Full text and rfc822 format available.

Message #16 received at 14287-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
Cc: 14287-done <at> debbugs.gnu.org
Subject: Re: bug#14287: 24.3.50;
	Some *-dos coding systems remove characters before LF for some files.
Date: Sun, 28 Apr 2013 21:22:16 +0300
> Date: Sun, 28 Apr 2013 07:19:56 +0900
> From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> Cc: 14287 <at> debbugs.gnu.org
> 
> > > 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?
> 
> I confirmed your patch fixed the problem.  Thank you.

Thanks, installed.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 27 May 2013 11:24:02 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 359 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.