aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/font.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/font.c b/src/font.c
index 964028ccf00..992f9e03fea 100644
--- a/src/font.c
+++ b/src/font.c
@@ -710,7 +710,9 @@ font_prop_validate (int idx, Lisp_Object prop, Lisp_Object val)
710 710
711 711
712/* Store VAL as a value of extra font property PROP in FONT while 712/* Store VAL as a value of extra font property PROP in FONT while
713 keeping the sorting order. Don't check the validity of VAL. */ 713 keeping the sorting order. Don't check the validity of VAL. If
714 VAL is Qunbound, delete the slot for PROP from the list of extra
715 properties. */
714 716
715Lisp_Object 717Lisp_Object
716font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val) 718font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val)
@@ -722,6 +724,8 @@ font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val)
722 { 724 {
723 Lisp_Object prev = Qnil; 725 Lisp_Object prev = Qnil;
724 726
727 if (EQ (val, Qunbound))
728 return val;
725 while (CONSP (extra) 729 while (CONSP (extra)
726 && NILP (Fstring_lessp (prop, XCAR (XCAR (extra))))) 730 && NILP (Fstring_lessp (prop, XCAR (XCAR (extra)))))
727 prev = extra, extra = XCDR (extra); 731 prev = extra, extra = XCDR (extra);
@@ -734,7 +738,7 @@ font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val)
734 return val; 738 return val;
735 } 739 }
736 XSETCDR (slot, val); 740 XSETCDR (slot, val);
737 if (NILP (val)) 741 if (EQ (val, Qunbound))
738 ASET (font, FONT_EXTRA_INDEX, Fdelq (slot, extra)); 742 ASET (font, FONT_EXTRA_INDEX, Fdelq (slot, extra));
739 return val; 743 return val;
740} 744}
@@ -3055,7 +3059,7 @@ font_clear_prop (Lisp_Object *attrs, enum font_property_index prop)
3055 if (! NILP (Ffont_get (font, QCname))) 3059 if (! NILP (Ffont_get (font, QCname)))
3056 { 3060 {
3057 font = copy_font_spec (font); 3061 font = copy_font_spec (font);
3058 font_put_extra (font, QCname, Qnil); 3062 font_put_extra (font, QCname, Qunbound);
3059 } 3063 }
3060 3064
3061 if (NILP (AREF (font, prop)) 3065 if (NILP (AREF (font, prop))