aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2000-06-06 02:10:42 +0000
committerKenichi Handa2000-06-06 02:10:42 +0000
commit04f63b87bc86baa288c3008820afa75c47dfc2a9 (patch)
tree22cac6b734de2fc1d368aaf2bdb613a5a807fa9e
parent1f487ef8ac423dd78048210836ee37a844d05218 (diff)
downloademacs-04f63b87bc86baa288c3008820afa75c47dfc2a9.tar.gz
emacs-04f63b87bc86baa288c3008820afa75c47dfc2a9.zip
(non-iso-charset-alist): Specify
translation table symbol instead of translation table itself. (list-block-of-chars): CHARSET may be a translation table symbol.
-rw-r--r--lisp/international/mule-diag.el23
1 files changed, 12 insertions, 11 deletions
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index 39f50e1b487..431efedb9fc 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -241,15 +241,15 @@ but still shows the full information."
241(defvar non-iso-charset-alist 241(defvar non-iso-charset-alist
242 `((viscii 242 `((viscii
243 (ascii vietnamese-viscii-lower vietnamese-viscii-upper) 243 (ascii vietnamese-viscii-lower vietnamese-viscii-upper)
244 ,viet-viscii-nonascii-translation-table 244 viet-viscii-nonascii-translation-table
245 ((0 255))) 245 ((0 255)))
246 (koi8-r 246 (koi8-r
247 (ascii cyrillic-iso8859-5) 247 (ascii cyrillic-iso8859-5)
248 ,cyrillic-koi8-r-nonascii-translation-table 248 cyrillic-koi8-r-nonascii-translation-table
249 ((32 255))) 249 ((32 255)))
250 (alternativnyj 250 (alternativnyj
251 (ascii cyrillic-iso8859-5) 251 (ascii cyrillic-iso8859-5)
252 ,cyrillic-alternativnyj-nonascii-translation-table 252 cyrillic-alternativnyj-nonascii-translation-table
253 ((32 255))) 253 ((32 255)))
254 (big5 254 (big5
255 (ascii chinese-big5-1 chinese-big5-2) 255 (ascii chinese-big5-1 chinese-big5-2)
@@ -274,10 +274,10 @@ NON-ISO-CHARSET is a name (symbol) of the non-ISO charset.
274CHARSET-LIST is a list of Emacs' charsets into which characters of 274CHARSET-LIST is a list of Emacs' charsets into which characters of
275NON-ISO-CHARSET are mapped. 275NON-ISO-CHARSET are mapped.
276 276
277TRANSLATION-METHOD is a char-table to translate a character code of 277TRANSLATION-METHOD is a translatin table (symbol) to translate a
278NON-ISO-CHARSET to the corresponding Emacs character code. It can 278character code of NON-ISO-CHARSET to the corresponding Emacs character
279also be a function to call with one argument, a character code in 279code. It can also be a function to call with one argument, a
280NON-ISO-CHARSET. 280character code in NON-ISO-CHARSET.
281 281
282CODE-RANGE specifies the valid code ranges of NON-ISO-CHARSET. 282CODE-RANGE specifies the valid code ranges of NON-ISO-CHARSET.
283It is a list of RANGEs, where each RANGE is of the form: 283It is a list of RANGEs, where each RANGE is of the form:
@@ -353,8 +353,9 @@ detailed meanings of these arguments."
353;; of CHARSET is two (i.e. 2-byte charset), ROW is the first byte 353;; of CHARSET is two (i.e. 2-byte charset), ROW is the first byte
354;; (block index) of the characters, and MIN and MAX are the second 354;; (block index) of the characters, and MIN and MAX are the second
355;; bytes of the characters. If the dimension is one, ROW should be 0. 355;; bytes of the characters. If the dimension is one, ROW should be 0.
356;; For a non-ISO charset, CHARSET is a char-table or a function to get 356;; For a non-ISO charset, CHARSET is a translation table (symbol) or a
357;; Emacs' character codes that corresponds to the characters to list. 357;; function to get Emacs' character codes that corresponds to the
358;; characters to list.
358 359
359(defun list-block-of-chars (charset row min max) 360(defun list-block-of-chars (charset row min max)
360 (let (i ch) 361 (let (i ch)
@@ -374,8 +375,8 @@ detailed meanings of these arguments."
374 (if (= row 0) 375 (if (= row 0)
375 (make-char charset i) 376 (make-char charset i)
376 (make-char charset row i))) 377 (make-char charset row i)))
377 ((char-table-p charset) 378 ((and (symbolp charset) (get charset 'translation-table))
378 (aref charset i)) 379 (aref (get charset 'translation-table) i))
379 (t (funcall charset (+ (* row 256) i))))) 380 (t (funcall charset (+ (* row 256) i)))))
380 (if (and (char-table-p charset) 381 (if (and (char-table-p charset)
381 (or (< ch 32) (and (>= ch 127) (<= ch 255)))) 382 (or (< ch 32) (and (>= ch 127) (<= ch 255))))