Mercurial > emacs
changeset 58240:cbd61b964e09
(store_mode_line_string, produce_stretch_glyph):
Use Fsafe_plist_get.
(note_mode_line_or_margin_highlight, note_mouse_highlight):
Fix image map element parsing. Use Fsafe_plist_get.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Mon, 15 Nov 2004 15:21:34 +0000 |
parents | 6c9552cf734a |
children | 4aa6d60fc66c |
files | src/xdisp.c |
diffstat | 1 files changed, 23 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Mon Nov 15 15:21:14 2004 +0000 +++ b/src/xdisp.c Mon Nov 15 15:21:34 2004 +0000 @@ -15818,7 +15818,7 @@ props = mode_line_string_face_prop; else if (!NILP (mode_line_string_face)) { - Lisp_Object face = Fplist_get (props, Qface); + Lisp_Object face = Fsafe_plist_get (props, Qface); props = Fcopy_sequence (props); if (NILP (face)) face = mode_line_string_face; @@ -15843,7 +15843,7 @@ Lisp_Object face; if (NILP (props)) props = Ftext_properties_at (make_number (0), lisp_string); - face = Fplist_get (props, Qface); + face = Fsafe_plist_get (props, Qface); if (NILP (face)) face = mode_line_string_face; else @@ -18624,14 +18624,14 @@ plist = XCDR (it->object); /* Compute the width of the stretch. */ - if ((prop = Fplist_get (plist, QCwidth), !NILP (prop)) + if ((prop = Fsafe_plist_get (plist, QCwidth), !NILP (prop)) && calc_pixel_width_or_height (&tem, it, prop, font, 1, 0)) { /* Absolute width `:width WIDTH' specified and valid. */ zero_width_ok_p = 1; width = (int)tem; } - else if (prop = Fplist_get (plist, QCrelative_width), + else if (prop = Fsafe_plist_get (plist, QCrelative_width), NUMVAL (prop) > 0) { /* Relative width `:relative-width FACTOR' specified and valid. @@ -18655,7 +18655,7 @@ x_produce_glyphs (&it2); width = NUMVAL (prop) * it2.pixel_width; } - else if ((prop = Fplist_get (plist, QCalign_to), !NILP (prop)) + else if ((prop = Fsafe_plist_get (plist, QCalign_to), !NILP (prop)) && calc_pixel_width_or_height (&tem, it, prop, font, 1, &align_to)) { if (it->glyph_row == NULL || !it->glyph_row->mode_line_p) @@ -18675,13 +18675,13 @@ width = 1; /* Compute height. */ - if ((prop = Fplist_get (plist, QCheight), !NILP (prop)) + if ((prop = Fsafe_plist_get (plist, QCheight), !NILP (prop)) && calc_pixel_width_or_height (&tem, it, prop, font, 0, 0)) { height = (int)tem; zero_height_ok_p = 1; } - else if (prop = Fplist_get (plist, QCrelative_height), + else if (prop = Fsafe_plist_get (plist, QCrelative_height), NUMVAL (prop) > 0) height = FONT_HEIGHT (font) * NUMVAL (prop); else @@ -18693,7 +18693,7 @@ /* Compute percentage of height used for ascent. If `:ascent ASCENT' is present and valid, use that. Otherwise, derive the ascent from the font in use. */ - if (prop = Fplist_get (plist, QCascent), + if (prop = Fsafe_plist_get (plist, QCascent), NUMVAL (prop) > 0 && NUMVAL (prop) <= 100) ascent = height * NUMVAL (prop) / 100.0; else if (!NILP (prop) @@ -20897,7 +20897,7 @@ if (IMAGEP (object)) { Lisp_Object image_map, hotspot; - if ((image_map = Fplist_get (XCDR (object), QCmap), + if ((image_map = Fsafe_plist_get (XCDR (object), QCmap), !NILP (image_map)) && (hotspot = find_hot_spot (image_map, dx, dy), CONSP (hotspot)) @@ -20909,12 +20909,14 @@ /* Could check AREA_ID to see if we enter/leave this hot-spot. If so, we could look for mouse-enter, mouse-leave properties in PLIST (and do something...). */ - if ((plist = XCDR (hotspot), CONSP (plist))) - { - pointer = Fplist_get (plist, Qpointer); + hotspot = XCDR (hotspot); + if (CONSP (hotspot) + && (plist = XCAR (hotspot), CONSP (plist))) + { + pointer = Fsafe_plist_get (plist, Qpointer); if (NILP (pointer)) pointer = Qhand; - help = Fplist_get (plist, Qhelp_echo); + help = Fsafe_plist_get (plist, Qhelp_echo); if (!NILP (help)) { help_echo_string = help; @@ -20925,7 +20927,7 @@ } } if (NILP (pointer)) - pointer = Fplist_get (XCDR (object), QCpointer); + pointer = Fsafe_plist_get (XCDR (object), QCpointer); } } @@ -21076,7 +21078,7 @@ if (img != NULL && IMAGEP (img->spec)) { Lisp_Object image_map, hotspot; - if ((image_map = Fplist_get (XCDR (img->spec), QCmap), + if ((image_map = Fsafe_plist_get (XCDR (img->spec), QCmap), !NILP (image_map)) && (hotspot = find_hot_spot (image_map, glyph->slice.x + dx, @@ -21090,12 +21092,14 @@ /* Could check AREA_ID to see if we enter/leave this hot-spot. If so, we could look for mouse-enter, mouse-leave properties in PLIST (and do something...). */ - if ((plist = XCDR (hotspot), CONSP (plist))) + hotspot = XCDR (hotspot); + if (CONSP (hotspot) + && (plist = XCAR (hotspot), CONSP (plist))) { - pointer = Fplist_get (plist, Qpointer); + pointer = Fsafe_plist_get (plist, Qpointer); if (NILP (pointer)) pointer = Qhand; - help_echo_string = Fplist_get (plist, Qhelp_echo); + help_echo_string = Fsafe_plist_get (plist, Qhelp_echo); if (!NILP (help_echo_string)) { help_echo_window = window; @@ -21105,7 +21109,7 @@ } } if (NILP (pointer)) - pointer = Fplist_get (XCDR (img->spec), QCpointer); + pointer = Fsafe_plist_get (XCDR (img->spec), QCpointer); } }