emacs-diffs
[Top][All Lists]
Advanced

[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)




reply via email to

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