]> code.delx.au - gnu-emacs/blobdiff - lispref/markers.texi
(Killing Buffers): Add buffer-save-without-query.
[gnu-emacs] / lispref / markers.texi
index 508955e39df76d2373f7896207401879452ed7c6..859edb0b6b83062bdd685e284c80df3b647a3a56 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc. 
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/markers
 @node Markers, Text, Positions, Top
@@ -28,10 +28,13 @@ deleted, so that it stays with the two characters on either side of it.
 @node Overview of Markers
 @section Overview of Markers
 
-  A marker specifies a buffer and a position in that buffer.  The marker
-can be used to represent a position in the functions that require one,
-just as an integer could be used.  @xref{Positions}, for a complete
-description of positions.
+  A marker specifies a buffer and a position in that buffer.  The
+marker can be used to represent a position in the functions that
+require one, just as an integer could be used.  In that case, the
+marker's buffer is normally ignored.  Of course, a marker used in this
+way usually points to a position in the buffer that the function
+operates on, but that is entirely the programmer's responsibility.
+@xref{Positions}, for a complete description of positions.
 
   A marker has two attributes: the marker position, and the marker
 buffer.  The marker position is an integer that is equivalent (at a
@@ -144,6 +147,9 @@ to the present position of point, or to the beginning or end of the
 accessible portion of the buffer, or to the same place as another given
 marker.
 
+The next four functions all return markers with insertion type
+@code{nil}.  @xref{Marker Insertion Types}.
+
 @defun make-marker
 This function returns a newly created marker that does not point
 anywhere.
@@ -201,7 +207,7 @@ chapter.
 @end example
 @end defun
 
-@defun copy-marker marker-or-integer insertion-type
+@defun copy-marker marker-or-integer &optional insertion-type
 If passed a marker as its argument, @code{copy-marker} returns a
 new marker that points to the same place and the same buffer as does
 @var{marker-or-integer}.  If passed an integer as its argument,
@@ -331,6 +337,11 @@ text is inserted at its position.  If @var{type} is @code{nil},
 This function reports the current insertion type of @var{marker}.
 @end defun
 
+Most functions that create markers, without an argument allowing to
+specify the insertion type, create them with insertion type
+@code{nil}.  Also, the mark has, by default, insertion type
+@code{nil}.
+
 @node Moving Markers
 @section Moving Marker Positions
 
@@ -432,10 +443,11 @@ programming.  So we do not describe it here.
 @cindex current buffer mark
 This function returns the current buffer's mark position as an integer.
 
-If the mark is inactive, @code{mark} normally signals an error.
-However, if @var{force} is non-@code{nil}, then @code{mark} returns the
-mark position anyway---or @code{nil}, if the mark is not yet set for
-this buffer.
+If Transient Mark mode is enabled, @code{mark-even-if-inactive} is
+@code{nil} and and the mark is inactive, @code{mark} normally signals
+an error.  However, if @var{force} is non-@code{nil}, then @code{mark}
+returns the mark position anyway---or @code{nil}, if the mark is not
+yet set for this buffer.
 @end defun
 
 @defun mark-marker
@@ -595,7 +607,7 @@ marks of the current buffer, most recent first.
 @example
 @group
 mark-ring
-@result{} (#<marker at 11050 in markers.texi> 
+@result{} (#<marker at 11050 in markers.texi>
     #<marker at 10832 in markers.texi>
     @dots{})
 @end group
@@ -617,20 +629,21 @@ Various functions operate on text delimited by point and the mark, but
 only those functions specifically related to the region itself are
 described here.
 
+The next two functions signal an error if the mark does not point
+anywhere.  If Transient Mark mode is enabled and
+@code{mark-even-if-inactive} is @code{nil}, they also signal an error
+if the mark is inactive.
+
 @defun region-beginning
 This function returns the position of the beginning of the region (as
 an integer).  This is the position of either point or the mark,
 whichever is smaller.
-
-If the mark does not point anywhere, an error is signaled.
 @end defun
 
 @defun region-end
 This function returns the position of the end of the region (as an
 integer).  This is the position of either point or the mark, whichever is
 larger.
-
-If the mark does not point anywhere, an error is signaled.
 @end defun
 
   Few programs need to use the @code{region-beginning} and
@@ -639,3 +652,7 @@ should normally use @code{interactive} with the @samp{r} specification
 to find the beginning and end of the region.  This lets other Lisp
 programs specify the bounds explicitly as arguments.  (@xref{Interactive
 Codes}.)
+
+@ignore
+   arch-tag: b1ba2e7a-a0f3-4c5e-875c-7d8e22d73299
+@end ignore