(let ((unconditional-jump (ccl-compile-1 true-cmds)))
(if (null false-cmds)
;; This is the place to jump to if condition is false.
- (ccl-embed-current-address jump-cond-address)
+ (progn
+ (ccl-embed-current-address jump-cond-address)
+ (setq unconditional-jump nil))
(let (end-true-part-address)
(if (not unconditional-jump)
(progn
(rrr (nth 2 cmd)))
(ccl-check-register rrr cmd)
(ccl-check-register RRR cmd)
- (ccl-embed-extended-command 'read-multibyte-character rrr RRR 0)))
+ (ccl-embed-extended-command 'read-multibyte-character rrr RRR 0))
+ nil)
;; Compile write-multibyte-character
(defun ccl-compile-write-multibyte-character (cmd)
(rrr (nth 2 cmd)))
(ccl-check-register rrr cmd)
(ccl-check-register RRR cmd)
- (ccl-embed-extended-command 'write-multibyte-character rrr RRR 0)))
+ (ccl-embed-extended-command 'write-multibyte-character rrr RRR 0))
+ nil)
;; Compile translate-character
(defun ccl-compile-translate-character (cmd)
(ccl-embed-data Rrr))
(t
(ccl-check-register Rrr cmd)
- (ccl-embed-extended-command 'translate-character rrr RRR Rrr)))))
+ (ccl-embed-extended-command 'translate-character rrr RRR Rrr))))
+ nil)
(defun ccl-compile-iterate-multiple-map (cmd)
- (ccl-compile-multiple-map-function 'iterate-multiple-map cmd))
+ (ccl-compile-multiple-map-function 'iterate-multiple-map cmd)
+ nil)
(defun ccl-compile-map-multiple (cmd)
(if (/= (length cmd) 4)
arg)
(setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd))
(funcall func (nth 3 cmd) nil)))
- (ccl-compile-multiple-map-function 'map-multiple arg)))
+ (ccl-compile-multiple-map-function 'map-multiple arg))
+ nil)
(defun ccl-compile-map-single (cmd)
(if (/= (length cmd) 4)
(ccl-embed-data map)
(error "CCL: Invalid map: %s" map)))
(t
- (error "CCL: Invalid type of arguments: %s" cmd)))))
+ (error "CCL: Invalid type of arguments: %s" cmd))))
+ nil)
(defun ccl-compile-multiple-map-function (command cmd)
(if (< (length cmd) 4)