diff options
| author | Stefan Monnier <monnier@iro.umontreal.ca> | 2017-02-28 14:00:17 -0500 |
|---|---|---|
| committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2017-02-28 14:00:17 -0500 |
| commit | c2469c50e80f4a18448e6f5f45e960cf00944822 (patch) | |
| tree | 402e98753eff5cbb76d1813d29598d3b36f29b64 | |
| parent | f8e36e04c4a11912d9f996a1fbf2870cf822151f (diff) | |
| download | emacs-c2469c50e80f4a18448e6f5f45e960cf00944822.tar.gz | |
* src/xdisp.c (overlay_arrows_changed_p): Fix return value and doc
(update_overlay_arrows): Skip non-markers.
| -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) /* Return true if any overlay_arrows have moved or overlay-arrow-string - has changed. */ + has changed. + If SET_REDISPLAY is true, additionally, set the `redisplay' bit in those + buffers that are affected. */ static bool overlay_arrows_changed_p (bool set_redisplay) { Lisp_Object vlist; + bool changed = false; for (vlist = Voverlay_arrow_variable_list; CONSP (vlist); @@ -13370,12 +13373,13 @@ overlay_arrows_changed_p (bool set_redisplay) { if (buf) bset_redisplay (buf); + changed = true; } else return true; } } - return false; + return changed; } /* Mark overlay arrows to be updated on next redisplay. */ @@ -13397,6 +13401,8 @@ update_overlay_arrows (int up_to_date) if (up_to_date > 0) { Lisp_Object val = find_symbol_value (var); + if (!MARKERP (val)) + continue; Fput (var, Qlast_arrow_position, COERCE_MARKER (val)); Fput (var, Qlast_arrow_string, |
