GNU bug report logs - #870
Missing ^J in ChangeLog

Previous Next

Packages: emacs, w32;

Reported by: "Juanma Barranquero" <lekktu <at> gmail.com>

Date: Wed, 3 Sep 2008 11:10:05 UTC

Severity: normal

Done: Jason Rumney <jasonr <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #104 received at 870 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Jason Rumney <jasonr <at> gnu.org>
To: Juanma Barranquero <lekktu <at> gmail.com>, 870 <at> debbugs.gnu.org
Cc: Emacs Devel <emacs-devel <at> gnu.org>
Subject: Re: bug#870: Repeatable instance of bug#870
Date: Mon, 05 Jan 2009 18:59:03 +0800
Juanma Barranquero wrote:
>    emacs -Q --eval "(desktop-save-mode 1)" ChangeLog.870
>   

I can also reproduce the bug with C-x RET r utf-8-dos after visiting the 
file normally.

It appears that there is a bug in all the decode_coding_* functions when 
a CR lies on a CHARBUF_SIZE (0x4000) boundary with a matching LF on the 
other side of the boundary.

They all do something like:

     if (eol_crlf && c1 == '\r')
       ONE_MORE_BYTE (byte_after_cr);

but ONE_MORE_BYTE will abort the decode if it reaches the end of the 
buffer, leaving the CR in limbo between having been read and being added 
to the buffer. Then on decoding the subsequent block, the initial LF 
does not trip the normal CRLF decoding, so it is put into the buffer.





This bug report was last modified 16 years and 128 days ago.

Previous Next


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