diff options
author | Eli Zaretskii <eliz@gnu.org> | 2016-02-17 17:48:30 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2016-02-17 17:48:30 +0200 |
commit | 289d5c6e976d4ea557b0f71008468d42ee0258ad (patch) | |
tree | c784e2c53d91d29cf03f918f8569295b802eaa2f /src/coding.c | |
parent | 2abcb06cab03cf9040348146fcc0e3e93ae24a58 (diff) | |
download | emacs-289d5c6e976d4ea557b0f71008468d42ee0258ad.tar.gz |
Fix decoding DOS EOL in a unibyte buffer
* src/coding.c (decode_eol): Loop over bytes, not characters.
(Bug#5251)
Diffstat (limited to 'src/coding.c')
-rw-r--r-- | src/coding.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/coding.c b/src/coding.c index 3bee16c4f0c..e591bedc3e5 100644 --- a/src/coding.c +++ b/src/coding.c @@ -6828,11 +6828,11 @@ decode_eol (struct coding_system *coding) } else { - ptrdiff_t pos_byte = coding->dst_pos_byte; ptrdiff_t pos = coding->dst_pos; - ptrdiff_t pos_end = pos + coding->produced_char - 1; + ptrdiff_t pos_byte = coding->dst_pos_byte; + ptrdiff_t pos_end = pos_byte + coding->produced - 1; - while (pos < pos_end) + while (pos_byte < pos_end) { p = BYTE_POS_ADDR (pos_byte); if (*p == '\r' && p[1] == '\n') |