From 38cf95df42408406f3ed33938eb0ecaeb39507fe Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 4 May 1998 22:33:38 +0000 Subject: (encode_coding_iso2022): Don't skip a code following some invalid code. --- src/coding.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/coding.c b/src/coding.c index 75ef204326d..fff9292a850 100644 --- a/src/coding.c +++ b/src/coding.c @@ -1868,8 +1868,8 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes) { /* invalid sequence */ *dst++ = c1; - *dst++ = c2; - coding->consumed_char += 2; + src--; + coding->consumed_char++; } else ENCODE_ISO_CHARACTER (c1, c2, /* dummy */ c3); @@ -1881,9 +1881,8 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes) { /* invalid sequence */ *dst++ = c1; - *dst++ = c2; - *dst++ = c3; - coding->consumed_char += 3; + src -= 2; + coding->consumed_char++; } else if (c1 < LEADING_CODE_PRIVATE_11) ENCODE_ISO_CHARACTER (c1, c2, c3); @@ -1897,10 +1896,8 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes) { /* invalid sequence */ *dst++ = c1; - *dst++ = c2; - *dst++ = c3; - *dst++ = c4; - coding->consumed_char += 4; + src -= 3; + coding->consumed_char++; } else ENCODE_ISO_CHARACTER (c2, c3, c4); @@ -1912,8 +1909,8 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes) { /* invalid sequence */ *dst++ = c1; - *dst++ = c2; - coding->consumed_char += 2; + src--; + coding->consumed_char++; } else if (c2 == 0xFF) { -- cgit v1.2.1