aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
authorEli Zaretskii2016-02-17 17:48:30 +0200
committerEli Zaretskii2016-02-17 17:48:30 +0200
commit289d5c6e976d4ea557b0f71008468d42ee0258ad (patch)
treec784e2c53d91d29cf03f918f8569295b802eaa2f /src/coding.c
parent2abcb06cab03cf9040348146fcc0e3e93ae24a58 (diff)
downloademacs-289d5c6e976d4ea557b0f71008468d42ee0258ad.tar.gz
emacs-289d5c6e976d4ea557b0f71008468d42ee0258ad.zip
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)
6828 } 6828 }
6829 else 6829 else
6830 { 6830 {
6831 ptrdiff_t pos_byte = coding->dst_pos_byte;
6832 ptrdiff_t pos = coding->dst_pos; 6831 ptrdiff_t pos = coding->dst_pos;
6833 ptrdiff_t pos_end = pos + coding->produced_char - 1; 6832 ptrdiff_t pos_byte = coding->dst_pos_byte;
6833 ptrdiff_t pos_end = pos_byte + coding->produced - 1;
6834 6834
6835 while (pos < pos_end) 6835 while (pos_byte < pos_end)
6836 { 6836 {
6837 p = BYTE_POS_ADDR (pos_byte); 6837 p = BYTE_POS_ADDR (pos_byte);
6838 if (*p == '\r' && p[1] == '\n') 6838 if (*p == '\r' && p[1] == '\n')