unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files.
@ 2013-04-27 12:03 Kazuhiro Ito
  2013-04-27 12:55 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Kazuhiro Ito @ 2013-04-27 12:03 UTC (permalink / raw)
  To: 14287

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





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files.
  2013-04-27 12:03 bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files Kazuhiro Ito
@ 2013-04-27 12:55 ` Eli Zaretskii
  2013-04-27 22:19   ` Kazuhiro Ito
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2013-04-27 12:55 UTC (permalink / raw)
  To: Kazuhiro Ito; +Cc: 14287

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






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files.
  2013-04-27 12:55 ` Eli Zaretskii
@ 2013-04-27 22:19   ` Kazuhiro Ito
  2013-04-28 18:22     ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Kazuhiro Ito @ 2013-04-27 22:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14287

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





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files.
  2013-04-27 22:19   ` Kazuhiro Ito
@ 2013-04-28 18:22     ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2013-04-28 18:22 UTC (permalink / raw)
  To: Kazuhiro Ito; +Cc: 14287-done

> Date: Sun, 28 Apr 2013 07:19:56 +0900
> From: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
> Cc: 14287@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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-04-28 18:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-27 12:03 bug#14287: 24.3.50; Some *-dos coding systems remove characters before LF for some files Kazuhiro Ito
2013-04-27 12:55 ` Eli Zaretskii
2013-04-27 22:19   ` Kazuhiro Ito
2013-04-28 18:22     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).