[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/macterm.c
From: |
Steven Tamm |
Subject: |
[Emacs-diffs] Changes to emacs/src/macterm.c |
Date: |
Mon, 03 Jan 2005 12:05:00 -0500 |
Index: emacs/src/macterm.c
diff -c emacs/src/macterm.c:1.88 emacs/src/macterm.c:1.89
*** emacs/src/macterm.c:1.88 Thu Dec 30 02:04:30 2004
--- emacs/src/macterm.c Mon Jan 3 16:49:35 2005
***************
*** 4952,4958 ****
FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset;
FRAME_FONTSET (f) = -1;
! FRAME_COLUMN_WIDTH (f) = FONT_WIDTH (FRAME_FONT (f));
FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (FRAME_FONT (f));
compute_fringe_widths (f, 1);
--- 4952,4959 ----
FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset;
FRAME_FONTSET (f) = -1;
! FRAME_COLUMN_WIDTH (f) = fontp->average_width;
! FRAME_SPACE_WIDTH (f) = fontp->space_width;
FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (FRAME_FONT (f));
compute_fringe_widths (f, 1);
***************
*** 6475,6486 ****
MacFontStruct *font;
int *w, *h;
{
- /*
- * TODO: Windows does not appear to offer min bound, only
- * average and maximum width, and maximum height.
- */
*h = FONT_HEIGHT (font);
! *w = FONT_WIDTH (font);
}
--- 6476,6483 ----
MacFontStruct *font;
int *w, *h;
{
*h = FONT_HEIGHT (font);
! *w = font->min_bounds.width;
}
***************
*** 6708,6721 ****
font->per_char = (XCharStruct *)
xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
{
! int c;
for (c = 0x20; c <= 0xff; c++)
{
! font->per_char[c - 0x20] = font->max_bounds;
! font->per_char[c - 0x20].width =
! font->per_char[c - 0x20].rbearing = CharWidth (c);
}
}
}
--- 6705,6724 ----
font->per_char = (XCharStruct *)
xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
{
! int c, min_width, max_width;
+ min_width = max_width = char_width;
for (c = 0x20; c <= 0xff; c++)
{
! font->per_char[c - 0x20] = font->max_bounds;
! char_width = CharWidth (c);
! font->per_char[c - 0x20].width = char_width;
! font->per_char[c - 0x20].rbearing = char_width;
! min_width = min (min_width, char_width);
! max_width = max (max_width, char_width);
}
+ font->min_bounds.width = min_width;
+ font->max_bounds.width = max_width;
}
}
***************
*** 6823,6828 ****
--- 6826,6860 ----
fontp->name = (char *) xmalloc (strlen (font->fontname) + 1);
bcopy (font->fontname, fontp->name, strlen (font->fontname) + 1);
+ if (font->min_bounds.width == font->max_bounds.width)
+ {
+ /* Fixed width font. */
+ fontp->average_width = fontp->space_width = font->min_bounds.width;
+ }
+ else
+ {
+ XChar2b char2b;
+ XCharStruct *pcm;
+
+ char2b.byte1 = 0x00, char2b.byte2 = 0x20;
+ pcm = mac_per_char_metric (font, &char2b, 0);
+ if (pcm)
+ fontp->space_width = pcm->width;
+ else
+ fontp->space_width = FONT_WIDTH (font);
+
+ if (pcm)
+ {
+ int width = pcm->width;
+ for (char2b.byte2 = 33; char2b.byte2 <= 126; char2b.byte2++)
+ if ((pcm = mac_per_char_metric (font, &char2b, 0)) != NULL)
+ width += pcm->width;
+ fontp->average_width = width / 95;
+ }
+ else
+ fontp->average_width = FONT_WIDTH (font);
+ }
+
fontp->full_name = fontp->name;
fontp->size = font->max_bounds.width;
- [Emacs-diffs] Changes to emacs/src/macterm.c,
Steven Tamm <=
- [Emacs-diffs] Changes to emacs/src/macterm.c, Steven Tamm, 2005/01/05
- [Emacs-diffs] Changes to emacs/src/macterm.c, Steven Tamm, 2005/01/07
- [Emacs-diffs] Changes to emacs/src/macterm.c, Steven Tamm, 2005/01/24
- [Emacs-diffs] Changes to emacs/src/macterm.c, Kim F . Storm, 2005/01/27
- [Emacs-diffs] Changes to emacs/src/macterm.c, Jesper Harder, 2005/01/30