aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/international/ccl.el37
1 files changed, 18 insertions, 19 deletions
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index 84ea32a4408..3f987fda740 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -881,8 +881,6 @@
881 (ccl-check-register rrr cmd) 881 (ccl-check-register rrr cmd)
882 (ccl-check-register RRR cmd) 882 (ccl-check-register RRR cmd)
883 (cond ((and (symbolp Rrr) (not (get Rrr 'ccl-register-number))) 883 (cond ((and (symbolp Rrr) (not (get Rrr 'ccl-register-number)))
884 (if (not (get Rrr 'translation-table))
885 (error "CCL: Invalid translation table %s in %s" Rrr cmd))
886 (ccl-embed-extended-command 'translate-character-const-tbl 884 (ccl-embed-extended-command 'translate-character-const-tbl
887 rrr RRR 0) 885 rrr RRR 0)
888 (ccl-embed-symbol Rrr 'translation-table-id)) 886 (ccl-embed-symbol Rrr 'translation-table-id))
@@ -898,23 +896,24 @@
898(defun ccl-compile-map-multiple (cmd) 896(defun ccl-compile-map-multiple (cmd)
899 (if (/= (length cmd) 4) 897 (if (/= (length cmd) 4)
900 (error "CCL: Invalid number of arguments: %s" cmd)) 898 (error "CCL: Invalid number of arguments: %s" cmd))
901 (let ((func (lambda (arg mp) 899 (let (func arg)
902 (let ((len 0) result add) 900 (setq func
903 (while arg 901 (lambda (arg mp)
904 (if (consp (car arg)) 902 (let ((len 0) result add)
905 (setq add (funcall func (car arg) t) 903 (while arg
906 result (append result add) 904 (if (consp (car arg))
907 add (+ (-(car add)) 1)) 905 (setq add (funcall func (car arg) t)
908 (setq result 906 result (append result add)
909 (append result 907 add (+ (- (car add)) 1))
910 (list (car arg))) 908 (setq result
911 add 1)) 909 (append result
912 (setq arg (cdr arg) 910 (list (car arg)))
913 len (+ len add))) 911 add 1))
914 (if mp 912 (setq arg (cdr arg)
915 (cons (- len) result) 913 len (+ len add)))
916 result)))) 914 (if mp
917 arg) 915 (cons (- len) result)
916 result))))
918 (setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd)) 917 (setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd))
919 (funcall func (nth 3 cmd) nil))) 918 (funcall func (nth 3 cmd) nil)))
920 (ccl-compile-multiple-map-function 'map-multiple arg)) 919 (ccl-compile-multiple-map-function 'map-multiple arg))