summaryrefslogtreecommitdiff
path: root/src/marker.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-03-30 14:23:55 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-03-30 14:26:26 -0700
commit6f66a43d7ad6cada2b7dbb6d07efe36be1dc7ecb (patch)
tree1a4fe997bc0d2997c3f7df516bba4331c3dccbbd /src/marker.c
parent96b8747d5c5d747af13fd84d8fe0308ef2a0ea7a (diff)
downloademacs-6f66a43d7ad6cada2b7dbb6d07efe36be1dc7ecb.tar.gz
Centralize Bug#30931 fix
* src/marker.c (detach_marker): New function. * src/editfns.c (save_restriction_restore): * src/insdel.c (signal_before_change): Use it.
Diffstat (limited to 'src/marker.c')
-rw-r--r--src/marker.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/marker.c b/src/marker.c
index 2a45ae636ed..2d5b05cc2b8 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -560,7 +560,7 @@ POSITION is nil, makes marker point nowhere so it no longer slows down
editing in any buffer. Returns MARKER. */)
(Lisp_Object marker, Lisp_Object position, Lisp_Object buffer)
{
- return set_marker_internal (marker, position, buffer, 0);
+ return set_marker_internal (marker, position, buffer, false);
}
/* Like the above, but won't let the position be outside the visible part. */
@@ -569,7 +569,7 @@ Lisp_Object
set_marker_restricted (Lisp_Object marker, Lisp_Object position,
Lisp_Object buffer)
{
- return set_marker_internal (marker, position, buffer, 1);
+ return set_marker_internal (marker, position, buffer, true);
}
/* Set the position of MARKER, specifying both the
@@ -616,6 +616,15 @@ set_marker_restricted_both (Lisp_Object marker, Lisp_Object buffer,
return marker;
}
+/* Detach a marker so that it no longer points anywhere and no longer
+ slows down editing. Do not free the marker, though, as a change
+ function could have inserted it into an undo list (Bug#30931). */
+void
+detach_marker (Lisp_Object marker)
+{
+ Fset_marker (marker, Qnil, Qnil);
+}
+
/* Remove MARKER from the chain of whatever buffer it is in,
leaving it points to nowhere. This is called during garbage
collection, so we must be careful to ignore and preserve