diff options
author | Kenichi Handa <handa@m17n.org> | 2000-08-09 09:02:46 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2000-08-09 09:02:46 +0000 |
commit | ab3b1799ad12cbdc289786a6de5283a17986ec4b (patch) | |
tree | 394342942ff59757dcddefa0d610ca46dfa5134c /lisp/international | |
parent | b24c5811a6a81188427fff7df086822a50624e87 (diff) | |
download | emacs-ab3b1799ad12cbdc289786a6de5283a17986ec4b.tar.gz |
(ccl-embed-data): Make ccl-program-vector
longer if necessary.
(ccl-embed-code): Call ccl-embed-data to store CODE in
ccl-program-vector.
Diffstat (limited to 'lisp/international')
-rw-r--r-- | lisp/international/ccl.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index 3f987fda740..e357e367cf7 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -246,6 +246,13 @@ (defun ccl-embed-data (data &optional ic) (if ic (aset ccl-program-vector ic data) + (let ((len (length ccl-program-vector))) + (if (>= ccl-current-ic len) + (let ((new (make-vector (* len 2) nil))) + (while (> len 0) + (setq len (1- len)) + (aset new len (aref ccl-program-vector len))) + (setq ccl-program-vector new)))) (aset ccl-program-vector ccl-current-ic data) (setq ccl-current-ic (1+ ccl-current-ic)))) @@ -302,8 +309,7 @@ (logior (ash (get reg2 'ccl-register-number) 8) (ash data 11)) (ash data 8))))) - (aset ccl-program-vector ccl-current-ic code) - (setq ccl-current-ic (1+ ccl-current-ic)))) + (ccl-embed-data code))) ;; extended ccl command format ;; |- 14-bit -|- 3-bit --|- 3-bit --|- 3-bit --|- 5-bit -| |