(encode_coding_iso2022): Don't skip a code following some invalid code.
This commit is contained in:
parent
490fe8b05c
commit
38cf95df42
1 changed files with 8 additions and 11 deletions
19
src/coding.c
19
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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue