@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
@comment node-name, next, previous, up
@section Buffer Basics
-@ifinfo
+@ifnottex
A @dfn{buffer} is a Lisp object containing text to be edited. Buffers
are used to hold the contents of files that are being visited; there may
also be buffers that are not visiting files. Although several buffers
buffer} at any time. Most editing commands act on the contents of the
current buffer. Each buffer, including the current buffer, may or may
not be displayed in any windows.
-@end ifinfo
+@end ifnottex
Buffers in Emacs editing are objects that have distinct names and hold
text that can be edited. Buffers appear to Lisp programs as a special
@end defun
@defspec save-current-buffer body...
-@tindex save-current-buffer
The @code{save-current-buffer} macro saves the identity of the current
buffer, evaluates the @var{body} forms, and finally restores that buffer
as current. The return value is the value of the last form in
@end defspec
@defmac with-current-buffer buffer body...
-@tindex with-current-buffer
The @code{with-current-buffer} macro saves the identity of the current
buffer, makes @var{buffer} current, evaluates the @var{body} forms, and
finally restores the buffer. The return value is the value of the last
@end defmac
@defmac with-temp-buffer body...
-@tindex with-temp-buffer
The @code{with-temp-buffer} macro evaluates the @var{body} forms
with a temporary buffer as the current buffer. It saves the identity of
the current buffer, creates a temporary buffer and makes it current,
number inside of @samp{<@dots{}>}.
If the optional second argument @var{ignore} is non-@code{nil}, it
-should be buffer name in the sequence to be tried. That name will be
-considered acceptable, if it is tried, even if a buffer with that name
-exists.
+should be a string; it makes a difference if it is a name in the
+sequence of names to be tried. That name will be considered acceptable,
+if it is tried, even if a buffer with that name exists. Thus, if
+buffers named @samp{foo}, @samp{foo<2>}, @samp{foo<3>} and @samp{foo<4>}
+exist,
+
+@example
+(generate-new-buffer-name "foo")
+ @result{} "foo<5>"
+(generate-new-buffer-name "foo" "foo<3>")
+ @result{} "foo<3>"
+(generate-new-buffer-name "foo" "foo<6>")
+ @result{} "foo<5>"
+@end example
See the related function @code{generate-new-buffer} in @ref{Creating
Buffers}.