Commit 969fe9b5 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

*** empty log message ***

parent b933f645
......@@ -54,7 +54,7 @@ of abbrevs when their abbreviations are inserted into a buffer.
If the value is @code{nil}, abbrevs may be defined, but they are not
expanded automatically.
This variable automatically becomes local when set in any fashion.
This variable automatically becomes buffer-local when set in any fashion.
@end defvar
@defvar default-abbrev-mode
......@@ -337,10 +337,6 @@ it is the local abbrev table in all buffers in Fundamental mode.
This is the local abbrev table used in Text mode.
@end defvar
@defvar c-mode-abbrev-table
This is the local abbrev table used in C mode.
@end defvar
@defvar lisp-mode-abbrev-table
This is the local abbrev table used in Lisp mode and Emacs Lisp mode.
@end defvar
......@@ -143,6 +143,9 @@ an argument. Also, they do not discard text properties from the result.
This means that if you insert text with text properties into the minibuffer,
the minibuffer value really will contain text properties.
@item
Only the simple menu item format is supported (@pxref{Simple Menu Items}).
@item
You can still bind @code{x-resource-class} around a call to
@code{x-get-resource}, but it won't do anything special.
......@@ -225,7 +228,7 @@ special events. If you want to hold a party in Emacs, please let us
know.
@item
You can't do date arithmentic with @code{encode-time} any more.
You can't do date arithmetic with @code{encode-time} any more.
@item
The functions @code{command-execute} and @code{call-interactively} no
......
......@@ -294,8 +294,7 @@ The standard definition of this function is as follows:
@smallexample
@group
(defun make-backup-file-name (file)
"Create the non-numeric backup file name for FILE.
@dots{}"
"Create the non-numeric backup file name for FILE@enddots{}"
(concat file "~"))
@end group
@end smallexample
......@@ -442,8 +441,7 @@ The standard definition of this function is as follows:
@group
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves \
of current buffer.
@dots{}"
of current buffer@enddots{}"
(if buffer-file-name
@end group
@group
......@@ -550,7 +548,7 @@ buffer as of the last time it was read in, saved, or auto-saved. This is
used to detect a substantial decrease in size, and turn off auto-saving
in response.
If it is -1, that means auto-saving is temporarily shut off in this
If it is @minus{}1, that means auto-saving is temporarily shut off in this
buffer due to a substantial deletion. Explicitly saving the buffer
stores a positive value in this variable, thus reenabling auto-saving.
Turning auto-save mode off or on also alters this variable.
......
......@@ -130,11 +130,11 @@ string abridged):
@end example
@noindent
This function binds a local variable to the current buffer, and then
@code{save-current-buffer} records which buffer that was. Next,
@code{set-buffer} makes another buffer current. Finally,
This function binds a local variable to record the current buffer, and
then @code{save-current-buffer} arranges to make it current again.
Next, @code{set-buffer} makes the specified buffer current. Finally,
@code{insert-buffer-substring} copies the string from the original
current buffer to the new current buffer.
current buffer to the specified (and now current) buffer.
If the buffer appended to happens to be displayed in some window,
the next redisplay will show how its text has changed. Otherwise, you
......@@ -204,10 +204,10 @@ existing buffer.
@tindex save-current-buffer
@defmac save-current-buffer body...
The @code{save-current-buffer} macro saves the identity of the current
buffer, evaluates the @var{body} forms, and finally restores the buffer.
The return value is the value of the last form in @var{body}. The
current buffer is restored even in case of an abnormal exit via
@code{throw} or error (@pxref{Nonlocal Exits}).
buffer, evaluates the @var{body} forms, and finally restores that buffer
as current. The return value is the value of the last form in
@var{body}. The current buffer is restored even in case of an abnormal
exit via @code{throw} or error (@pxref{Nonlocal Exits}).
If the buffer that used to be current has been killed by the time of
exit from @code{save-current-buffer}, then it is not made current again,
......@@ -383,10 +383,10 @@ buffer-file-name
@end example
It is risky to change this variable's value without doing various other
things. See the definition of @code{set-visited-file-name} in
@file{files.el}; some of the things done there, such as changing the
buffer name, are not strictly necessary, but others are essential to
avoid confusing Emacs.
things. Normally it is better to use @code{set-visited-file-name} (see
below); some of the things done there, such as changing the buffer name,
are not strictly necessary, but others are essential to avoid confusing
Emacs.
@end defvar
@defvar buffer-file-truename
......@@ -399,7 +399,7 @@ local, unaffected by @code{kill-local-variables}. @xref{Truenames}.
This buffer-local variable holds the file number and directory device
number of the file visited in the current buffer, or @code{nil} if no
file or a nonexistent file is visited. It is a permanent local,
unaffected by @code{kill-local-variables}. @xref{Truenames}.
unaffected by @code{kill-local-variables}.
The value is normally a list of the form @code{(@var{filenum}
@var{devnum})}. This pair of numbers uniquely identifies the file among
......@@ -443,9 +443,6 @@ the buffer as having no visited file.
@c Wordy to avoid overfull hbox. --rjc 16mar92
When the function @code{set-visited-file-name} is called interactively, it
prompts for @var{filename} in the minibuffer.
See also @code{clear-visited-file-modtime} and
@code{verify-visited-file-modtime} in @ref{Buffer Modification}.
@end deffn
@defvar list-buffers-directory
......@@ -669,19 +666,23 @@ buried (see @code{bury-buffer}, below). Several functions, notably
@code{other-buffer}, use this ordering. A buffer list displayed for the
user also follows this order.
@defun buffer-list &optional frame
This function returns a list of all buffers, including those whose names
begin with a space. The elements are actual buffers, not their names.
In addition to the fundamental Emacs buffer list, each frame has its
own version of the buffer list, in which the buffers that have been
selected in that frame come first, starting with the buffers most
recently selected @emph{in that frame}. (This order is recorded in
@var{frame}'s @code{buffer-list} frame parameter; see @ref{Window Frame
Parameters}.) The buffers that were never selected in @var{frame} come
afterward, ordered according to the fundamental Emacs buffer list.
If @var{frame} is @code{nil}, all the buffers appear in order of most
recent selection, regardless of which frames they were selected in.
@defun buffer-list &optional frame
This function returns the buffer list, including all buffers, even those
whose names begin with a space. The elements are actual buffers, not
their names.
If @var{frame} is a frame, then the buffers that have been selected in
@var{frame} all come at the front of the list, ordered by most recent
selection in @var{frame}. (This order is recorded in @var{frame}'s
@code{buffer-list} frame parameter; see @ref{X Frame Parameters}.) The
buffers that were never selected in @var{frame} come afterward, ordered
according to most recent selection in other frames.
If @var{frame} is a frame, this returns @var{frame}'s buffer list. If
@var{frame} is @code{nil}, the fundamental Emacs buffer list is used:
all the buffers appear in order of most recent selection, regardless of
which frames they were selected in.
@example
@group
......@@ -735,7 +736,7 @@ buffer list that is not now visible in any window in a visible frame.
If the selected frame has a non-@code{nil} @code{buffer-predicate}
parameter, then @code{other-buffer} uses that predicate to decide which
buffers to consider. It calls the predicate once for each buffer, and
if the value is @code{nil}, that buffer is ignored. @xref{X Frame
if the value is @code{nil}, that buffer is ignored. @xref{Window Frame
Parameters}.
@c Emacs 19 feature
......@@ -946,7 +947,7 @@ themselves.
completely separate. They have different names, different values of
point, different narrowing, different markers and overlays (though
inserting or deleting text in either buffer relocates the markers and
overlays for both), different major modes, and different local
overlays for both), different major modes, and different buffer-local
variables.
An indirect buffer cannot visit a file, but its base buffer can. If
......
......@@ -2,7 +2,7 @@
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@node Calendar, Tips, Display, Top
@node Calendar, System Interface, Display, Top
@chapter Customizing the Calendar and Diary
There are many customizations that you can use to make the calendar and
......
This diff is collapsed.
......@@ -3,12 +3,12 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/compile
@node Byte Compilation, Debugging, Loading, Top
@node Byte Compilation, Advising, Loading, Top
@chapter Byte Compilation
@cindex byte-code
@cindex compilation
GNU Emacs Lisp has a @dfn{compiler} that translates functions written
Emacs Lisp has a @dfn{compiler} that translates functions written
in Lisp into a special representation called @dfn{byte-code} that can be
executed more efficiently. The compiler replaces Lisp function
definitions with byte-code. When a byte-code function is called, its
......@@ -21,15 +21,17 @@ transportable from machine to machine without recompilation. It is not,
however, as fast as true compiled code.
In general, any version of Emacs can run byte-compiled code produced
by recent earlier versions of Emacs, but the reverse is not true. In
particular, if you compile a program with Emacs 19.29, the compiled
code does not run in earlier versions.
by recent earlier versions of Emacs, but the reverse is not true. A
major incompatible change was introduced in Emacs version 19.29, and
files compiled with versions since that one will definitely not run
in earlier versions unless you specify a special option.
@iftex
@xref{Docs and Compilation}.
@end iftex
Files compiled in versions before 19.29 may not work in 19.29 if they
contain character constants with modifier bits, because the bits were
renumbered in Emacs 19.29.
In addition, the modifier bits in keyboard characters were renumbered in
Emacs 19.29; as a result, files compiled in versions before 19.29 will
not work in subsequent versions if they contain character constants with
modifier bits.
@xref{Compilation Errors}, for how to investigate errors occurring in
byte compilation.
......@@ -99,9 +101,10 @@ in a buffer called @samp{*Compile-Log*}. These report things in your
program that suggest a problem but are not necessarily erroneous.
@cindex macro compilation
Be careful when byte-compiling code that uses macros. Macro calls are
expanded when they are compiled, so the macros must already be defined
for proper compilation. For more details, see @ref{Compiling Macros}.
Be careful when writing macro calls in files that you may someday
byte-compile. Macro calls are expanded when they are compiled, so the
macros must already be defined for proper compilation. For more
details, see @ref{Compiling Macros}.
Normally, compiling a file does not evaluate the file's contents or
load the file. But it does execute any @code{require} calls at top
......@@ -200,10 +203,9 @@ This function recompiles every @samp{.el} file in @var{directory} that
needs recompilation. A file needs recompilation if a @samp{.elc} file
exists but is older than the @samp{.el} file.
When a @samp{.el} file has no corresponding @samp{.elc} file, then
@var{flag} says what to do. If it is @code{nil}, these files are
ignored. If it is non-@code{nil}, the user is asked whether to compile
each such file.
When a @samp{.el} file has no corresponding @samp{.elc} file, @var{flag}
says what to do. If it is @code{nil}, these files are ignored. If it
is non-@code{nil}, the user is asked whether to compile each such file.
The returned value of this command is unpredictable.
@end deffn
......@@ -225,12 +227,13 @@ status code.
@cindex byte-code interpreter
This function actually interprets byte-code. A byte-compiled function
is actually defined with a body that calls @code{byte-code}. Don't call
this function yourself. Only the byte compiler knows how to generate
this function yourself---only the byte compiler knows how to generate
valid calls to this function.
In newer Emacs versions (19 and up), byte-code is usually executed as
part of a byte-code function object, and only rarely due to an explicit
call to @code{byte-code}.
In Emacs version 18, byte-code was always executed by way of a call to
the function @code{byte-code}. Nowadays, byte-code is usually executed
as part of a byte-code function object, and only rarely through an
explicit call to @code{byte-code}.
@end defun
@node Docs and Compilation
......@@ -269,13 +272,14 @@ directory where you built it, you will experience this problem
occasionally if you edit and recompile Lisp files. When it happens, you
can cure the problem by reloading the file after recompiling it.
Byte-compiled files made with Emacs 19.29 will not load into older
versions because the older versions don't support this feature. You can
turn off this feature by setting @code{byte-compile-dynamic-docstrings}
to @code{nil}. Once this is done, you can compile files that will load
into older Emacs versions. You can do this globally, or for one source
file by specifying a file-local binding for the variable. Here's one
way to do that:
Byte-compiled files made with recent versions of Emacs (since 19.29)
will not load into older versions because the older versions don't
support this feature. You can turn off this feature at compile time by
setting @code{byte-compile-dynamic-docstrings} to @code{nil}; then you
can compile files that will load into older Emacs versions. You can do
this globally, or for one source file by specifying a file-local binding
for the variable. One way to do that is by adding this string to the
file's first line:
@example
-*-byte-compile-dynamic-docstrings: nil;-*-
......@@ -292,7 +296,9 @@ that are set up for dynamic loading of documentation strings.
use a special Lisp reader construct, @samp{#@@@var{count}}. This
construct skips the next @var{count} characters. It also uses the
@samp{#$} construct, which stands for ``the name of this file, as a
string.'' It is best not to use these constructs in Lisp source files.
string.'' It is usually best not to use these constructs in Lisp source
files, since they are not designed to be clear to humans reading the
file.
@node Dynamic Loading
@section Dynamic Loading of Individual Functions
......@@ -309,10 +315,10 @@ replace the place-holder.
The advantage of dynamic function loading is that loading the file
becomes much faster. This is a good thing for a file which contains
many separate commands, provided that using one of them does not imply
you will soon (or ever) use the rest. A specialized mode which provides
many keyboard commands often has that usage pattern: a user may invoke
the mode, but use only a few of the commands it provides.
many separate user-callable functions, if using one of them does not
imply you will probably also use the rest. A specialized mode which
provides many keyboard commands often has that usage pattern: a user may
invoke the mode, but use only a few of the commands it provides.
The dynamic loading feature has certain disadvantages:
......@@ -323,19 +329,21 @@ longer load the remaining function definitions not already loaded.
@item
If you alter the compiled file (such as by compiling a new version),
then trying to load any function not already loaded will get nonsense
then trying to load any function not already loaded will yield nonsense
results.
@end itemize
If you compile a new version of the file, the best thing to do is
immediately load the new compiled file. That will prevent any future
problems.
These problems will never happen in normal circumstances with
installed Emacs files. But they are quite likely to happen with Lisp
files that you are changing. The easiest way to prevent these problems
is to reload the new compiled file immediately after each recompilation.
The byte compiler uses the dynamic function loading feature if the
variable @code{byte-compile-dynamic} is non-@code{nil} at compilation
time. Do not set this variable globally, since dynamic loading is
desirable only for certain files. Instead, enable the feature for
specific source files with file-local variable bindings, like this:
specific source files with file-local variable bindings. For example,
you could do it by writing this text in the source file's first line:
@example
-*-byte-compile-dynamic: t;-*-
......@@ -363,9 +371,8 @@ This form marks @var{body} to be evaluated both when you compile the
containing code and when you run it (whether compiled or not).
You can get a similar result by putting @var{body} in a separate file
and referring to that file with @code{require}. Using @code{require} is
preferable if there is a substantial amount of code to be executed in
this way.
and referring to that file with @code{require}. That method is
preferable when @var{body} is large.
@end defspec
@defspec eval-when-compile body
......@@ -375,10 +382,10 @@ compiler becomes a constant which appears in the compiled program. If
you load the source file, rather than compiling it, @var{body} is
evaluated normally.
At top level, this is analogous to the Common Lisp idiom
@code{(eval-when (compile eval) @dots{})}. Elsewhere, the Common Lisp
@samp{#.} reader macro (but not when interpreting) is closer to what
@code{eval-when-compile} does.
@strong{Common Lisp Note:} At top level, this is analogous to the Common
Lisp idiom @code{(eval-when (compile eval) @dots{})}. Elsewhere, the
Common Lisp @samp{#.} reader macro (but not when interpreting) is closer
to what @code{eval-when-compile} does.
@end defspec
@node Byte-Code Objects
......@@ -395,12 +402,8 @@ as a function to be called. The printed representation for a byte-code
function object is like that for a vector, with an additional @samp{#}
before the opening @samp{[}.
In Emacs version 18, there was no byte-code function object data type;
compiled functions used the function @code{byte-code} to run the byte
code.
A byte-code function object must have at least four elements; there is
no maximum number, but only the first six elements are actually used.
no maximum number, but only the first six elements have any normal use.
They are:
@table @var
......
......@@ -460,8 +460,8 @@ first argument of @code{while}, as shown here:
@noindent
This moves forward one line and continues moving by lines until it
reaches an empty. It is unusual in that the @code{while} has no body,
just the end test (which also does the real work of moving point).
reaches an empty line. It is peculiar in that the @code{while} has no
body, just the end test (which also does the real work of moving point).
@end defspec
@node Nonlocal Exits
......@@ -718,15 +718,13 @@ These examples show typical uses of @code{error}:
@example
@group
(error "You have committed an error.
Try something else.")
@error{} You have committed an error.
Try something else.
(error "That is an error -- try something else")
@error{} That is an error -- try something else
@end group
@group
(error "You have committed %d errors." 10)
@error{} You have committed 10 errors.
(error "You have committed %d errors" 10)
@error{} You have committed 10 errors
@end group
@end example
......@@ -752,7 +750,7 @@ errors.
The number and significance of the objects in @var{data} depends on
@var{error-symbol}. For example, with a @code{wrong-type-arg} error,
there are two objects in the list: a predicate that describes the type
there should be two objects in the list: a predicate that describes the type
that was expected, and the object that failed to fit that type.
@xref{Error Symbols}, for a description of error symbols.
......@@ -772,8 +770,8 @@ it could sometimes return).
@end group
@group
(signal 'no-such-error '("My unknown error condition."))
@error{} peculiar error: "My unknown error condition."
(signal 'no-such-error '("My unknown error condition"))
@error{} peculiar error: "My unknown error condition"
@end group
@end smallexample
@end defun
......@@ -876,8 +874,8 @@ execution at the point of the error, nor can it examine variable
bindings that were made within the protected form. All it can do is
clean up and proceed.
@code{condition-case} is often used to trap errors that are
predictable, such as failure to open a file in a call to
The @code{condition-case} construct is often used to trap errors that
are predictable, such as failure to open a file in a call to
@code{insert-file-contents}. It is also used to trap errors that are
totally unpredictable, such as when the program evaluates an expression
read from the user.
......@@ -1159,7 +1157,12 @@ You might think that we could just as well write @code{(kill-buffer
However, the way shown above is safer, if @var{body} happens to get an
error after switching to a different buffer! (Alternatively, you could
write another @code{save-excursion} around the body, to ensure that the
temporary buffer becomes current in time to kill it.)
temporary buffer becomes current again in time to kill it.)
Emacs includes a standard macro called @code{with-temp-buffer} which
expands into more or less the code shown above (@pxref{Current Buffer}).
Several of the macros defined in this manual use @code{unwind-protect}
in this way.
@findex ftp-login
Here is an actual example taken from the file @file{ftp.el}. It
......@@ -1188,18 +1191,3 @@ quit, and the quit happens immediately after the function
@code{ftp-setup-buffer} returns but before the variable @code{process} is
set, the process will not be killed. There is no easy way to fix this bug,
but at least it is very unlikely.
Here is another example which uses @code{unwind-protect} to make sure
to kill a temporary buffer. In this example, the value returned by
@code{unwind-protect} is used.
@smallexample
(defun shell-command-string (cmd)
"Return the output of the shell command CMD, as a string."
(save-excursion
(set-buffer (generate-new-buffer " OS*cmd"))
(shell-command cmd t)
(unwind-protect
(buffer-string)
(kill-buffer (current-buffer)))))
@end smallexample
This diff is collapsed.
......@@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/debugging
@node Debugging, Read and Print, Byte Compilation, Top
@node Debugging, Read and Print, Advising, Top
@chapter Debugging Lisp Programs
There are three ways to investigate a problem in an Emacs Lisp program,
......@@ -104,14 +104,18 @@ that error does not enter the debugger, regardless of the value of
@code{debug-on-error}.
The normal value of this variable lists several errors that happen often
during editing but rarely result from bugs in Lisp programs.
during editing but rarely result from bugs in Lisp programs. However,
``rarely'' is not ``never''; if your program fails with an error that
matches this list, you will need to change this list in order to debug
the error. The easiest way is usually to set
@code{debug-ignored-errors} to @code{nil}.
@end defopt
@defopt debug-on-signal
Normally, errors that are caught by @code{condition-case} never run the
debugger, even if @code{debug-on-error} is non-@code{nil}. In other
words, @code{condition-case} gets a chance to catch the error before the
debugger gets a chance.
words, @code{condition-case} gets a chance to handle the error before
the debugger gets a chance.
If you set @code{debug-on-signal} non-@code{nil}, then the debugger gets
first chance at every error; an error will invoke the debugger
......@@ -119,7 +123,7 @@ regardless of any @code{condition-case}, if the fits the criterion
specified by the values of @code{debug-on-error} and
@code{debug-ignored-errors}.
@strong{Warning:} This variable is strong medecine! Various parts of
@strong{Warning:} This variable is strong medicine! Various parts of
Emacs handle errors in the normal course of affairs, and you may not
even realize that errors happen there. If you set
@code{debug-on-signal} to a non-@code{nil} value, those errors will
......@@ -132,7 +136,7 @@ enter the debugger.
To debug an error that happens during loading of the @file{.emacs}
file, use the option @samp{-debug-init}, which binds
@code{debug-on-error} to @code{t} while @file{.emacs} is loaded and
inhibits use of @code{condition-case} to catch init file errors.
inhibits use of @code{condition-case} to catch init-file errors.
If your @file{.emacs} file sets @code{debug-on-error}, the effect may
not last past the end of loading @file{.emacs}. (This is an undesirable
......@@ -190,26 +194,25 @@ called shortly before the problem, step quickly over the call to that
function, and then step through its caller.
@deffn Command debug-on-entry function-name
This function requests @var{function-name} to invoke the debugger each time
This function requests @var{function-name} to invoke the debugger each time
it is called. It works by inserting the form @code{(debug 'debug)} into
the function definition as the first form.
Any function defined as Lisp code may be set to break on entry,
Any function defined as Lisp code may be set to break on entry,
regardless of whether it is interpreted code or compiled code. If the
function is a command, it will enter the debugger when called from Lisp
and when called interactively (after the reading of the arguments). You
can't debug primitive functions (i.e., those written in C) this way.
When @code{debug-on-entry} is called interactively, it prompts
for @var{function-name} in the minibuffer.
When @code{debug-on-entry} is called interactively, it prompts for
@var{function-name} in the minibuffer. If the function is already set
up to invoke the debugger on entry, @code{debug-on-entry} does nothing.
@code{debug-on-entry} always returns @var{function-name}.
If the function is already set up to invoke the debugger on entry,
@code{debug-on-entry} does nothing.
@strong{Note:} if you redefine a function after using
@code{debug-on-entry} on it, the code to enter the debugger is lost.
@code{debug-on-entry} returns @var{function-name}.
@strong{Note:} if you redefine a function after using
@code{debug-on-entry} on it, the code to enter the debugger is discarded
by the redefinition. In effect, redefining the function cancels
the break-on-entry feature for that function.
@example
@group
......@@ -252,11 +255,12 @@ Entering:
This function undoes the effect of @code{debug-on-entry} on
@var{function-name}. When called interactively, it prompts for
@var{function-name} in the minibuffer. If @var{function-name} is
@code{nil} or the empty string, it cancels debugging for all functions.
@code{nil} or the empty string, it cancels break-on-entry for all
functions.
If @code{cancel-debug-on-entry} is called more than once on the same
function, the second call does nothing. @code{cancel-debug-on-entry}
returns @var{function-name}.
Calling @code{cancel-debug-on-entry} does nothing to a function which is
not currently set up to break on entry. It always returns
@var{function-name}.
@end deffn
@node Explicit Debug
......@@ -326,8 +330,8 @@ code, so that you can see how control flows. The debugger can step
through the control structures of an interpreted function, but cannot do
so in a byte-compiled function. If you would like to step through a
byte-compiled function, replace it with an interpreted definition of the
same function. (To do this, visit the source file for the function and
type @kbd{C-M-x} on its definition.)
same function. (To do this, visit the source for the function and type
@kbd{C-M-x} on its definition.)
Here is a list of Debugger mode commands:
......@@ -360,7 +364,8 @@ in the backtrace buffer.
@item u
Don't enter the debugger when the current frame is exited. This
cancels a @kbd{b} command on that frame.
cancels a @kbd{b} command on that frame. The visible effect is to
remove the star from the line in the backtrace buffer.
@item e
Read a Lisp expression in the minibuffer, evaluate it, and print the
......@@ -371,6 +376,10 @@ examine them. This makes the debugger more transparent. By contrast,
@kbd{M-:} does nothing special in the debugger; it shows you the
variable values within the debugger.
@item R
Like @kbd{e}, but also save the result of evaluation in the
buffer @samp{*Debugger-record*}.
@item q
Terminate the program being debugged; return to top-level Emacs
command execution.
......@@ -383,11 +392,11 @@ Return a value from the debugger. The value is computed by reading an
expression with the minibuffer and evaluating it.
The @kbd{r} command is useful when the debugger was invoked due to exit
from a Lisp call frame (as requested with @kbd{b}); then the value
specified in the @kbd{r} command is used as the value of that frame. It
is also useful if you call @code{debug} and use its return value.
Otherwise, @kbd{r} has the same effect as @kbd{c}, and the specified
return value does not matter.
from a Lisp call frame (as requested with @kbd{b} or by entering the
frame with @kbd{d}); then the value specified in the @kbd{r} command is
used as the value of that frame. It is also useful if you call
@code{debug} and use its return value. Otherwise, @kbd{r} has the same
effect as @kbd{c}, and the specified return value does not matter.
You can't use @kbd{r} when the debugger was entered due to an error.
@end table
......@@ -448,11 +457,11 @@ Beginning evaluation of function call form:
@end smallexample
@item exit
When the first argument is @code{exit}, it indicates the exit of a
stack frame previously marked to invoke the debugger on exit. The
second argument given to @code{debug} in this case is the value being
returned from the frame. The debugger displays @samp{Return value:} on
the top line of the buffer, followed by the value being returned.
When the first argument is @code{exit}, it indicates the exit of a stack
frame previously marked to invoke the debugger on exit. The second
argument given to @code{debug} in this case is the value being returned
from the frame. The debugger displays @samp{Return value:} in the top
line of the buffer, followed by the value being returned.
@item error
@cindex @code{error} in debug
......@@ -605,8 +614,8 @@ bound to @code{nil}. The debugger can set this variable to leave
information for future debugger invocations during the same command
invocation.
The advantage, for the debugger, of using this variable rather than
another global variable is that the data will never carry over to a
The advantage, for the debugger, of using this variable rather than an
ordinary global variable is that the data will never carry over to a
subsequent command invocation.