]> git.eshelyaron.com Git - emacs.git/commitdiff
(font_put_extra): If VAL is nil, delete the slot for PROP
authorKenichi Handa <handa@m17n.org>
Thu, 9 Apr 2009 02:40:51 +0000 (02:40 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 9 Apr 2009 02:40:51 +0000 (02:40 +0000)
from the list of extra properties.
(font_clear_prop): Be sure to delete `:name' font property.

src/ChangeLog
src/font.c

index aca9e8014cf4f60dccc74f810a160a4e9766dea3..f5cc4463bea25bdeaffbd60416c44537d1df39a7 100644 (file)
@@ -1,3 +1,9 @@
+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
index f5a9e3e70e2a9eea07d5e3c16d8911d827b5fe5a..bb83fe938a072fb9dac667284630ff2632f174bf 100644 (file)
@@ -719,6 +719,8 @@ font_put_extra (font, prop, val)
     {
       Lisp_Object prev = Qnil;
 
+      if (NILP (val))
+       return val;
       while (CONSP (extra)
             && NILP (Fstring_lessp (prop, XCAR (XCAR (extra)))))
        prev = extra, extra = XCDR (extra);
@@ -729,6 +731,8 @@ font_put_extra (font, prop, val)
       return val;
     }
   XSETCDR (slot, val);
+  if (NILP (val))
+    ASET (font, FONT_EXTRA_INDEX, Fdelq (slot, extra));
   return val;
 }
 
@@ -3078,13 +3082,20 @@ font_clear_prop (attrs, prop)
 
   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)
     {