aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2008-05-28 11:47:01 +0000
committerKenichi Handa2008-05-28 11:47:01 +0000
commitaa50ca2fb3aa277e4cd48e96faf5ab0734ae4059 (patch)
tree0287a31633f6e173a8f6b27ef4531bcd76be2dfd
parent5d376f741b490f6153184e51793f46b1ef3ceb25 (diff)
downloademacs-aa50ca2fb3aa277e4cd48e96faf5ab0734ae4059.tar.gz
emacs-aa50ca2fb3aa277e4cd48e96faf5ab0734ae4059.zip
(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)
1574 { 1574 {
1575 if ((*p0 != '*' || p1 - p0 > 1) 1575 if ((*p0 != '*' || p1 - p0 > 1)
1576 && NILP (AREF (font_spec, FONT_FOUNDRY_INDEX))) 1576 && NILP (AREF (font_spec, FONT_FOUNDRY_INDEX)))
1577 ASET (font_spec, FONT_FOUNDRY_INDEX, 1577 Ffont_put (font_spec, QCfoundry, font_intern_prop (p0, p1 - p0));
1578 font_intern_prop (p0, p1 - p0));
1579 p1++; 1578 p1++;
1580 len -= p1 - p0; 1579 len -= p1 - p0;
1581 ASET (font_spec, FONT_FAMILY_INDEX, font_intern_prop (p1, len)); 1580 Ffont_put (font_spec, QCfamily, font_intern_prop (p1, len));
1582 } 1581 }
1583 else 1582 else
1584 ASET (font_spec, FONT_FAMILY_INDEX, Fintern (family, Qnil)); 1583 ASET (font_spec, FONT_FAMILY_INDEX, Fintern (family, Qnil));
@@ -2378,11 +2377,6 @@ font_delete_unmatched (list, spec, size)
2378 : diff > FONT_PIXEL_SIZE_QUANTUM)) 2377 : diff > FONT_PIXEL_SIZE_QUANTUM))
2379 prop = FONT_SPEC_MAX; 2378 prop = FONT_SPEC_MAX;
2380 } 2379 }
2381 if (prop < FONT_SPEC_MAX
2382 && INTEGERP (AREF (spec, FONT_SPACING_INDEX))
2383 && ! EQ (AREF (spec, FONT_SPACING_INDEX),
2384 AREF (entity, FONT_SPACING_INDEX)))
2385 prop = FONT_SPEC_MAX;
2386 if (prop < FONT_SPEC_MAX) 2380 if (prop < FONT_SPEC_MAX)
2387 val = Fcons (entity, val); 2381 val = Fcons (entity, val);
2388 } 2382 }
@@ -2430,12 +2424,13 @@ font_list_entities (frame, spec)
2430 ftype = AREF (spec, FONT_TYPE_INDEX); 2424 ftype = AREF (spec, FONT_TYPE_INDEX);
2431 for (i = 1; i <= FONT_REGISTRY_INDEX; i++) 2425 for (i = 1; i <= FONT_REGISTRY_INDEX; i++)
2432 ASET (scratch_font_spec, i, AREF (spec, i)); 2426 ASET (scratch_font_spec, i, AREF (spec, i));
2433 for (; i < FONT_EXTRA_INDEX; i++) 2427 for (i = FONT_DPI_INDEX; i < FONT_EXTRA_INDEX; i += 2)
2434 { 2428 {
2435 ASET (scratch_font_spec, i, Qnil); 2429 ASET (scratch_font_spec, i, Qnil);
2436 if (! NILP (AREF (spec, i))) 2430 if (! NILP (AREF (spec, i)))
2437 need_filtering = 1; 2431 need_filtering = 1;
2438 } 2432 }
2433 ASET (scratch_font_spec, FONT_SPACING_INDEX, AREF (spec, FONT_SPACING_INDEX));
2439 ASET (scratch_font_spec, FONT_EXTRA_INDEX, AREF (spec, FONT_EXTRA_INDEX)); 2434 ASET (scratch_font_spec, FONT_EXTRA_INDEX, AREF (spec, FONT_EXTRA_INDEX));
2440 2435
2441 vec = alloca (sizeof (Lisp_Object) * num_font_drivers * n_family); 2436 vec = alloca (sizeof (Lisp_Object) * num_font_drivers * n_family);