diff options
author | Kenichi Handa <handa@m17n.org> | 2000-08-11 05:44:50 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2000-08-11 05:44:50 +0000 |
commit | 7a837c899237d7644c95f00ad613e84e6b17746f (patch) | |
tree | 74c1eacd383912c2a691ef96c237aa0e3b0a0cff /src | |
parent | 6e264fadfa7fbd0fa6889043b096275030df45c9 (diff) | |
download | emacs-7a837c899237d7644c95f00ad613e84e6b17746f.tar.gz |
(CCL_READ_CHAR): If source is multibyte, pay attention to
the multibyte form of eight-bit-control characters.
(Fccl_execute_on_string): Initialize ccl->multibyte.
Diffstat (limited to 'src')
-rw-r--r-- | src/ccl.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ccl.c b/src/ccl.c index e44dc86643b..c99c0a5414c 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -713,7 +713,12 @@ static tr_stack *mapping_stack_pointer; if (!src) \ CCL_INVALID_CMD; \ else if (src < src_end) \ - r = *src++; \ + { \ + r = *src++; \ + if (r == LEADING_CODE_8_BIT_CONTROL \ + && ccl->multibyte) \ + r = *src++ - 0x20; \ + } \ else if (ccl->last_block) \ { \ ic = ccl->eof_ic; \ @@ -1895,6 +1900,7 @@ is a unibyte string. By default it is a multibyte string.") outbufsize = STRING_BYTES (XSTRING (str)) * ccl.buf_magnification + 256; outbuf = (char *) xmalloc (outbufsize); ccl.last_block = NILP (contin); + ccl.multibyte = STRING_MULTIBYTE (str); produced = ccl_driver (&ccl, XSTRING (str)->data, outbuf, STRING_BYTES (XSTRING (str)), outbufsize, (int *)0); for (i = 0; i < 8; i++) |