summaryrefslogtreecommitdiff
path: root/src/intervals.c
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2013-08-29 20:36:54 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2013-08-29 20:36:54 +0400
commit032f74518a71a7fe0afd2e7d0eee11bfb7ae90d9 (patch)
treecec342cb647d9242855b8f0d4b5a9783d8851176 /src/intervals.c
parent3f940c5aa6fc1d03e6658cda5c440fb6bd75e4c5 (diff)
downloademacs-032f74518a71a7fe0afd2e7d0eee11bfb7ae90d9.tar.gz
* intervals.c (set_point_from_marker): New function.
* editfns.c (Fgoto_char): * process.c (Finternal_default_process_filter): * window.c (select_window_1): Use it. * buffer.h (set_point_from_marker): Add prototype.
Diffstat (limited to 'src/intervals.c')
-rw-r--r--src/intervals.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/intervals.c b/src/intervals.c
index f2ddcd01507..671b2a3d527 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1821,6 +1821,18 @@ set_point (ptrdiff_t charpos)
set_point_both (charpos, buf_charpos_to_bytepos (current_buffer, charpos));
}
+/* Set PT from MARKER's clipped position. */
+
+void
+set_point_from_marker (Lisp_Object marker)
+{
+ if (XMARKER (marker)->buffer != current_buffer)
+ error ("Marker points into wrong buffer");
+ set_point_both
+ (clip_to_bounds (BEGV, marker_position (marker), ZV),
+ clip_to_bounds (BEGV_BYTE, marker_byte_position (marker), ZV_BYTE));
+}
+
/* If there's an invisible character at position POS + TEST_OFFS in the
current buffer, and the invisible property has a `stickiness' such that
inserting a character at position POS would inherit the property it,