Go to the previous, next section.

The Definition of  insert-buffer

 insert-buffer is yet another buffer-related function. This command copies another buffer into the current buffer. It is the reverse of  append-to-buffer or  copy-to-buffer , since they copy a region of text from the current buffer to another buffer.

In addition, this code illustrates the use of  interactive with a buffer that might be read-only and the important distinction between the name of an object and the object actually referred to. Here is the code:

(defun insert-buffer (buffer)
  "Insert after point the contents of BUFFER.
Puts mark after the inserted text.
BUFFER may be a buffer or a buffer name."
  (interactive "*bInsert buffer: ")
  (or (bufferp buffer)
      (setq buffer (get-buffer buffer)))
  (let (start end newmark)
    (save-excursion
      (save-excursion
        (set-buffer buffer)
        (setq start (point-min) end (point-max)))
      (insert-buffer-substring buffer start end)
      (setq newmark (point)))
    (push-mark newmark)))

As with other function definitions, you can use a template to see an outline of the function:

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

Go to the previous, next section.