# HG changeset patch # User Kenichi Handa # Date 1211975221 0 # Node ID f6580a4c58da685309711e082fa077908d06a7d0 # Parent 9c54d4f00cf6e284ada341fb7966f53bab38c2ff (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. diff -r 9c54d4f00cf6 -r f6580a4c58da src/font.c --- a/src/font.c Wed May 28 11:45:29 2008 +0000 +++ b/src/font.c Wed May 28 11:47:01 2008 +0000 @@ -1574,11 +1574,10 @@ { 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 @@ : 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 @@ 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);