emacs-devel
[Top][All Lists]
Advanced

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

Re: char-table-range


From: Luc Teirlinck
Subject: Re: char-table-range
Date: Sun, 15 Feb 2004 20:12:37 -0600 (CST)

Ken'ichi Handa wrote:

   What should we do if values of characters
   in the specified range are different?

   For the moment, I don't have a good idea.  Possible
   behaviours are:

   (1) return nil
   (2) return the first non-nil value in the range.
   (3) return the default value of the range (but ascii,
       eight-bit-XXXX doesn't have a default value).
   (4) signal an error

I did not realize that currently, for charsets different from ascii and
eight-bit-{control,graphic}, char-table-range actually returns the
entire range of values if the value is not uniform.  So this could be
a fifth possibility, since it appears to be the current situation:

===File ~/char-table-ielm-b=================================
*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (put 'five-slots 'char-table-extra-slots 5)
5
ELISP> (setq cc (make-char-table 'five-slots))
ELISP> (make-char 'ipa)
6272
ELISP> (set-char-table-default cc 6272 1)
1
ELISP> (char-table-range cc 'ipa)
1
ELISP> (split-char 6320)
(ipa 48)

ELISP> (aset cc 6320 2)
2
ELISP> (char-table-range cc 'ipa)
#^^[nil 1 nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil 2 nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 
nil nil nil nil nil nil nil nil nil nil nil]

ELISP> (aset cc 32 1)
1
ELISP> (aset cc 33 2)
2
ELISP> (char-table-range cc 'ascii)
nil
ELISP> (aset cc 128 3)
3
ELISP> (char-table-range cc 'ascii)
3
ELISP> 
============================================================




reply via email to

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