(Fbuffer_base_buffer): New function.
(syms_of_buffer): defsubr them.
(reset_buffer): Don't alter intervals here.
(Fget_buffer_create): Use BUF_MARKERS. Init BUF_INTERVALS here.
(Fkill_buffer): Use BUF_MARKERS; but don't touch it in indir buf.
Likewise BUF_INTERVALS.
(init_buffer_once): Set up .text and BUF_INTERVALS
in buffer_local_symbols and buffer_defaults.
(Fkill_buffer): Don't free the text in indirect buffer.
When killing a base buffer, kill its indirect buffers first.
(set_buffer_temp): New function.
(reset_buffer_local_variables): Initialize buffer_file_type field.
(Fget_buffer_create): Initialize pt_marker, begv/zv_marker.
(set_buffer_internal): Use and update these markers.
Copy undo_list in and out of the base buffer.
(Fget_buffer_create): Init save_modiff field here.
(reset_buffer): Not here.
(Fbuffer_modified_p): Use BUF_SAVE_MODIFF.
(Fset_buffer_modified_p): Use SAVE_MODIFF.
(Fkill_buffer, list_buffers_1): Use BUF_SAVE_MODIFF.
(Fget_buffer_create): Initialize the size and text fields.
instead of direct access to the save_modiff field.
(insert_1, prepare_to_modify_buffer, insert_from_buffer_1): Use BUF_INTERVALS.
(adjust_markers): Use BUF_MARKERS.
(adjust_point): Use BUF_PT.
(struct buffer_text): Fields markers and intervals moved here.
(BUF_MARKERS, BUF_INTERVALS): New macros.
(struct buffer): Make buffer_file_type field unconditional.
(struct buffer): New field pt_marker.
save_modiff field deleted.
(struct buffer_text): save_modiff field moved here.
(SAVE_MODIFF, BUF_SAVE_MODIFF): New macros.
Use them instead of direct access to save_modiff field.
(struct buffer): New fields begv_marker, zv_marker.
(struct buffer): Make text field be a pointer.
The struct buffer_text field renamed to own_text.
Add fields indirect_to_buffer and size.
Move pt, begv and zv fields here.
(struct buffer_text): Moved from here.
(BEGV, PT, ZV, BEGV_ADDR, PT_ADDR, ZV_ADDR): Corresponding changes.
(BUF_BEGV, BUF_PT, BUF_ZV): Corresponding changes.
(SET_BUF_ZV, SET_BUF_PT, point):
instead of direct access to the save_modiff field.
(Finsert_file_contents, Fwrite_region): Error if buffer is indirect.
(Fdo_auto_save): Do nothing for an indirect buffer.
instead of direct access to the save_modiff field.
(redisplay_window): Call set_buffer_temp.
(redisplay_window): For buffer_shared count,
treat an indirect buffer as equivalent to its base.
and for /drafts/. Put tex-mode and latex-mode in lower case.
(set-visited-file-name): Error if buffer is indirect.
(basic-save-buffer): For indirect buffer, save the base buffer.
(save-some-buffers): Ignore indirect buffers.
(te-terminal-name-prefix, te-terminal-name, te-terminfo-systems):
New variables.
(terminal-emulator): Handle termcap or terminfo.
(te-create-terminfo, te-create-termcap): New subroutines.
(te-tic-sentinel): New subroutine.
(next-completion, previous-completion): New commands.
(completion-list-mode-map): Put them on left, right arrows.
(completion-list-mode-map): Don't bind return, just C-m.
specifies which file to search.
(apropos-files-scanned): New variable.
(super-apropos): Bind apropos-files-scanned.
Update apropos-accumulate from apropos-print-matches.
Call super-apropos-accumulate before checking for no matches.
(super-apropos-check-doc-file): Don't visit the file, just insert it.
(super-apropos-accumulate): When doc string is in a file, scan that file.
(apropos-print-matches): Return the sorted list.
(safe-documentation): Handle compiled files.
(super-apropos-accumulate): Vars item, fn-doc and var-doc renamed
to apropos-item, apropos-fn-doc and apropos-var-doc.
(apropos-item, apropos-var-doc, apropos-fn-doc)
(apropos-accumulate, apropos-regexp): New defvars.
(super-apropos): Bind apropos-regexp to regexp.
(super-apropos-accumulate): Use apropos-regexp.