From 007c79c8686d584ec19e96274dc9b6d047b2ec25 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 26 Nov 1998 08:12:12 +0000 Subject: [PATCH] (define-translation-table): Fix bug of setting incorrect translation-table-id. If the first element of ARGS is a translation table, just register it. --- lisp/international/mule.el | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 54d1cda86a5..4579399457f 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1181,13 +1181,20 @@ See also the variable `nonascii-translation-table'." (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 @@ identification number of the table respectively." (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)) -- 2.39.2