emacs-devel
[Top][All Lists]
Advanced

[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






reply via email to

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