Creating Buffers
================
This section describes the two primitives for creating buffers.
`get-buffer-create' creates a buffer if it finds no existing buffer
with the specified name; `generate-new-buffer' always creates a new
buffer and gives it a unique name.
Other functions you can use to create buffers include
`with-output-to-temp-buffer' (Note:Temporary Displays) and
`create-file-buffer' (Note:Visiting Files). Starting a subprocess
can also create a buffer (Note:Processes).
- Function: get-buffer-create name
This function returns a buffer named NAME. It returns an existing
buffer with that name, if one exists; otherwise, it creates a new
buffer. The buffer does not become the current buffer--this
function does not change which buffer is current.
An error is signaled if NAME is not a string.
(get-buffer-create "foo")
=> #<buffer foo>
The major mode for the new buffer is set to Fundamental mode. The
variable `default-major-mode' is handled at a higher level. Note:Auto Major Mode.
- Function: generate-new-buffer name
This function returns a newly created, empty buffer, but does not
make it current. If there is no buffer named NAME, then that is
the name of the new buffer. If that name is in use, this function
adds suffixes of the form `<N>' to NAME, where N is an integer.
It tries successive integers starting with 2 until it finds an
available name.
An error is signaled if NAME is not a string.
(generate-new-buffer "bar")
=> #<buffer bar>
(generate-new-buffer "bar")
=> #<buffer bar<2>>
(generate-new-buffer "bar")
=> #<buffer bar<3>>
The major mode for the new buffer is set to Fundamental mode. The
variable `default-major-mode' is handled at a higher level. Note:Auto Major Mode.
See the related function `generate-new-buffer-name' in Note:Buffer Names.