GNU bug report logs -
#8703
truncated unicode glyphs in X11
Previous Next
Full log
Message #17 received at 8703 <at> debbugs.gnu.org (full text, mbox):
In article <83tycpfz78.fsf <at> gnu.org>, Eli Zaretskii <eliz <at> gnu.org> writes:
> > Date: Thu, 19 May 2011 22:17:02 +0200
> > From: Bertram Felgenhauer <bertram.felgenhauer <at> googlemail.com>
> >
> > I have tracked down the regression using git-bisect, and found it
> > was introduced by
> >
> > http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5d747e944fd5a15bb36f865efc214024803c5fcf
> For those using bzr, this is revision 100011 on the emacs-23 branch or
> revision 99634.13.1 on the trunk. Perhaps Handa-san could take a look
> at this, as he made that change.
Thank you for the report. I've just installed a fix
(attached) to emacs-23 branch. Could you please try it?
---
Kenichi Handa
handa <at> m17n.org
=== modified file 'src/xdisp.c'
--- src/xdisp.c 2011-05-09 09:59:23 +0000
+++ src/xdisp.c 2011-05-25 01:18:58 +0000
@@ -5922,9 +5922,21 @@
int pos = (it->s ? -1
: STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
: IT_CHARPOS (*it));
+ int c;
+
+ if (it->what == IT_CHARACTER)
+ c = it->char_to_display;
+ else
+ {
+ struct composition *cmp = composition_table[it->cmp_it.id];
+ int i;
- it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, pos,
- it->string);
+ c = ' ';
+ for (i = 0; i < cmp->glyph_len; i++)
+ if ((c = COMPOSITION_GLYPH (cmp, i)) != '\t')
+ break;
+ }
+ it->face_id = FACE_FOR_CHAR (it->f, face, c, pos, it->string);
}
}
#endif
This bug report was last modified 14 years and 1 day ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.