summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2008-05-28 11:47:01 +0000
committerKenichi Handa <handa@m17n.org>2008-05-28 11:47:01 +0000
commitaa50ca2fb3aa277e4cd48e96faf5ab0734ae4059 (patch)
tree0287a31633f6e173a8f6b27ef4531bcd76be2dfd
parent5d376f741b490f6153184e51793f46b1ef3ceb25 (diff)
downloademacs-aa50ca2fb3aa277e4cd48e96faf5ab0734ae4059.tar.gz
(font_parse_family_registry): Use Ffont_put to validate
foundry and family. (font_delete_unmatched): Don't check spacing. (font_list_entities): Add spacing to the spec to list fonts.
-rw-r--r--src/font.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/font.c b/src/font.c
index c869c812c80..3a18d98bf20 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1574,11 +1574,10 @@ font_parse_family_registry (family, registry, font_spec)
{
if ((*p0 != '*' || p1 - p0 > 1)
&& NILP (AREF (font_spec, FONT_FOUNDRY_INDEX)))
- ASET (font_spec, FONT_FOUNDRY_INDEX,
- font_intern_prop (p0, p1 - p0));
+ Ffont_put (font_spec, QCfoundry, font_intern_prop (p0, p1 - p0));
p1++;
len -= p1 - p0;
- ASET (font_spec, FONT_FAMILY_INDEX, font_intern_prop (p1, len));
+ Ffont_put (font_spec, QCfamily, font_intern_prop (p1, len));
}
else
ASET (font_spec, FONT_FAMILY_INDEX, Fintern (family, Qnil));
@@ -2378,11 +2377,6 @@ font_delete_unmatched (list, spec, size)
: diff > FONT_PIXEL_SIZE_QUANTUM))
prop = FONT_SPEC_MAX;
}
- if (prop < FONT_SPEC_MAX
- && INTEGERP (AREF (spec, FONT_SPACING_INDEX))
- && ! EQ (AREF (spec, FONT_SPACING_INDEX),
- AREF (entity, FONT_SPACING_INDEX)))
- prop = FONT_SPEC_MAX;
if (prop < FONT_SPEC_MAX)
val = Fcons (entity, val);
}
@@ -2430,12 +2424,13 @@ font_list_entities (frame, spec)
ftype = AREF (spec, FONT_TYPE_INDEX);
for (i = 1; i <= FONT_REGISTRY_INDEX; i++)
ASET (scratch_font_spec, i, AREF (spec, i));
- for (; i < FONT_EXTRA_INDEX; i++)
+ for (i = FONT_DPI_INDEX; i < FONT_EXTRA_INDEX; i += 2)
{
ASET (scratch_font_spec, i, Qnil);
if (! NILP (AREF (spec, i)))
need_filtering = 1;
}
+ ASET (scratch_font_spec, FONT_SPACING_INDEX, AREF (spec, FONT_SPACING_INDEX));
ASET (scratch_font_spec, FONT_EXTRA_INDEX, AREF (spec, FONT_EXTRA_INDEX));
vec = alloca (sizeof (Lisp_Object) * num_font_drivers * n_family);