[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src xfont.c [EMACS_23_1_RC]
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] emacs/src xfont.c [EMACS_23_1_RC] |
Date: |
Tue, 28 Jul 2009 02:02:41 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Branch: EMACS_23_1_RC
Changes by: Kenichi Handa <handa> 09/07/28 02:02:41
Modified files:
src : xfont.c
Log message:
(xfont_list_pattern): Don't ignore the return value of
font_parse_xlfd. Check font properties more rigidly.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xfont.c?cvsroot=emacs&only_with_tag=EMACS_23_1_RC&r1=1.30&r2=1.30.2.1
Patches:
Index: xfont.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xfont.c,v
retrieving revision 1.30
retrieving revision 1.30.2.1
diff -u -b -r1.30 -r1.30.2.1
--- xfont.c 21 May 2009 16:36:30 -0000 1.30
+++ xfont.c 28 Jul 2009 02:02:40 -0000 1.30.2.1
@@ -411,16 +411,25 @@
continue;
entity = font_make_entity ();
xfont_decode_coding_xlfd (indices[i], -1, buf);
- font_parse_xlfd (buf, entity);
+ if (font_parse_xlfd (buf, entity) < 0)
+ continue;
ASET (entity, FONT_TYPE_INDEX, Qx);
/* Avoid auto-scaled fonts. */
- if (XINT (AREF (entity, FONT_DPI_INDEX)) != 0
+ if (INTEGERP (AREF (entity, FONT_DPI_INDEX))
+ && INTEGERP (AREF (entity, FONT_AVGWIDTH_INDEX))
+ && XINT (AREF (entity, FONT_DPI_INDEX)) != 0
&& XINT (AREF (entity, FONT_AVGWIDTH_INDEX)) == 0)
continue;
/* Avoid not-allowed scalable fonts. */
if (NILP (Vscalable_fonts_allowed))
{
- if (XINT (AREF (entity, FONT_SIZE_INDEX)) == 0)
+ int size = 0;
+
+ if (INTEGERP (AREF (entity, FONT_SIZE_INDEX)))
+ size = XINT (AREF (entity, FONT_SIZE_INDEX));
+ else if (FLOATP (AREF (entity, FONT_SIZE_INDEX)))
+ size = XFLOAT_DATA (AREF (entity, FONT_SIZE_INDEX));
+ if (size == 0)
continue;
}
else if (CONSP (Vscalable_fonts_allowed))
@@ -439,6 +448,10 @@
continue;
}
+ /* Avoid fonts of invalid registry. */
+ if (NILP (AREF (entity, FONT_REGISTRY_INDEX)))
+ continue;
+
/* Update encoding and repertory if necessary. */
if (! EQ (registry, AREF (entity, FONT_REGISTRY_INDEX)))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/src xfont.c [EMACS_23_1_RC],
Kenichi Handa <=