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.
(x_display_box_cursor): Don't redraw old cursor spot in mouse face
if cursor was on a newline.
(XTread_socket): Handle button events from outside
the frame, received due to grabbing the mouse with a button.
new scrolling method which scrolls groups of lines directly
to their final vertical positions.
(struct matrix_elt): New field writecount.
(calculate_direct_scrolling): New function.
(do_direct_scrolling): New function.
Set set_regs_matched_done to 1.
(re_match_2_internal): New local var set_regs_matched_done.
Set it to 0 when appropriate.
(POP_FAILURE_POINT): Set set_regs_matched_done to 0.
(re_match_2_internal, case duplicate): Call SET_REGS_MATCHED.
when frame must be redrawn.
(x_make_frame_visible, x_make_frame_invisible)
(x_iconify_frame): Give error if frame has explicit_parent.
(x_new_font): Don't set window height if frame has explicit_parent.
(x_mouse_leave): New function broken out of XTread_socket.
When x_focus_event_frame is nonzero, assume that frame gets focus.
(XTread_socket): Use x_mouse_leave for LeaveNotify.
(Fx_color_values): Doc fix.
(Fx_create_frame): Check for parent-id parameter.
Set explicit_parent and parent fields.
Don't set visibility if explicit_parent.
[! USE_X_TOOLKIT] (x_window): Specify parent window.
(assoc_ignore_text_properties): New function.
(Fget_buffer): Use assoc_ignore_text_properties.
(Fother_buffer): Take account of frame's buffer predicate.
call store_frame_param for each parameter set.
(store_frame_param): Handle buffer_predicate field.
(frame_buffer_predicate): New function.
(Qbuffer_predicate): New variable.
(syms_of_frame): Set it up.
Allow (FILE . POS) as position argument.
(Fdocumentation, Fdocumentation_property): Fix calls to get_doc_string.
(Fdocumentation_property): Handle cons as value via get_doc_string.
(read_doc_string): New function.