diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 4e87001abf7..1f8878408be 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -13338,12 +13338,15 @@ overlay_arrow_in_current_buffer_p (void) | |||
| 13338 | 13338 | ||
| 13339 | 13339 | ||
| 13340 | /* Return true if any overlay_arrows have moved or overlay-arrow-string | 13340 | /* Return true if any overlay_arrows have moved or overlay-arrow-string |
| 13341 | has changed. */ | 13341 | has changed. |
| 13342 | If SET_REDISPLAY is true, additionally, set the `redisplay' bit in those | ||
| 13343 | buffers that are affected. */ | ||
| 13342 | 13344 | ||
| 13343 | static bool | 13345 | static bool |
| 13344 | overlay_arrows_changed_p (bool set_redisplay) | 13346 | overlay_arrows_changed_p (bool set_redisplay) |
| 13345 | { | 13347 | { |
| 13346 | Lisp_Object vlist; | 13348 | Lisp_Object vlist; |
| 13349 | bool changed = false; | ||
| 13347 | 13350 | ||
| 13348 | for (vlist = Voverlay_arrow_variable_list; | 13351 | for (vlist = Voverlay_arrow_variable_list; |
| 13349 | CONSP (vlist); | 13352 | CONSP (vlist); |
| @@ -13370,12 +13373,13 @@ overlay_arrows_changed_p (bool set_redisplay) | |||
| 13370 | { | 13373 | { |
| 13371 | if (buf) | 13374 | if (buf) |
| 13372 | bset_redisplay (buf); | 13375 | bset_redisplay (buf); |
| 13376 | changed = true; | ||
| 13373 | } | 13377 | } |
| 13374 | else | 13378 | else |
| 13375 | return true; | 13379 | return true; |
| 13376 | } | 13380 | } |
| 13377 | } | 13381 | } |
| 13378 | return false; | 13382 | return changed; |
| 13379 | } | 13383 | } |
| 13380 | 13384 | ||
| 13381 | /* Mark overlay arrows to be updated on next redisplay. */ | 13385 | /* Mark overlay arrows to be updated on next redisplay. */ |
| @@ -13397,6 +13401,8 @@ update_overlay_arrows (int up_to_date) | |||
| 13397 | if (up_to_date > 0) | 13401 | if (up_to_date > 0) |
| 13398 | { | 13402 | { |
| 13399 | Lisp_Object val = find_symbol_value (var); | 13403 | Lisp_Object val = find_symbol_value (var); |
| 13404 | if (!MARKERP (val)) | ||
| 13405 | continue; | ||
| 13400 | Fput (var, Qlast_arrow_position, | 13406 | Fput (var, Qlast_arrow_position, |
| 13401 | COERCE_MARKER (val)); | 13407 | COERCE_MARKER (val)); |
| 13402 | Fput (var, Qlast_arrow_string, | 13408 | Fput (var, Qlast_arrow_string, |