summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2017-02-28 14:00:17 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2017-02-28 14:00:17 -0500
commitc2469c50e80f4a18448e6f5f45e960cf00944822 (patch)
tree402e98753eff5cbb76d1813d29598d3b36f29b64
parentf8e36e04c4a11912d9f996a1fbf2870cf822151f (diff)
downloademacs-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.c10
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,