+2009-04-09 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_put_extra): If VAL is nil, delete the slot for PROP
+ from the list of extra properties.
+ (font_clear_prop): Be sure to delete `:name' font property.
+
2009-04-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* dispnew.c (redraw_overlapping_rows): Fix detection of
{
Lisp_Object prev = Qnil;
+ if (NILP (val))
+ return val;
while (CONSP (extra)
&& NILP (Fstring_lessp (prop, XCAR (XCAR (extra)))))
prev = extra, extra = XCDR (extra);
return val;
}
XSETCDR (slot, val);
+ if (NILP (val))
+ ASET (font, FONT_EXTRA_INDEX, Fdelq (slot, extra));
return val;
}
if (! FONTP (font))
return;
+ if (! NILP (Ffont_get (font, QCname)))
+ {
+ font = Fcopy_font_spec (font);
+ font_put_extra (font, QCname, Qnil);
+ }
+
if (NILP (AREF (font, prop))
&& prop != FONT_FAMILY_INDEX
&& prop != FONT_FOUNDRY_INDEX
&& prop != FONT_WIDTH_INDEX
&& prop != FONT_SIZE_INDEX)
return;
- font = Fcopy_font_spec (font);
+ if (EQ (font, attrs[LFACE_FONT_INDEX]))
+ font = Fcopy_font_spec (font);
ASET (font, prop, Qnil);
if (prop == FONT_FAMILY_INDEX || prop == FONT_FOUNDRY_INDEX)
{