emacs-devel
[Top][All Lists]
Advanced

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

Re: Usage of standard-display-table in MSDOS


From: Kenichi Handa
Subject: Re: Usage of standard-display-table in MSDOS
Date: Thu, 02 Sep 2010 21:32:21 +0900

In article <address@hidden>, "Ehud Karni" <address@hidden> writes:

> Problem 1:
> On text terminal the language environment has great influence on the
> use of the display table - characters not it the language - are
> always displayed as ? . So in the "C" locale, all characters > 127
> are displayed as ?.
> In the "he_IL" locale (= ISO-8859-8) characters in the range
> 191-223 and 251-255 are displayed as ?.
> In the "en_GB" locale (= ISO-8859-1) the Hebrew characters (#x5D0-
> #x5EA) are displayed as ?.

> I really must use the "he_IL" because most of the file my users view
> are in ISO-8859-8 and a small part have MSDOS Hebrew (#x80-#x9A), but
> I want to see all the characters (#xB0-#xDF) literally (i.e. when a
> byte in this range is displayed, its 8 bit value should be sent to
> the terminal.

I've thought that you are reading files by
find-file-literally (thus buffers are unibyte) because you
wrote below at first:

> I had this code in Emacs 21.3:
> 
> (defun set-standard-display-table ()
>     (setq standard-display-table (make-display-table))
>     (standard-display-8bit 127 254))
> 
> I then set the DOS Hebrew chars (128-144) each to a vector:
>     [ 169 <the corresponding UNIX Hebrew char> ]
> 
> Then visit a file (literally).

But, as you wrote "Problem 2: When I use
`find-file-literally' ...", the "Problem 1" is the case that
you don't use `find-file-literally', and a file is read into
a multibyte buffer decoded by some coding-system, right?

Then, in he_IL locale, by which coding-system your file is
decoded?  C-h C RET shows that coding-system near the top
under the line "Coding system for saving this buffer:".

And I don't understand this part.

> I then set the DOS Hebrew chars (128-144) each to a vector:
>     [ 169 <the corresponding UNIX Hebrew char> ]

169 is not a "UNIX Hebrew char", i.e. not a Unicode
character code of a Hebrew char, nor a code-point of a
Hebrew character in iso-8859-8 character set.

In your mails, you mixup:
 (1) a code-point in a specific character set,
 (2) a character code in Emacs (that is Unicode character code),
 (3) a byte represented by Emacs' 8-bit characters,
and that makes it difficult to understand what exactly you
are saying.

Please write:
 For (1), "a character of code #xXX in XXX charset".
 For (2), just "U+XXXX".
 For (3), just "byte #xXX".

And, you wrote "a small part have MSDOS Hebrew (#x80-#x9A)",
but #x9a is 154, not 144.  Is "144" above just a typo?

Perhaps, the following is the best way to understand what
you want:

(1) You at first make sample files and give me them.
(2) Tell me how you want read that file exactly.
    Just C-x C-f FILENAME RET, or M-x find-file-literally ....,
    or C-x C-m c no-convesion RET C-x C-f FILENAME RET,
    or ...
(3) Show me how it should be displayed on a terminal by an
    image.

---
Kenichi Handa
address@hidden



reply via email to

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