[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Possible redisplay performance enhancements (revisited)
From: |
Kenichi Handa |
Subject: |
Re: Possible redisplay performance enhancements (revisited) |
Date: |
Mon, 24 Apr 2006 16:35:28 +0900 |
User-agent: |
SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/22.0.50 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI) |
In article <address@hidden>, Eli Zaretskii <address@hidden> writes:
>> Date: Fri, 21 Apr 2006 18:47:40 +0900
>> From: YAMAMOTO Mitsuharu <address@hidden>
>>
>> 2. Need to check face_id < BASIC_FACE_ID_SENTINEL in get_*_face_and_encoding?
>> http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg00238.html
>>
>> No response, but I couldn't find any reason to distinguish
>> known faces from others with respect to encode_char.
> I think it doesn't want to assume single-byte for unknown faces, but
> I'm not sure if this is really needed.
> Handa-san, could you please comment on the suggested patch (below)?
I don't know why Gerd put that condition in the code. But,
as the code in fontset always uses a font specified for
ASCII for ASCII code (see below), I think the proposed patch
is safe.
static Lisp_Object
fontset_ref (fontset, c)
Lisp_Object fontset;
int c;
{
int charset, c1, c2;
Lisp_Object elt, defalt;
if (SINGLE_BYTE_CHAR_P (c))
return FONTSET_ASCII (fontset);
[...]
}
>> Index: src/xdisp.c
>> ===================================================================
>> RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
>> retrieving revision 1.1089
>> diff -c -r1.1089 xdisp.c
>> *** src/xdisp.c 20 Apr 2006 23:03:03 -0000 1.1089
>> --- src/xdisp.c 21 Apr 2006 08:47:17 -0000
>> ***************
>> *** 18495,18502 ****
>> sure to use a face suitable for unibyte. */
>> STORE_XCHAR2B (char2b, 0, glyph->u.ch);
>> }
>> ! else if (glyph->u.ch < 128
>> ! && glyph->face_id < BASIC_FACE_ID_SENTINEL)
>> {
>> /* Case of ASCII in a face known to fit ASCII. */
>> STORE_XCHAR2B (char2b, 0, glyph->u.ch);
>> --- 18495,18501 ----
>> sure to use a face suitable for unibyte. */
>> STORE_XCHAR2B (char2b, 0, glyph->u.ch);
>> }
>> ! else if (glyph->u.ch < 128)
>> {
>> /* Case of ASCII in a face known to fit ASCII. */
>> STORE_XCHAR2B (char2b, 0, glyph->u.ch);
>> ***************
>> *** 18897,18903 ****
>> face_id = FACE_FOR_CHAR (f, face, c);
>> face = FACE_FROM_ID (f, face_id);
>> }
>> ! else if (c < 128 && face_id < BASIC_FACE_ID_SENTINEL)
>> {
>> /* Case of ASCII in a face known to fit ASCII. */
>> STORE_XCHAR2B (char2b, 0, c);
>> --- 18896,18902 ----
>> face_id = FACE_FOR_CHAR (f, face, c);
>> face = FACE_FROM_ID (f, face_id);
>> }
>> ! else if (c < 128)
>> {
>> /* Case of ASCII in a face known to fit ASCII. */
>> STORE_XCHAR2B (char2b, 0, c);
>>
>>
---
Kenichi Handa
address@hidden