emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src font.c


From: Kenichi Handa
Subject: [Emacs-diffs] emacs/src font.c
Date: Thu, 09 Apr 2009 02:40:39 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kenichi Handa <handa>   09/04/09 02:40:39

Modified files:
        src            : font.c 

Log message:
        (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.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/font.c?cvsroot=emacs&r1=1.119&r2=1.120

Patches:
Index: font.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/font.c,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -b -r1.119 -r1.120
--- font.c      24 Mar 2009 00:56:34 -0000      1.119
+++ font.c      9 Apr 2009 02:40:39 -0000       1.120
@@ -719,6 +719,8 @@
     {
       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 @@
       return val;
     }
   XSETCDR (slot, val);
+  if (NILP (val))
+    ASET (font, FONT_EXTRA_INDEX, Fdelq (slot, extra));
   return val;
 }
 
@@ -3078,12 +3082,19 @@
 
   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;
+  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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]