# HG changeset patch # User Richard M. Stallman # Date 840659790 0 # Node ID efd2835a7c96bb8f91958b36eccb7854cf297a85 # Parent 56d0b28891dae67d53489103422721b552edc80b (keyboard-translate): Use a char-table. (keyboard-translate-table): Add char-table-extra-slots property. diff -r 56d0b28891da -r efd2835a7c96 lisp/subr.el --- a/lisp/subr.el Wed Aug 21 20:18:00 1996 +0000 +++ b/lisp/subr.el Wed Aug 21 20:36:30 1996 +0000 @@ -213,22 +213,15 @@ (setq inserted t))) (setq tail (cdr tail))))) +(put 'keyboard-translate-table 'char-table-extra-slots 0) + (defun keyboard-translate (from to) "Translate character FROM to TO at a low level. This function creates a `keyboard-translate-table' if necessary and then modifies one entry in it." - (or (arrayp keyboard-translate-table) - (setq keyboard-translate-table "")) - (if (or (> from (length keyboard-translate-table)) - (> to (length keyboard-translate-table))) - (progn - (let* ((i (length keyboard-translate-table)) - (table (concat keyboard-translate-table - (make-string (- 256 i) 0)))) - (while (< i 256) - (aset table i i) - (setq i (1+ i))) - (setq keyboard-translate-table table)))) + (or (char-table-p keyboard-translate-table) + (setq keyboard-translate-table + (make-char-table 'keyboard-translate-table nil))) (aset keyboard-translate-table from to))