(Z_ADDR, BUF_GPT_ADDR, BUF_Z_ADDR): New macros.
(struct buffer): New members `category_table',
`direction_reserved', and `enable-multibyte-characters'.
(POS_ADDR): New macro used at all places instead of &FETCH_CHAR.
(FETCH_BYTE): New macro used at any places to check the argument
against an ASCII character.
(FETCH_MULTIBYTE_CHAR): New macro used at any places to get a
character code of the argument when it is known to be a multibyte
character.
(_fetch_multibyte_char_p, _fetch_multibyte_char_len): New
variables.
(FETCH_CHAR): Use macros FETCH_MULTIBYTE_CHAR and FETCH_BYTE.
(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):
(OVERLAYP): New predicate.
(CHECK_OVERLAY): New type-checker.
(Qoverlayp): New extern declaration.
* buffer.c (Foverlayp): New function.
(Qoverlayp): New atom.
(overlays_at, recenter_overlay_lists): Abort if we encounter an
invalid overlay.
(syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp.
(Fdelete_overlay): Set the overlay's markers to point nowhere.
Use CHECK_OVERLAY instead of signalling a special error.
(Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of
signalling a special error.
(Foverlay_get): Use CHECK_OVERLAY.
* fns.c (internal_equal): Define this for overlays.
* buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP.
* print.c (print): Give overlays their own print syntax.
* alloc.c (mark_object): Treat overlays like conses.
(OVERLAY_START, OVERLAY_END, OVERLAY_VALID): New macros.
(OVERLAY_POSITION): Likewise.
(searchbuf): Decl deleted--doesn't belong here.
Delete include of regex.h for VMS.
wrong feature.
(Qoverwrite_mode_binary): New variable.
(internal_self_insert): If current_buffer->overwrite_mode is
`overwrite-mode-binary', do as overwrite_binary_mode used to.
(syms_of_cmds): Remove defvar of overwrite_binary_mode; initialize
Qoverwrite_mode_binary.
* buffer.c (syms_of_buffer): Doc fix for overwrite_mode.
* buffer.h (struct buffer): Doc fix.
and TEMP_SET_PT are function calls.
Similarly for BUF_SET_PT and BUF_TEMP_SET_PT.
Added DECLARE_INTERVALS to buffer structure to conditionally
compile an interval tree into it..