diff options
| author | Kenichi Handa | 2001-03-06 02:55:30 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2001-03-06 02:55:30 +0000 |
| commit | 38b9ed6a3530f7966b27dc63dd58c705b25b5b01 (patch) | |
| tree | d34227a6f80680ed1358940b4110f609d9c008b6 /src | |
| parent | 827afcacb86227f2452d0ce1a006b346d90f5e38 (diff) | |
| download | emacs-38b9ed6a3530f7966b27dc63dd58c705b25b5b01.tar.gz emacs-38b9ed6a3530f7966b27dc63dd58c705b25b5b01.zip | |
(ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
that the source is unibyte.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ccl.c | 16 |
1 files changed, 16 insertions, 0 deletions
| @@ -1248,6 +1248,16 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) | |||
| 1248 | goto ccl_read_multibyte_character_suspend; | 1248 | goto ccl_read_multibyte_character_suspend; |
| 1249 | } | 1249 | } |
| 1250 | 1250 | ||
| 1251 | if (!ccl->multibyte) | ||
| 1252 | { | ||
| 1253 | int bytes; | ||
| 1254 | if (!UNIBYTE_STR_AS_MULTIBYTE_P (src, src_end - src, bytes)) | ||
| 1255 | { | ||
| 1256 | reg[RRR] = CHARSET_8_BIT_CONTROL; | ||
| 1257 | reg[rrr] = *src++; | ||
| 1258 | break; | ||
| 1259 | } | ||
| 1260 | } | ||
| 1251 | i = *src++; | 1261 | i = *src++; |
| 1252 | if (i == '\n' && ccl->eol_type != CODING_EOL_LF) | 1262 | if (i == '\n' && ccl->eol_type != CODING_EOL_LF) |
| 1253 | { | 1263 | { |
| @@ -1335,6 +1345,12 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) | |||
| 1335 | break; | 1345 | break; |
| 1336 | 1346 | ||
| 1337 | ccl_read_multibyte_character_suspend: | 1347 | ccl_read_multibyte_character_suspend: |
| 1348 | if (src <= src_end && !ccl->multibyte && ccl->last_block) | ||
| 1349 | { | ||
| 1350 | reg[RRR] = CHARSET_8_BIT_CONTROL; | ||
| 1351 | reg[rrr] = i; | ||
| 1352 | break; | ||
| 1353 | } | ||
| 1338 | src--; | 1354 | src--; |
| 1339 | if (ccl->last_block) | 1355 | if (ccl->last_block) |
| 1340 | { | 1356 | { |