append-to-buffer function will be used interactively,
the function must have an
interactive expression. (For a
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
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
other-buffer, an exception, and a ‘t’, standing
The first argument to
other-buffer, the exception, is yet
current-buffer. That is not going to be
returned. The second argument is the symbol for true,
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-end). These two
functions specify the beginning and end of the text to be appended.
Originally, the command used the letters ‘B’ and ‘r’.
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,
end) to the values of
point and mark. That argument worked fine.)