diff options
| author | Eli Zaretskii | 2016-02-17 17:48:30 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2016-02-17 17:48:30 +0200 |
| commit | 289d5c6e976d4ea557b0f71008468d42ee0258ad (patch) | |
| tree | c784e2c53d91d29cf03f918f8569295b802eaa2f /src/coding.c | |
| parent | 2abcb06cab03cf9040348146fcc0e3e93ae24a58 (diff) | |
| download | emacs-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.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) | |||
| 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') |