summaryrefslogtreecommitdiff
path: root/src/coding.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2016-02-17 17:48:30 +0200
committerEli Zaretskii <eliz@gnu.org>2016-02-17 17:48:30 +0200
commit289d5c6e976d4ea557b0f71008468d42ee0258ad (patch)
treec784e2c53d91d29cf03f918f8569295b802eaa2f /src/coding.c
parent2abcb06cab03cf9040348146fcc0e3e93ae24a58 (diff)
downloademacs-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.c6
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')