summaryrefslogtreecommitdiff
path: root/src/ccl.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2003-12-29 07:51:22 +0000
committerKenichi Handa <handa@m17n.org>2003-12-29 07:51:22 +0000
commit99e293b5b26ffdebbdb81b999bb2aa42d868db2e (patch)
tree0f9daaf7646fec488dd42f869d075b1d6f59a9ce /src/ccl.c
parent8e4cd685a55df89052a764ed38fe95827218ca75 (diff)
downloademacs-99e293b5b26ffdebbdb81b999bb2aa42d868db2e.tar.gz
emacs-99e293b5b26ffdebbdb81b999bb2aa42d868db2e.tar.bz2
emacs-99e293b5b26ffdebbdb81b999bb2aa42d868db2e.zip
(Fccl_execute_on_string): Fix the condition of loop.
Diffstat (limited to 'src/ccl.c')
-rw-r--r--src/ccl.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ccl.c b/src/ccl.c
index 55e7422511c..528e7d5a435 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -2023,7 +2023,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */
consumed_chars = consumed_bytes = 0;
produced_chars = 0;
- while (consumed_bytes < str_bytes)
+ while (1)
{
const unsigned char *p = SDATA (str) + consumed_bytes;
const unsigned char *endp = SDATA (str) + str_bytes;
@@ -2047,8 +2047,6 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */
{
ccl_driver (&ccl, src, destination, src_size, CCL_EXECUTE_BUF_SIZE,
Qnil);
- if (ccl.status != CCL_STAT_SUSPEND_BY_DST)
- break;
produced_chars += ccl.produced;
if (NILP (unibyte_p))
{
@@ -2077,6 +2075,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */
}
src += ccl.consumed;
src_size -= ccl.consumed;
+ if (ccl.status != CCL_STAT_SUSPEND_BY_DST)
+ break;
}
if (ccl.status != CCL_STAT_SUSPEND_BY_SRC)