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: Eli Zaretskii
Subject: Re: Usage of standard-display-table in MSDOS
Date: Fri, 27 Aug 2010 13:24:02 +0300

> From: Kenichi Handa <address@hidden>
> Date: Mon, 23 Aug 2010 21:44:07 +0900
> 
> In msdos-initialize-window-system (of term/pc-win.el), I
> found this code:
> 
>   ;; In multibyte mode, we want unibyte buffers to be displayed
>   ;; using the terminal coding system, so that they display
>   ;; correctly on the DOS terminal; in unibyte mode we want to see
>   ;; all 8-bit characters verbatim.  In both cases, we want the
>   ;; entire range of 8-bit characters to arrive at our display code
>   ;; verbatim.
>   (standard-display-8bit 127 255)
> 
> Is it really working in non-iso-8859-1 environment as
> expected?  Note that 128..255 are latin-1 characters after
> Emacs 23, not raw-bytes.  So, I think the above call will
> make 8-bit bytes in unibyte buffer displayed as latin-1
> characters, but as the termial encoding system doesn't
> support latin-1 chars in, for instance, greek environment,
> just '?' will be displayed.

It's quite possible that this doesn't work in Emacs 23 and later like
it did in older versions.  But to figure out what, if anything, is
needed instead, I would like first to understand better what you are
saying.

It sounds like you are saying that standard-display-8bit no longer
does what its doc string advertises:

    "Display characters in the range L to H literally."

The "literally" part is no longer true, is it?

And one other question: why do we do something similar in
standard-display-european-internal?  Specifically:

    (defun standard-display-european-internal ()
      ;; Actually set up direct output of non-ASCII characters.
      (standard-display-8bit (if (eq window-system 'pc) 128 160) 255)

(I'm asking about the case where window-system is _not_ `pc'.)
This is called in set-display-table-and-terminal-coding-system under
the following conditions:

  (let ((coding (get-language-info language-name 'unibyte-display)))
    (if (and coding
             (or (not coding-system)
                 (coding-system-equal coding coding-system)))
        (standard-display-european-internal)



reply via email to

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