emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/international/mule.el


From: Dave Love
Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule.el
Date: Wed, 17 Jul 2002 15:06:52 -0400

Index: emacs/lisp/international/mule.el
diff -c emacs/lisp/international/mule.el:1.150 
emacs/lisp/international/mule.el:1.151
*** emacs/lisp/international/mule.el:1.150      Wed Jul 17 04:44:58 2002
--- emacs/lisp/international/mule.el    Wed Jul 17 15:06:52 2002
***************
*** 1916,1921 ****
--- 1916,1948 ----
         (progn ,@body)
         (set-category-table current-category-table))))
  
+ (defun define-translation-hash-table (symbol table)
+   "Define SYMBOL as the name of the hash translation TABLE for use in CCL.
+ 
+ Analogous to `define-translation-table', but updates
+ `translation-hash-table-vector' and the table is for use in the CCL
+ `lookup-integer' and `lookup-character' functions."
+   (unless (and (symbolp symbol)
+              (hash-table-p table))
+     (error "Bad args to define-translation-hash-table"))
+   (let ((len (length translation-hash-table-vector))
+       (id 0)
+       done)
+     (put symbol 'translation-hash-table table)
+     (while (not done)
+       (if (>= id len)
+         (setq translation-hash-table-vector
+               (vconcat translation-hash-table-vector [nil])))
+       (let ((slot (aref translation-hash-table-vector id)))
+       (if (or (not slot)
+               (eq (car slot) symbol))
+           (progn
+             (aset translation-hash-table-vector id (cons symbol table))
+             (setq done t))
+         (setq id (1+ id)))))
+     (put symbol 'translation-hash-table-id id)
+     id))
+ 
  ;;; Initialize some variables.
  
  (put 'use-default-ascent 'char-table-extra-slots 0)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]