diff options
author | Kenichi Handa <handa@m17n.org> | 2001-03-06 02:55:30 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2001-03-06 02:55:30 +0000 |
commit | 6f580c5de14ca812ed422b33e6fd7f8600167802 (patch) | |
tree | b502157f511836ae24ceb6ce17752e2dcf238eaf | |
parent | 848580b8a46e61bc35d3f3b3c0d93d73e708dbaa (diff) | |
download | emacs-6f580c5de14ca812ed422b33e6fd7f8600167802.tar.gz |
(ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
that the source is unibyte.
-rw-r--r-- | src/ccl.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ccl.c b/src/ccl.c index 285888f744f..ce0a1bd4402 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -1248,6 +1248,16 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) goto ccl_read_multibyte_character_suspend; } + if (!ccl->multibyte) + { + int bytes; + if (!UNIBYTE_STR_AS_MULTIBYTE_P (src, src_end - src, bytes)) + { + reg[RRR] = CHARSET_8_BIT_CONTROL; + reg[rrr] = *src++; + break; + } + } i = *src++; if (i == '\n' && ccl->eol_type != CODING_EOL_LF) { @@ -1335,6 +1345,12 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) break; ccl_read_multibyte_character_suspend: + if (src <= src_end && !ccl->multibyte && ccl->last_block) + { + reg[RRR] = CHARSET_8_BIT_CONTROL; + reg[rrr] = i; + break; + } src--; if (ccl->last_block) { |