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]