@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
+@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/positions
@node Positions, Markers, Frames, Top
be a position (an integer), but accept a marker as a substitute,
normally ignore which buffer the marker points into; they convert the
marker to an integer, and use that integer, exactly as if you had
-passed the integer as the argument. Markers used this way usually
-point to a position in the buffer that the function will operate on,
-but if not, they are converted to integers anyway. @xref{Markers}.
+passed the integer as the argument, even if the marker points to the
+``wrong'' buffer. A marker that points nowhere cannot convert to an
+integer; using it instead of an integer causes an error.
+@xref{Markers}.
See also the ``field'' feature (@pxref{Fields}), which provides
functions that are used by many cursor-motion commands.
@node Motion
@section Motion
+@cindex motion by chars, words, lines, lists
Motion functions change the value of point, either relative to the
current value of point, relative to the beginning or end of the buffer,
@end defvar
@defvar inhibit-field-text-motion
-@tindex inhibit-field-text-motion
If this variable is non-@code{nil}, certain motion functions including
@code{forward-word}, @code{forward-sentence}, and
@code{forward-paragraph} ignore field boundaries.
@node Buffer End Motion
@subsection Motion to an End of the Buffer
+@cindex move to beginning or end of buffer
To move point to the beginning of the buffer, write:
@end deffn
@defun line-beginning-position &optional count
-@tindex line-beginning-position
Return the position that @code{(beginning-of-line @var{count})}
would move to.
@end defun
@end deffn
@defun line-end-position &optional count
-@tindex line-end-position
Return the position that @code{(end-of-line @var{count})}
would move to.
@end defun
@defun line-number-at-pos &optional pos
@cindex line number
This function returns the line number in the current buffer
-corresponding the buffer position @var{pos}. If @var{pos} is @code{nil}
+corresponding to the buffer position @var{pos}. If @var{pos} is @code{nil}
or omitted, the current buffer position is used.
@end defun
When you use @code{compute-motion} for the minibuffer, you need to use
@code{minibuffer-prompt-width} to get the horizontal position of the
-beginning of the first screen line. @xref{Minibuffer Misc}.
+beginning of the first screen line. @xref{Minibuffer Contents}.
@end defun
@node List Motion
@cindex sexp motion
@cindex Lisp expression motion
@cindex list motion
+@cindex balanced parenthesis motion
Here are several functions concerned with balanced-parenthesis
expressions (also called @dfn{sexps} in connection with moving across
@deffn Command forward-sexp &optional arg
This function moves forward across @var{arg} (default 1) balanced expressions.
Balanced expressions include both those delimited by parentheses and
-other kinds, such as words and string constants
+other kinds, such as words and string constants.
@xref{Parsing Expressions}. For example,
@example
@end deffn
@defopt defun-prompt-regexp
-If non-@code{nil}, this variable holds a regular expression that
-specifies what text can appear before the open-parenthesis that starts a
-defun. That is to say, a defun begins on a line that starts with a
-match for this regular expression, followed by a character with
-open-parenthesis syntax.
+If non-@code{nil}, this buffer-local variable holds a regular
+expression that specifies what text can appear before the
+open-parenthesis that starts a defun. That is to say, a defun begins
+on a line that starts with a match for this regular expression,
+followed by a character with open-parenthesis syntax.
@end defopt
@defopt open-paren-in-column-0-is-defun-start
@end defopt
@defvar beginning-of-defun-function
-@tindex beginning-of-defun-function
If non-@code{nil}, this variable holds a function for finding the
beginning of a defun. The function @code{beginning-of-defun}
calls this function instead of using its normal method.
@end defvar
@defvar end-of-defun-function
-@tindex end-of-defun-function
If non-@code{nil}, this variable holds a function for finding the end of
a defun. The function @code{end-of-defun} calls this function instead
of using its normal method.
described elsewhere (see @ref{Window Configurations}, and @pxref{Frame
Configurations}).
-@defspec save-excursion forms@dots{}
+@defspec save-excursion body@dots{}
@cindex mark excursion
@cindex point excursion
-@cindex current buffer excursion
The @code{save-excursion} special form saves the identity of the current
buffer and the values of point and the mark in it, evaluates
-@var{forms}, and finally restores the buffer and its saved values of
+@var{body}, and finally restores the buffer and its saved values of
point and the mark. All three saved values are restored even in case of
an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}).
use @code{save-window-excursion} inside @code{save-excursion}
(@pxref{Window Configurations}).
-The value returned by @code{save-excursion} is the result of the last of
-@var{forms}, or @code{nil} if no @var{forms} are given.
+The value returned by @code{save-excursion} is the result of the last
+form in @var{body}, or @code{nil} if no body forms were given.
@example
@group