From e38bd11b607c699e49f19d87d315030b849cf182 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 3 Apr 2008 03:53:24 +0000 Subject: [PATCH] (latin1-display): Don't use make-char. Fix the argument to set-char-table-range. (latin1-display-identities): Don't use make-char. (latin1-display-reset): Use map-charset-chars instead of directly calling standard-display-default. (latin1-display-check-font): Don't use make-char. (latin1-display-setup): Likewise. (latin1-display-ucs-per-lynx): Likewise. --- lisp/ChangeLog | 11 +++++++++++ lisp/international/latin1-disp.el | 33 +++++++++++++++---------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d7ef613552..dc8f501718 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2008-04-03 Kenichi Handa + + * international/latin1-disp.el (latin1-display): Don't use + make-char. Fix the argument to set-char-table-range. + (latin1-display-identities): Don't use make-char. + (latin1-display-reset): Use map-charset-chars instead of directly + calling standard-display-default. + (latin1-display-check-font): Don't use make-char. + (latin1-display-setup): Likewise. + (latin1-display-ucs-per-lynx): Likewise. + 2008-04-03 Stefan Monnier * emacs-lisp/timer.el (timer): Define as a defstruct, so we can diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el index 26e1a699e4..a2119ad62c 100644 --- a/lisp/international/latin1-disp.el +++ b/lisp/international/latin1-disp.el @@ -105,8 +105,7 @@ display for all of `latin1-display-sets'. See also (if sets (progn (mapc #'latin1-display-setup sets) - (unless (char-displayable-p - (make-char 'mule-unicode-0100-24ff 32 33)) + (unless (char-displayable-p #x101) ; a with macron ;; Extra stuff for windows-1252, in particular. (mapc (lambda (l) @@ -126,8 +125,8 @@ display for all of `latin1-display-sets'. See also ))) (setq latin1-display t)) (mapc #'latin1-display-reset latin1-display-sets) - (set-char-table-range standard-display-table '(#x0100 #x33FF) nil) - (set-char-table-range standard-display-table '(#xE000 #xFFFF) nil) + (set-char-table-range standard-display-table '(#x0100 . #x33FF) nil) + (set-char-table-range standard-display-table '(#xE000 . #xFFFF) nil) (setq latin1-display nil) (redraw-display))) @@ -172,13 +171,12 @@ CHARSET is a symbol which is the nickname of a language environment using an ISO8859 character set." (if (eq charset 'cyrillic) (setq charset 'cyrillic-iso)) - (let ((i 32) + (let ((i 128) (set (car (remq 'ascii (get-language-info charset 'charset))))) - (while (<= i 127) - (let ((ch (decode-char set (+ i 128)))) + (while (<= i 255) + (let ((ch (decode-char set i))) (if ch - (aset standard-display-table ch - (vector (make-char 'latin-iso8859-1 i))))) + (aset standard-display-table ch (vector i)))) (setq i (1+ i))))) (defun latin1-display-reset (language) @@ -191,8 +189,9 @@ character set." 'arabic-iso8859-6 (car (remq 'ascii (get-language-info language 'charset)))))) - (standard-display-default (make-char charset 32) - (make-char charset 127))) + (map-charset-chars #'(lambda (range arg) + (standard-display-default (car range) (cdr range))) + charset)) (sit-for 0)) (defun latin1-display-check-font (language) @@ -202,7 +201,7 @@ character set: `latin-2', `hebrew' etc." (if (eq language 'cyrillic) (setq language 'cyrillic-iso)) (let* ((info (get-language-info language 'charset)) - (char (and info (make-char (car (remq 'ascii info)) ?\ )))) + (char (and info (decode-char (car (remq 'ascii info)) ?\ )))) (and char (char-displayable-p char)))) ;; Backwards compatibility. @@ -532,9 +531,10 @@ is. If FORCE is non-nil, set up the display regardless." ;; missing some glyphs.) (let ((i 34)) (while (<= i 62) - (aset standard-display-table - (make-char 'hebrew-iso8859-8 i) - (vector (make-char 'latin-iso8859-1 i))) + (let ((ch (decode-char 'hebrew-iso8859-8 i))) + (if ch + (aset standard-display-table ch + (vector (decode-char 'latin-iso8859-1 i))))) (setq i (1+ i)))) (mapc (lambda (l) @@ -767,8 +767,7 @@ turn it off and display Unicode characters literally. The display isn't changed if the display can render Unicode characters." (interactive "p") (if (> arg 0) - (unless (char-displayable-p - (make-char 'mule-unicode-0100-24ff 32 33)) + (unless (char-displayable-p #x101) ; a with macron ;; It doesn't look as though we have a Unicode font. (let ((latin1-display-format "%s")) (mapc -- 2.39.2