-@defun buffer-base-buffer buffer
-This function returns the base buffer of @var{buffer}. If @var{buffer}
-is not indirect, the value is @code{nil}. Otherwise, the value is
-another buffer, which is never an indirect buffer.
+@defun clone-indirect-buffer newname display-flag &optional norecord
+This function creates and returns a new indirect buffer that shares
+the current buffer's base buffer and copies the rest of the current
+buffer's attributes. (If the current buffer is not indirect, it is
+used as the base buffer.)
+
+If @var{display-flag} is non-@code{nil}, that means to display the new
+buffer by calling @code{pop-to-buffer}. If @var{norecord} is
+non-@code{nil}, that means not to put the new buffer to the front of
+the buffer list.
+@end defun
+
+@defun buffer-base-buffer &optional buffer
+This function returns the base buffer of @var{buffer}, which defaults
+to the current buffer. If @var{buffer} is not indirect, the value is
+@code{nil}. Otherwise, the value is another buffer, which is never an
+indirect buffer.
+@end defun
+
+@node Buffer Gap
+@section The Buffer Gap
+
+ Emacs buffers are implemented using an invisible @dfn{gap} to make
+insertion and deletion faster. Insertion works by filling in part of
+the gap, and deletion adds to the gap. Of course, this means that the
+gap must first be moved to the locus of the insertion or deletion.
+Emacs moves the gap only when you try to insert or delete. This is why
+your first editing command in one part of a large buffer, after
+previously editing in another far-away part, sometimes involves a
+noticeable delay.
+
+ This mechanism works invisibly, and Lisp code should never be affected
+by the gap's current location, but these functions are available for
+getting information about the gap status.
+
+@defun gap-position
+This function returns the current gap position in the current buffer.
+@end defun
+
+@defun gap-size
+This function returns the current gap size of the current buffer.