diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/xfaces.c | 29 |
2 files changed, 27 insertions, 12 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2a4ce099021..eb578278bea 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2014-10-02 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to | ||
| 4 | make a font_object from a tty frame (Bug#18573). | ||
| 5 | (Finternal_set_lisp_face_attribute): Add FIXME comment. | ||
| 6 | |||
| 1 | 2014-10-02 Dmitry Antipov <dmantipov@yandex.ru> | 7 | 2014-10-02 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 8 | ||
| 3 | * alloc.c (mark_overlay): Assume that overlay boundaries are | 9 | * alloc.c (mark_overlay): Assume that overlay boundaries are |
| @@ -398,7 +404,7 @@ | |||
| 398 | * macfont.m (macfont_close): Release and free font-specific data | 404 | * macfont.m (macfont_close): Release and free font-specific data |
| 399 | only if it wasn't previously freed. | 405 | only if it wasn't previously freed. |
| 400 | 406 | ||
| 401 | 2014-09-22 David Caldwell <david@porkrind.org> (tiny change) | 407 | 2014-09-22 David Caldwell <david@porkrind.org> (tiny change) |
| 402 | 408 | ||
| 403 | * unexmacosx.c (dump_it): Improve error message. | 409 | * unexmacosx.c (dump_it): Improve error message. |
| 404 | 410 | ||
| @@ -9808,7 +9814,7 @@ | |||
| 9808 | * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically | 9814 | * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically |
| 9809 | scoped code (bug#11258). | 9815 | scoped code (bug#11258). |
| 9810 | 9816 | ||
| 9811 | 2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change) | 9817 | 2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change) |
| 9812 | 9818 | ||
| 9813 | * nsterm.m (last_window): New variable. | 9819 | * nsterm.m (last_window): New variable. |
| 9814 | (EV_TRAILER2): New macro. | 9820 | (EV_TRAILER2): New macro. |
diff --git a/src/xfaces.c b/src/xfaces.c index 73704bbba8e..6afa0a2953d 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -3112,17 +3112,26 @@ FRAME 0 means change the face on all frames, and change the default | |||
| 3112 | f = XFRAME (selected_frame); | 3112 | f = XFRAME (selected_frame); |
| 3113 | else | 3113 | else |
| 3114 | f = XFRAME (frame); | 3114 | f = XFRAME (frame); |
| 3115 | if (! FONT_OBJECT_P (value)) | ||
| 3116 | { | ||
| 3117 | Lisp_Object *attrs = XVECTOR (lface)->contents; | ||
| 3118 | Lisp_Object font_object; | ||
| 3119 | 3115 | ||
| 3120 | font_object = font_load_for_lface (f, attrs, value); | 3116 | /* FIXME: |
| 3121 | if (NILP (font_object)) | 3117 | If frame is t, and selected frame is a tty frame, the font |
| 3122 | signal_error ("Font not available", value); | 3118 | can't be realized. An improvement would be to loop over frames |
| 3123 | value = font_object; | 3119 | for a non-tty frame and use that. See discussion in |
| 3124 | } | 3120 | bug#18573. */ |
| 3125 | set_lface_from_font (f, lface, value, 1); | 3121 | if (f->terminal->type != output_termcap) |
| 3122 | { | ||
| 3123 | if (! FONT_OBJECT_P (value)) | ||
| 3124 | { | ||
| 3125 | Lisp_Object *attrs = XVECTOR (lface)->contents; | ||
| 3126 | Lisp_Object font_object; | ||
| 3127 | |||
| 3128 | font_object = font_load_for_lface (f, attrs, value); | ||
| 3129 | if (NILP (font_object)) | ||
| 3130 | signal_error ("Font not available", value); | ||
| 3131 | value = font_object; | ||
| 3132 | } | ||
| 3133 | set_lface_from_font (f, lface, value, 1); | ||
| 3134 | } | ||
| 3126 | } | 3135 | } |
| 3127 | else | 3136 | else |
| 3128 | ASET (lface, LFACE_FONT_INDEX, value); | 3137 | ASET (lface, LFACE_FONT_INDEX, value); |