diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/charset.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/charset.c b/src/charset.c index 1e373ff6304..fc53e751209 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -217,12 +217,13 @@ string_to_non_ascii_char (str, len, actual_len, exclude_tail_garbage) | |||
| 217 | int char_bytes = BYTES_BY_CHAR_HEAD (c); | 217 | int char_bytes = BYTES_BY_CHAR_HEAD (c); |
| 218 | 218 | ||
| 219 | str++; | 219 | str++; |
| 220 | if (c >= LEADING_CODE_PRIVATE_11) | 220 | if (c >= LEADING_CODE_PRIVATE_11 && c <= LEADING_CODE_PRIVATE_22) |
| 221 | charset = *str++; | 221 | charset = *str++; |
| 222 | if (CHARSET_DEFINED_P (charset) && char_bytes <= bytes) | 222 | if (char_bytes <= bytes) |
| 223 | { | 223 | { |
| 224 | c1 = *str++ & 0x7f; | 224 | c1 = *str++ & 0x7f; |
| 225 | if (CHARSET_DIMENSION (charset) == 2) | 225 | if (CHARSET_DEFINED_P (charset) |
| 226 | && CHARSET_DIMENSION (charset) == 2) | ||
| 226 | c2 = *str & 0x7F; | 227 | c2 = *str & 0x7F; |
| 227 | c = MAKE_NON_ASCII_CHAR (charset, c1, c2); | 228 | c = MAKE_NON_ASCII_CHAR (charset, c1, c2); |
| 228 | if (exclude_tail_garbage) | 229 | if (exclude_tail_garbage) |