]> git.eshelyaron.com Git - emacs.git/commitdiff
(ccl_driver) <CCL_WriteExprRegister>: Set jump_address
authorKenichi Handa <handa@m17n.org>
Wed, 2 Feb 2000 07:06:26 +0000 (07:06 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 2 Feb 2000 07:06:26 +0000 (07:06 +0000)
instead of incrementing ic directly.
<CCL_WriteExprConst> Likewise.
<ccl_set_expr>: Set ic to jump_address.

src/ChangeLog
src/ccl.c

index dbf0522b3926d3cdc40354157d29be1746ed9b24..edb9d3c590e60bc08d76c03b28758c7f347ba923 100644 (file)
@@ -1,5 +1,10 @@
 2000-02-02  Kenichi Handa  <handa@etl.go.jp>
 
+       * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
+       instead of incrementing ic directly.
+       <CCL_WriteExprConst> Likewise.
+       <ccl_set_expr>: Set ic to jump_address.
+
        * fileio.c (e_write): Fix the handling of
        CODING_FINISH_INSUFFICIENT_SRC.
 
index 93cb0873b96390099af841667bdd129ad6ede95f..003bd8de30c68feb34c473be02e0a694ed3a366a 100644 (file)
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -909,7 +909,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
          i = reg[RRR];
          j = XINT (ccl_prog[ic]);
          op = field1 >> 6;
-         ic++;
+         jump_address = ic + 1;
          goto ccl_set_expr;
 
        case CCL_WriteRegister: /* CCCCCCCCCCCCCCCCCCCrrrXXXXX */
@@ -929,6 +929,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
          i = reg[RRR];
          j = reg[Rrr];
          op = field1 >> 6;
+         jump_address = ic;
          goto ccl_set_expr;
 
        case CCL_Call:          /* 1:CCCCCCCCCCCCCCCCCCCCFFFXXXXX */
@@ -1105,6 +1106,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
            {
              i = reg[rrr];
              CCL_WRITE_CHAR (i);
+             ic = jump_address;
            }
          else if (!reg[rrr])
            ic = jump_address;