[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#3745: 23.0.95; emacs-23.0.95: unibyte-display-via-language-environme
From: |
Chong Yidong |
Subject: |
bug#3745: 23.0.95; emacs-23.0.95: unibyte-display-via-language-environment |
Date: |
Fri, 03 Jul 2009 15:06:28 -0400 |
> Now `charset_unibyte' is always 0 (i.e. the same as
> `charset_ascii'). So, unibyte->multibyte conversion always
> results in an eight-bit multibyte character.
Looking through the code, I see that the variable `charset_unibyte' is
not initialized properly. That's the only reason it's 0. We have to
fix this for sure.
> To fix the above problem, I propose these changes for 23.1
> and the trunk.
>
> (1) Fix all codes accessing charset_unibyte
> (e.g. Funibyte_char_to_multibyte) not to refer to it.
Can we use charset_iso_8859_1 instead of charset_unibyte, or add a line
that says
charset_unibyte
= define_charset_internal (...);
in syms_of_charset?
> (2) Setup charset_unibyte correctly in Fset_charset_priority.
>
> (3) Fix x_produce_glyphs to do DECODE_CHAR (charset_unibyte,
> it->c) instead of unibyte_char_to_multibyte (it->c).
Number 3 is not a trivial change. IIUC, unibyte_char_to_multibyte is
very fast. Changing it to use DECODE_CHAR may lead to a performance
hit.
bug#3745: 23.0.95; emacs-23.0.95: unibyte-display-via-language-environment,
Chong Yidong <=