diff options
| author | YAMAMOTO Mitsuharu | 2019-06-20 12:12:01 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2019-06-20 12:12:01 +0900 |
| commit | fdbbbf94a5ed233571478d94c812644bdfaeb600 (patch) | |
| tree | b2a3da89298a8547c31822af20597872258ea636 | |
| parent | 0701634aa788b316f331ccbb6c44dfd8304a271d (diff) | |
| download | emacs-fdbbbf94a5ed233571478d94c812644bdfaeb600.tar.gz emacs-fdbbbf94a5ed233571478d94c812644bdfaeb600.zip | |
Change font_put_extra value for property removal from Qnil to Qunbound
* font.c (font_put_extra): If VAL is Qunbound, delete the slot for PROP from
the list of extra properties. Previous value Qnil is valid as boolean.
(font_clear_prop): Changed argument of font_put_extra for property removal.
| -rw-r--r-- | src/font.c | 10 |
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 | ||
| 715 | Lisp_Object | 717 | Lisp_Object |
| 716 | font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val) | 718 | font_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)) |