From 0d918c4cc7b3c16feb36b71adef85b3017b05744 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 27 Aug 2003 00:32:05 +0000 Subject: [PATCH] (detect_coding_iso2022): While checking a byte sequence for CODING_CATEGORY_MASK_ISO_8_2, if we read one extra byte, check it in the normal loop. --- src/coding.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/coding.c b/src/coding.c index 8d0ecb8b148..b5399beced6 100644 --- a/src/coding.c +++ b/src/coding.c @@ -1359,6 +1359,7 @@ detect_coding_iso2022 (src, src_end, multibytep) while (mask && src < src_end) { ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep); + retry: switch (c) { case ISO_CODE_ESC: @@ -1556,6 +1557,8 @@ detect_coding_iso2022 (src, src_end, multibytep) && mask & CODING_CATEGORY_MASK_ISO_8_2) { int i = 1; + + c = -1; while (src < src_end) { ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep); @@ -1568,6 +1571,9 @@ detect_coding_iso2022 (src, src_end, multibytep) mask &= ~CODING_CATEGORY_MASK_ISO_8_2; else mask_found |= CODING_CATEGORY_MASK_ISO_8_2; + if (c >= 0) + /* This means that we have read one extra byte. */ + goto retry; } } break; -- 2.39.5