]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fccl_execute_on_string): Fix the condition of loop.
authorKenichi Handa <handa@m17n.org>
Mon, 29 Dec 2003 07:51:22 +0000 (07:51 +0000)
committerKenichi Handa <handa@m17n.org>
Mon, 29 Dec 2003 07:51:22 +0000 (07:51 +0000)
src/ccl.c

index 55e7422511c0d0db0b744dfa0196c68530034a8c..528e7d5a43511fa94f8e7234eeadb9c919ffb403 100644 (file)
--- 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)