changeset 23770:45f1d511e726

(define-translation-table): Fix bug of setting incorrect translation-table-id. If the first element of ARGS is a translation table, just register it.
author Kenichi Handa <handa@m17n.org>
date Thu, 26 Nov 1998 08:12:12 +0000
parents b922cc2b350a
children 0ed776e14a50
files lisp/international/mule.el
diffstat 1 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/mule.el	Thu Nov 26 08:12:12 1998 +0000
+++ b/lisp/international/mule.el	Thu Nov 26 08:12:12 1998 +0000
@@ -1181,13 +1181,20 @@
 (defun define-translation-table (symbol &rest args)
   "Define SYMBOL as a name of translation table made by ARGS.
 
-See the documentation of the function `make-translation-table' for the
-meaning of ARGS.
+If the first element of ARGS is a char-table of which purpose is
+translation-table, just define SYMBOL as the name of it.
+
+In the other case, ARGS are the same as arguments to the function
+`make-translation-table' (which see).
 
 This function sets properties `translation-table' and
 `translation-table-id' of SYMBOL to the created table itself and
 identification number of the table respectively."
-  (let ((table (apply 'make-translation-table args))
+  (let ((table (if (and (char-table-p (car args))
+			(eq (char-table-subtype (car args))
+			    'translation-table))
+		   (car args)
+		 (apply 'make-translation-table args)))
 	(len (length translation-table-vector))
 	(id 0)
 	(done nil))
@@ -1201,8 +1208,8 @@
 		(eq (car slot) symbol))
 	    (progn
 	      (aset translation-table-vector id (cons symbol table))
-	      (setq done t))))
-      (setq id (1+ id)))
+	      (setq done t))
+	  (setq id (1+ id)))))
     (put symbol 'translation-table-id id)
     id))