Go to the previous, next section.

The Body of the  insert-buffer Function

The body of the  insert-buffer function has two major parts: an  or expression and a  let expression. The purpose of the  or expression is to ensure that the argument  buffer is bound to a buffer and not just the name of a buffer. The body of the  let expression contains the code which copies the other buffer into the current buffer.

In outline, the two expressions fit into the  insert-buffer function like this:

(defun insert-buffer (buffer)
  "documentation@dots{}"
  (interactive "*bInsert buffer: ")
  (or @dots{}
      @dots{}
  (let (varlist)
      body-of- let @dots{} )

To understand how the  or expression ensures that the argument  buffer is bound to a buffer and not to the name of a buffer, it is first necessary to understand the  or function.

Before doing this, let me rewrite this part of the function using  if so that you can see what is done in a manner that will be familiar.

Go to the previous, next section.