emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs 23 character code space


From: Kenichi Handa
Subject: Re: Emacs 23 character code space
Date: Fri, 07 Nov 2008 20:52:37 +0900

In article <address@hidden>, Eli Zaretskii <address@hidden> writes:

> Thanks.  But I'm still a bit in the dark, as for how to describe this
> correctly and concisely.  Do we actually use the range of codes
> between 0x110000 and 0x3FFF7F?  If so, for what characters?  If we do
> not use them now, are there some plans for using them in the future?

I wrote about the usage of that area in the thread "size of
emacs executable after unicode merge" as below.

> (0) At first, Emacs assigns a unique linear character code
>     space in upper Unicode area (#x110000-) to each big
>     character set (e.g. GB, JIS, KSC) (*see the note at the
>     tail).  The decoding of a character of a specific
>     charset into this area is quite fast (done just by a few
>     steps of arithmetic calculation).  Encoding is the same
>     too.
[...]
> *Note:
> 
> The reason Emacs assigns those linear area is because such
> big charsets tend to have their own private use area, and we
> must keep a unique characte code for them.  Those private
> characters are decoded and encoded without being mapped to
> Unicode are.

For example, the charset `japanese-jisx0208' is defined as
below.

(define-charset 'japanese-jisx0208
  "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87"
  :short-name "JISX0208"
  :long-name "JISX0208.1983/1990 (Japanese): ISO-IR-87"
  :iso-final-char ?B
  :emacs-mule-id 146
  :code-space [33 126 33 126]
  :code-offset #x140000
  :unify-map "JISX0208")

So, for that charset, the code space for 8836 (=94x94)
characters are preserved in that upper area linearly from
#x140000.  Then, most of the characters are mapped into
Unicode area by the map "JISX0208".  The remaining
characters stay in this upper area.

---
Kenichi Handa
address@hidden




reply via email to

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