Next: append-to-buffer body, Previous: append-to-buffer overview, Up: append-to-buffer [Contents][Index]
append-to-buffer
Interactive ExpressionSince the append-to-buffer
function will be used interactively, the
function must have an interactive
expression. (For a review of
interactive
, see Making a Function Interactive.)
The expression reads as follows:
(interactive (list (read-buffer "Append to buffer: " (other-buffer (current-buffer) t)) (region-beginning) (region-end)))
This expression is not one with letters standing for parts, as described earlier. Instead, it starts a list with these parts:
The first part of the list is an expression to read the name of a buffer and
return it as a string. That is read-buffer
. The function requires a
prompt as its first argument, ‘"Append to buffer: "’. Its second
argument tells the command what value to provide if you don’t specify
anything.
In this case that second argument is an expression containing the function
other-buffer
, an exception, and a ‘t’, standing for true.
The first argument to other-buffer
, the exception, is yet another
function, current-buffer
. That is not going to be returned. The
second argument is the symbol for true, t
. that tells
other-buffer
that it may show visible buffers (except in this case,
it will not show the current buffer, which makes sense).
The expression looks like this:
(other-buffer (current-buffer) t)
The second and third arguments to the list
expression are
(region-beginning)
and (region-end)
. These two functions
specify the beginning and end of the text to be appended.
Originally, the command used the letters ‘B’ and ‘r’. The whole
interactive
expression looked like this:
(interactive "BAppend to buffer: \nr")
But when that was done, the default value of the buffer switched to was invisible. That was not wanted.
(The prompt was separated from the second argument with a newline,
‘\n’. It was followed by an ‘r’ that told Emacs to bind the two
arguments that follow the symbol buffer
in the function’s argument
list (that is, start
and end
) to the values of point and
mark. That argument worked fine.)
Next: append-to-buffer body, Previous: append-to-buffer overview, Up: append-to-buffer [Contents][Index]