aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2001-03-06 02:55:30 +0000
committerKenichi Handa2001-03-06 02:55:30 +0000
commit38b9ed6a3530f7966b27dc63dd58c705b25b5b01 (patch)
treed34227a6f80680ed1358940b4110f609d9c008b6 /src
parent827afcacb86227f2452d0ce1a006b346d90f5e38 (diff)
downloademacs-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.c16
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)
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 {