[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xfont.c,v
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/src/xfont.c,v |
Date: |
Wed, 09 Jul 2008 07:38:55 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 08/07/09 07:38:55
Index: xfont.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xfont.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- xfont.c 9 Jul 2008 02:02:14 -0000 1.16
+++ xfont.c 9 Jul 2008 07:38:55 -0000 1.17
@@ -728,11 +728,11 @@
{
XFontStruct *xfont = ((struct xfont_info *) font)->xfont;
int width = 0;
- int i, x;
+ int i, first, x;
if (metrics)
bzero (metrics, sizeof (struct font_metrics));
- for (i = 0, x = 0; i < nglyphs; i++)
+ for (i = 0, x = 0, first = 1; i < nglyphs; i++)
{
XChar2b char2b;
static XCharStruct *pcm;
@@ -743,6 +743,21 @@
pcm = xfont_get_pcm (xfont, &char2b);
if (! pcm)
continue;
+ if (first)
+ {
+ if (metrics)
+ {
+ metrics->lbearing = pcm->lbearing;
+ metrics->rbearing = pcm->rbearing;
+ metrics->ascent = pcm->ascent;
+ metrics->descent = pcm->descent;
+ }
+ first = 0;
+ }
+ else
+ {
+ if (metrics)
+ {
if (metrics->lbearing > width + pcm->lbearing)
metrics->lbearing = width + pcm->lbearing;
if (metrics->rbearing < width + pcm->rbearing)
@@ -751,6 +766,8 @@
metrics->ascent = pcm->ascent;
if (metrics->descent < pcm->descent)
metrics->descent = pcm->descent;
+ }
+ }
width += pcm->width;
}
if (metrics)
- [Emacs-diffs] Changes to emacs/src/xfont.c,v, Kenichi Handa, 2008/07/08
- [Emacs-diffs] Changes to emacs/src/xfont.c,v, Kenichi Handa, 2008/07/08
- [Emacs-diffs] Changes to emacs/src/xfont.c,v,
Kenichi Handa <=
- [Emacs-diffs] Changes to emacs/src/xfont.c,v, Kenichi Handa, 2008/07/09
- [Emacs-diffs] Changes to emacs/src/xfont.c,v, Kenichi Handa, 2008/07/14