1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 20:50:52 -08:00
Commit graph

26840 commits

Author SHA1 Message Date
Roland McGrath
e4fc4f587d (etags-verify-tags-table): Use eq instead of = in case char-after returns
nil.
1992-12-24 22:33:11 +00:00
Jim Blandy
0783dc9abe *** empty log message *** 1992-12-24 06:49:45 +00:00
Jim Blandy
c8e3cbe03e * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
	fields.
	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
	interface.
	(head_table): Removed from here as well.
	(syms_of_keyboard): And here.
	* keyboard.h: And here.
	(POSN_SCROLLBAR_BUTTON): Removed.
	* xscrollbar.h: File removed - no longer necessary.
	* xfns.c: Don't #include it any more.
	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
	(syms_of_xfns): Don't initialize or staticpro them.
	(gray_bits): Salvaged from xscrollbar.h.
	(x_window_to_scrollbar): Deleted.
	(x_set_horizontal_scrollbar): Deleted.
	(enum x_frame_parm, x_frame_parms): Remove references to
	x_set_horizontal_scrollbar.
	(x_set_foreground_color, x_set_background_color,
	x_set_border_pixel): Remove special code to support scrollbars.
	(Fx_create_frame): Remove old scrollbar setup code.
	(install_vertical_scrollbar, install_horizontal_scrollbar,
	adjust_scrollbars, x_resize_scrollbars): Deleted.
	* xterm.c (construct_mouse_click): This doesn't need to take care of
	scrollbar clicks anymore.
	(XTread_socket): Remove old code to support scrollbars.  Call new
	functions instead for events which occur in scrollbar windows.
	(XTupdate_end): Remove call to adjust_scrollbars; the main
	redisplay code takes care of that now.
	(enum window_type): Deleted.
	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.

	* xterm.h (PIXEL_WIDTH, PIXEL_HEIGHT): Change name of parameter
	from `s' to `f'; it's a frame pointer.
1992-12-24 06:23:08 +00:00
Jim Blandy
f451eb1325 * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
	fields.
	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
	interface.
	(head_table): Removed from here as well.
	(syms_of_keyboard): And here.
	* keyboard.h: And here.
	(POSN_SCROLLBAR_BUTTON): Removed.
	* xscrollbar.h: File removed - no longer necessary.
	* xfns.c: Don't #include it any more.
	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
	(syms_of_xfns): Don't initialize or staticpro them.
	(gray_bits): Salvaged from xscrollbar.h.
	(x_window_to_scrollbar): Deleted.
	(x_set_horizontal_scrollbar): Deleted.
	(enum x_frame_parm, x_frame_parms): Remove references to
	x_set_horizontal_scrollbar.
	(x_set_foreground_color, x_set_background_color,
	x_set_border_pixel): Remove special code to support scrollbars.
	(Fx_create_frame): Remove old scrollbar setup code.
	(install_vertical_scrollbar, install_horizontal_scrollbar,
	adjust_scrollbars, x_resize_scrollbars): Deleted.
	* xterm.c (construct_mouse_click): This doesn't need to take care of
	scrollbar clicks anymore.
	(XTread_socket): Remove old code to support scrollbars.  Call new
	functions instead for events which occur in scrollbar windows.
	(XTupdate_end): Remove call to adjust_scrollbars; the main
	redisplay code takes care of that now.
	(enum window_type): Deleted.
	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.

	* xterm.c (x_set_mouse_position): Clip mouse position to be within
	frame.

	* xterm.c: Adjust the first line of each page to have a reasonable
	description.  This makes pages-directory more useful.

	* xterm.c (x_do_pending_expose): Declare this routine only if
	HAVE_X11 is not #defined; X11 doesn't need it.
	(XTread_socket): Protect call to x_do_pending_expose with `#ifdef
	HAVE_X11'.

	* xterm.c (notice_mouse_movement): Deleted; obsolete and unused.

	Properly handle focus shift events, so the cursor is filled and
	hollow at the appropriate times, even in titleless windows.
	* xterm.c (x_focus_event_frame): New variable.
	(XTread_socket): When we receive a FocusIn event that's not
	NotifyPointer, record the frame in x_focus_event_frame.  When we
	receive a FocusOut event that's not NotifyPointer, clear it.  When
	we get a LeaveNotify event, don't take it seriously if we still
	have focus.

	* xterm.c (XTread_socket): Remove special code in EnterNotify case
	to handle scrollbars and fake mouse motion events.

	Change the meaning of focus redirection to make switching windows
	work properly.  Fredirect_frame_focus has the details.
	* frame.h (focus_frame): Doc fix.
	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
	indicates no focus redirection, instead of zero, which is
	selected_frame.
	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
	than making it point to frame itself.
	(Fselect_frame): If changing the selected frame from FOO to BAR,
	make all redirections to FOO shift to BAR as well.  Doc fix.
	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
	redirection, not just as a default for FRAME.
	(Fframe_focus): Doc fix.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
	with focus redirections being nil.
	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
	redirections being nil.

	* xterm.c (x_error_quitter): Just abort, so we can look at the
	core to see what happened.

	It's a pain to remember that you can't assign to FRAME->visible.
	Let's change all references to the `visible' member of struct
	frame to use the accessor macros, and then write a setter for the
	`visible' field that does the right thing.
	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
	(FRAME_SET_VISIBLE): New macro.
	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
	FRAME_ICONIFIED_P.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
	* xfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
	FRAME_VISIBLE_P accessor.
	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
	* xterm.c (clear_cursor, x_display_bar_cursor,
	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
1992-12-24 06:21:14 +00:00
Jim Blandy
179956b9a4 * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
	fields.
	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
	interface.
	(head_table): Removed from here as well.
	(syms_of_keyboard): And here.
	* keyboard.h: And here.
	(POSN_SCROLLBAR_BUTTON): Removed.
	* xscrollbar.h: File removed - no longer necessary.
	* xfns.c: Don't #include it any more.
	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
	(syms_of_xfns): Don't initialize or staticpro them.
	(gray_bits): Salvaged from xscrollbar.h.
	(x_window_to_scrollbar): Deleted.
	(x_set_horizontal_scrollbar): Deleted.
	(enum x_frame_parm, x_frame_parms): Remove references to
	x_set_horizontal_scrollbar.
	(x_set_foreground_color, x_set_background_color,
	x_set_border_pixel): Remove special code to support scrollbars.
	(Fx_create_frame): Remove old scrollbar setup code.
	(install_vertical_scrollbar, install_horizontal_scrollbar,
	adjust_scrollbars, x_resize_scrollbars): Deleted.
	* xterm.c (construct_mouse_click): This doesn't need to take care of
	scrollbar clicks anymore.
	(XTread_socket): Remove old code to support scrollbars.  Call new
	functions instead for events which occur in scrollbar windows.
	(XTupdate_end): Remove call to adjust_scrollbars; the main
	redisplay code takes care of that now.
	(enum window_type): Deleted.
	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.

	* xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and
	x_mouse_y.  That interface hasn't been live for years.
	(x_mouse_x, x_mouse_y): Delete these variables.

	* xfns.c (Fx_create_frame): Don't initialize the wm_hints field here.
	(x_window): Do it here, along with all the similar stuff.

	It's a pain to remember that you can't assign to FRAME->visible.
	Let's change all references to the `visible' member of struct
	frame to use the accessor macros, and then write a setter for the
	`visible' field that does the right thing.
	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
	(FRAME_SET_VISIBLE): New macro.
	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
	FRAME_ICONIFIED_P.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
	* xfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
	FRAME_VISIBLE_P accessor.
	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
	* xterm.c (clear_cursor, x_display_bar_cursor,
	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
1992-12-24 06:19:31 +00:00
Jim Blandy
30c566e465 * xdisp.c: #include "termhooks.h".
(redisplay, redisplay_window): Use set_vertical_scrollbar_hook,
	condemn_scrollbars_hook, redeem_scrollbar_hook, and
	judge_scrollbars_hook to make scrollbars redisplay properly.

	It's a pain to remember that you can't assign to FRAME->visible.
	Let's change all references to the `visible' member of struct
	frame to use the accessor macros, and then write a setter for the
	`visible' field that does the right thing.
	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
	(FRAME_SET_VISIBLE): New macro.
	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
	FRAME_ICONIFIED_P.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
	* xfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
	FRAME_VISIBLE_P accessor.
	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
	* xterm.c (clear_cursor, x_display_bar_cursor,
	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
1992-12-24 06:18:24 +00:00
Jim Blandy
20a558dc14 * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.
1992-12-24 06:17:18 +00:00
Jim Blandy
db269683bc * keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Qabove_handle, Qhandle, Qbelow_handle): New symbols.
	(make_lispy_event): New code to build scrollbar clicks.
	(make_lispy_movement): New code to handle scrollbar movement.
	(head_table): Include Qscrollbar_movement in the event heads.
	(syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
	Qabove_handle, Qhandle, and Qbelow_handle.
	* keyboard.h (Qscrollbar_movement): Declare this along with the
	other event types.
	* lisp.h (Qvertical_scrollbar): Declare this.
	* window.c (window_from_scrollbar): New function.

	* window.c (Fset_window_configuration): Don't restore the frame's
	focus redirection if the target frame is now dead.
1992-12-24 06:16:36 +00:00
Jim Blandy
c2e42adb64 * floatfns.c (Flog): Fix unescaped newline in string.
* frame.c (Fnext_frame): Same.
	* textprop.c (Fprevious_single_property_change): Same.
	(syms_of_textprop): Same, for DEFVAR for
	`interval_balance_threshold'.
1992-12-24 06:16:01 +00:00
Jim Blandy
08b879b49f * scroll.c (do_scrolling): When bcopying the max_ascent field from
current_frame to temp_frame, remember that max_ascent is an array
	of shorts, not ints.
1992-12-24 06:13:57 +00:00
Jim Blandy
ea73629837 * keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Qabove_handle, Qhandle, Qbelow_handle): New symbols.
	(make_lispy_event): New code to build scrollbar clicks.
	(make_lispy_movement): New code to handle scrollbar movement.
	(head_table): Include Qscrollbar_movement in the event heads.
	(syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
	Qabove_handle, Qhandle, and Qbelow_handle.
	* keyboard.h (Qscrollbar_movement): Declare this along with the
	other event types.
	* lisp.h (Qvertical_scrollbar): Declare this.
	* window.c (window_from_scrollbar): New function.
1992-12-24 06:13:24 +00:00
Jim Blandy
d56a7c549e * keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Qabove_handle, Qhandle, Qbelow_handle): New symbols.
	(make_lispy_event): New code to build scrollbar clicks.
	(make_lispy_movement): New code to handle scrollbar movement.
	(head_table): Include Qscrollbar_movement in the event heads.
	(syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
	Qabove_handle, Qhandle, and Qbelow_handle.
	* keyboard.h (Qscrollbar_movement): Declare this along with the
	other event types.
	* lisp.h (Qvertical_scrollbar): Declare this.
	* window.c (window_from_scrollbar): New function.

	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
	fields.
	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
	interface.
	(head_table): Removed from here as well.
	(syms_of_keyboard): And here.
	* keyboard.h: And here.
	(POSN_SCROLLBAR_BUTTON): Removed.
	* xscrollbar.h: File removed - no longer necessary.
	* xfns.c: Don't #include it any more.
	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
	(syms_of_xfns): Don't initialize or staticpro them.
	(gray_bits): Salvaged from xscrollbar.h.
	(x_window_to_scrollbar): Deleted.
	(x_set_horizontal_scrollbar): Deleted.
	(enum x_frame_parm, x_frame_parms): Remove references to
	x_set_horizontal_scrollbar.
	(x_set_foreground_color, x_set_background_color,
	x_set_border_pixel): Remove special code to support scrollbars.
	(Fx_create_frame): Remove old scrollbar setup code.
	(install_vertical_scrollbar, install_horizontal_scrollbar,
	adjust_scrollbars, x_resize_scrollbars): Deleted.
	* xterm.c (construct_mouse_click): This doesn't need to take care of
	scrollbar clicks anymore.
	(XTread_socket): Remove old code to support scrollbars.  Call new
	functions instead for events which occur in scrollbar windows.
	(XTupdate_end): Remove call to adjust_scrollbars; the main
	redisplay code takes care of that now.
	(enum window_type): Deleted.
	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.
1992-12-24 06:13:00 +00:00
Jim Blandy
4bb994d1ad * keyboard.c: Protect all references to kbd_buffer_frames with
#ifdef MULTI_FRAME.

	* frame.h (struct frame): New fields `can_have_scrollbars' and
	`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	* keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
	Qabove_handle, Qhandle, Qbelow_handle): New symbols.
	(make_lispy_event): New code to build scrollbar clicks.
	(make_lispy_movement): New code to handle scrollbar movement.
	(head_table): Include Qscrollbar_movement in the event heads.
	(syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
	Qabove_handle, Qhandle, and Qbelow_handle.
	* keyboard.h (Qscrollbar_movement): Declare this along with the
	other event types.
	* lisp.h (Qvertical_scrollbar): Declare this.
	* window.c (window_from_scrollbar): New function.

	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
	fields.
	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
	interface.
	(head_table): Removed from here as well.
	(syms_of_keyboard): And here.
	* keyboard.h: And here.
	(POSN_SCROLLBAR_BUTTON): Removed.
	* xscrollbar.h: File removed - no longer necessary.
	* xfns.c: Don't #include it any more.
	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
	(syms_of_xfns): Don't initialize or staticpro them.
	(gray_bits): Salvaged from xscrollbar.h.
	(x_window_to_scrollbar): Deleted.
	(x_set_horizontal_scrollbar): Deleted.
	(enum x_frame_parm, x_frame_parms): Remove references to
	x_set_horizontal_scrollbar.
	(x_set_foreground_color, x_set_background_color,
	x_set_border_pixel): Remove special code to support scrollbars.
	(Fx_create_frame): Remove old scrollbar setup code.
	(install_vertical_scrollbar, install_horizontal_scrollbar,
	adjust_scrollbars, x_resize_scrollbars): Deleted.
	* xterm.c (construct_mouse_click): This doesn't need to take care of
	scrollbar clicks anymore.
	(XTread_socket): Remove old code to support scrollbars.  Call new
	functions instead for events which occur in scrollbar windows.
	(XTupdate_end): Remove call to adjust_scrollbars; the main
	redisplay code takes care of that now.
	(enum window_type): Deleted.
	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.

	* keyboard.c (Fread_key_sequence): Doc fix.

	* keyboard.c (make_lispy_event): Buttons are numbered starting
	with zero now.

	* keyboard.c (make_lispy_event): Use the proper accessors when
	manipulating the `x' and `y' fields of struct input_event.

	* keyboard.c (parse_modifiers_uncached): Remember that strncmp
	returns zero if the two substrings are equal.

	* keyboard.c (do_mouse_tracking, Ftrack_mouse): Doc fix.

	* keyboard.c (read_char): Don't put mouse movements in
	this_command_keys.

	Change the meaning of focus redirection to make switching windows
	work properly.  Fredirect_frame_focus has the details.
	* frame.h (focus_frame): Doc fix.
	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
	indicates no focus redirection, instead of zero, which is
	selected_frame.
	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
	than making it point to frame itself.
	(Fselect_frame): If changing the selected frame from FOO to BAR,
	make all redirections to FOO shift to BAR as well.  Doc fix.
	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
	redirection, not just as a default for FRAME.
	(Fframe_focus): Doc fix.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
	with focus redirections being nil.
	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
	redirections being nil.

	* keyboard.c (kbd_buffer_frames): New vector, to GCPRO frames in
	kbd_buffer.
	(kbd_buffer_store_event): When we add an event to kbd_buffer, make
	sure to store its frame in kbd_buffer_frames.
	(kbd_buffer_get_event): When we remove an event from kbd_buffer,
	make sure to set the corresponding element of kbd_buffer_frames to
	Qnil, to allow the frame to get GC'd.
	(Fdiscard_input, init_keyboard): Clear all elements of
	kbd_buffer_frames to nil.
	(syms_of_keyboard): Create and staticpro kbd_buffer_frames.
1992-12-24 06:12:04 +00:00
Jim Blandy
46a5c4874d * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	Change the meaning of focus redirection to make switching windows
	work properly.  Fredirect_frame_focus has the details.
	* frame.h (focus_frame): Doc fix.
	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
	indicates no focus redirection, instead of zero, which is
	selected_frame.
	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
	than making it point to frame itself.
	(Fselect_frame): If changing the selected frame from FOO to BAR,
	make all redirections to FOO shift to BAR as well.  Doc fix.
	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
	redirection, not just as a default for FRAME.
	(Fframe_focus): Doc fix.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
	with focus redirections being nil.
	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
	redirections being nil.

	It's a pain to remember that you can't assign to FRAME->visible.
	Let's change all references to the `visible' member of struct
	frame to use the accessor macros, and then write a setter for the
	`visible' field that does the right thing.
	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
	(FRAME_SET_VISIBLE): New macro.
	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
	FRAME_ICONIFIED_P.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
	* xfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
	FRAME_VISIBLE_P accessor.
	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
	* xterm.c (clear_cursor, x_display_bar_cursor,
	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
1992-12-24 06:07:02 +00:00
Jim Blandy
a42e972438 * frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
	* window.h (struct window): New field `vertical_scrollbar'.
	* xterm.h (struct x_display): vertical_scrollbars,
	judge_timestamp, vertical_scrollbar_extra: New fields.
	(struct scrollbar): New struct.
	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
	`has_vertical_scrollbars' fields of the frame.
	* term.c (term_init): Note that TERMCAP terminals don't support
	scrollbars.
	(mouse_position_hook): Document new args.
	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
	* termhooks.h: Declare and document them.
	(enum scrollbar_part): New type.
	(struct input_event): Describe the new form of the scrollbar_click
	event type.  Change `part' from a Lisp_Object to an enum
	scrollbar_part.  Add a new field `scrollbar'.
	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
	parameters to *mouse_position_hook, and make_lispy_movement.
	* xfns.c (x_set_vertical_scrollbar): New function.
	(x_figure_window_size): Use new macros to calculate frame size.
	(Fx_create_frame): Note that X Windows frames do support scroll
	bars.  Default to "yes".
	* xterm.c: #include <X11/cursorfont.h> and "window.h".
	(x_vertical_scrollbar_cursor): New variable.
	(x_term_init): Initialize it.
	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
	variables.
	(XTmouse_position): Use them to return scrollbar movement events.
	Take new arguments, for that purpose.
	(x_window_to_scrollbar, x_scrollbar_create,
	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
	XTjudge_scrollbars, x_scrollbar_expose,
	x_scrollbar_background_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): New functions to implement scrollbars.
	(x_term_init): Set the termhooks.h hooks to point to them.
	(x_set_window_size): Use new macros to calculate frame size.  Set
	vertical_scrollbar_extra field.
	(x_make_frame_visible): Use the frame accessor
	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
	frame's subwindows as well.
	(XTread_socket): Use new size-calculation macros from xterm.h when
	processing ConfigureNotify events.
	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
	PIXEL_TO_CHAR_HEIGHT macros.
	* ymakefile (xdisp.o): This now depends on termhooks.h.
	(xterm.o): This now depends on window.h.

	* floatfns.c (Flog): Fix unescaped newline in string.
	* frame.c (Fnext_frame): Same.
	* textprop.c (Fprevious_single_property_change): Same.
	(syms_of_textprop): Same, for DEFVAR for
	`interval_balance_threshold'.

	Change the meaning of focus redirection to make switching windows
	work properly.  Fredirect_frame_focus has the details.
	* frame.h (focus_frame): Doc fix.
	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
	indicates no focus redirection, instead of zero, which is
	selected_frame.
	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
	than making it point to frame itself.
	(Fselect_frame): If changing the selected frame from FOO to BAR,
	make all redirections to FOO shift to BAR as well.  Doc fix.
	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
	redirection, not just as a default for FRAME.
	(Fframe_focus): Doc fix.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
	with focus redirections being nil.
	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
	redirections being nil.

	It's a pain to remember that you can't assign to FRAME->visible.
	Let's change all references to the `visible' member of struct
	frame to use the accessor macros, and then write a setter for the
	`visible' field that does the right thing.
	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
	(FRAME_SET_VISIBLE): New macro.
	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
	FRAME_ICONIFIED_P.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
	* xfns.c (x_set_foreground_color, x_set_background_color,
	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
	FRAME_VISIBLE_P accessor.
	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
	* xterm.c (clear_cursor, x_display_bar_cursor,
	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
1992-12-24 06:05:56 +00:00
Jim Blandy
950c26286e * dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
FRAME_GARBAGED_P accessors.
	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
	FRAME_GARBAGED_P accessors.
1992-12-24 06:04:32 +00:00
Jim Blandy
76f590d740 * buffer.c (Frename_buffer): Set update_mode_lines. 1992-12-24 06:03:20 +00:00
Jim Blandy
307436bb71 * ymakefile (all, xemacs): We build an executable called `emacs' now,
not `xemacs'.
	* Makefile.in (distclean, xemacs, doxemacs): Same.
1992-12-24 06:03:04 +00:00
Jim Blandy
70f5352e86 * sendmail.el (mail-position-on-field): `end' is guaranteed to be
at the beginning of the header separator; don't skip back to the
	end of the previous line.
1992-12-24 06:01:33 +00:00
Jim Blandy
13a5fb226a * rmail.el (rmail-unix-mail-delimiter): Not all time zone names
end with "T".  Accept any sequence of three or four alphabetic
	characters.
1992-12-24 06:01:02 +00:00
Jim Blandy
59f3e9a221 * loadup.el: Dump under the name emacs', not xemacs'. 1992-12-24 06:00:32 +00:00
Jim Blandy
57c8389c3d * compile.el (compilation-error-regexp-alist): Tightened up
BSD/GNU regexp to insist that line number end with a colon or
	close-paren.

	* compile.el (compilation-error-regexp-alist): Add regexp for the
	MIPS CC distributed with Ultrix.
1992-12-24 06:00:03 +00:00
Jim Blandy
8931ecc028 * c-mode.el (c-fill-paragraph): Calculating the proper fill-prefix
shouldn't change the buffer text.  Make it not.  If we're in the
	blank space before another comment, fill that one as a comment,
	not as normal text.

	* c-mode.el (c-fill-paragraph): When guessing the fill prefix,
	don't ever grab any actual text.
1992-12-24 05:59:00 +00:00
Jim Blandy
c87b230fa2 * make-dist: Make sure that the COPYING notices in each directory
are copies, not symlinks.
1992-12-24 05:57:29 +00:00
Jim Blandy
0691c17956 * configure: Start with a blank line; this keeps some old CSH's
from thinking it's a CSH script.  Most systems will just use
	/bin/sh to run it, which is what we're expecting; the only other
	shells which might try to interpret it themselves are probably
	Bourne-compatible.
1992-12-24 05:56:57 +00:00
Jim Blandy
868e080d41 * INSTALL: The build process produces an executable called `emacs'
now.  Change references.
	* Makefile.in: Adjust `install.mumble' targets to install
	`src/emacs', not `src/xemacs'.

	* Makefile.in (install, install.sysv, install.xenix, install.aix):
	Don't try to copy the info files if there aren't any; the
	unexpanded globbing pattern disappoints `install'.  Ignore the
	return status of that command.
1992-12-24 05:56:33 +00:00
Roland McGrath
4d997d08f1 (visit-tags-table-buffer): Don't look in list for tags-file-name if nil. 1992-12-21 19:13:11 +00:00
Roland McGrath
b6176f6493 Many comments added and docstrings fixed.
(tags-table-list): Elt of nil is not special.
(tags-expand-table-name): Value of nil is not special.
(tags-next-table): Removed arg RESET; no caller used it.
(visit-tags-table-buffer): Don't need to do tags-expand-table-name in or form.
When table is invalid, only set tags-file-name to nil globally if its
global value contained the losing table file name.
(find-tag-tag): Return a string, not a list.
(find-tag-noselect, find-tag, find-tag-other-window, find-tag-other-frame):
Changed callers.
(etags-recognize-tags-table): Call etags-verify-tags-table, rather than
duplicating its functionality.
(visit-tags-table-buffer): When CONT is 'same, set it to nil after the
cond.  We want the normal list frobbing to take place in this case.
(find-tag-other-window): Save and restore window-point around call to
find-tag-noselect.
1992-12-21 19:08:50 +00:00
Roland McGrath
a42a43055f (ignore): Use defun instead of fset to define; the byte compiler is smart
enough now not to compile this trivial function into slow byte code.
1992-12-21 18:34:22 +00:00
Roland McGrath
ac21ec406a (tagsfiles): New variable.
(TAGS): Depend on $(tagsfiles); use that in cmds.
(tags): Separate phony rule; depends on TAGS.
1992-12-21 18:26:29 +00:00
Richard M. Stallman
be58fa58a9 (Fcall_interactively): For `s', use Fread_string. 1992-12-21 05:38:25 +00:00
Richard M. Stallman
8c74709f51 Display load-path at start. 1992-12-19 20:55:16 +00:00
Jim Blandy
e9fab8d3fc * frame.c (make_terminal_frame): Don't forget to set the
`async_visible' flag of the new frame.
1992-12-18 10:42:10 +00:00
David J. MacKenzie
1a4ea60bd2 *** empty log message *** 1992-12-15 02:35:40 +00:00
Jim Blandy
4af46de60c *** empty log message *** 1992-12-14 02:28:29 +00:00
Jim Blandy
1d650ff1bd * make-dist: Don't bother creating an arch-lib directory; that's
only for installation now.
1992-12-12 15:43:12 +00:00
Jim Blandy
e94740ce87 * configure: Don't make the top-level Makefile read-only - people
may want to edit the values of the path variables.

	Make path specification conform to GNU coding standards.
	* configure (long_usage): Remove all traces of old arguments from
	usage messages, and document the options we do accept in more
	detail: -with-x... and --srcdir.
	(options, boolean_opts): Deleted; we don't have enough options to
	make this worthwhile.
	(prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted,
	along with the code which supported them; these should be set as
	arguments to the top-level make.
	(config_h_opts): Since this no longer doubles as a list of option
	names, make them upper case; this simplifies the code which uses
	them to build the sed command to edit src/config.h.  Change the
	code which sets them.
	(cc, g, O): Don't allow the user to set these using options; they
	should be specified using `CC=' and `CFLAGS=' arguments to the
	top-level make.  Just choose reasonable default values for them,
	and edit them into Makefile.in's default CC and CONFIG_CFLAGS
	values.
	(gnu_malloc, rel_alloc): Don't allow the user to set these using
	options; use them whenever the configuration files say they're
	possible.
	Simplify the argument processing loop.  Don't accept abbreviations
	for option names; these might conflict with other configuration
	options in the future.
	Add some support for the `--srcdir' option.  Check for the sources
	in . and .. if `--srcdir' is omitted.  If the directories we will
	compile in don't exist yet, create them under the current directory.
	Note that the rest of the build process doesn't really support
	this.
	Edit only the top Makefile.  That should edit the others.  Edit
	into the makefile: `version', from lisp/version.el, `configname'
	and `srcdir' from the configuration arguments, `CC' and
	`CONFIG_CFLAGS' as guessed from the presence or absence of GCC in
	the user's path, and LOADLIBES as gleaned from the system
	description files.
	Simplify the report generated; it doesn't need to include any
	description of paths now.
	Make `config.status' exec configure instead of just calling it, so
	there's no harm in overwriting `config.status'.
	* Makefile.in (version, configname): New variables, used to choose
	the default values for datadir and libdir.
	Path variables rearranged into two clearer groups:
	- In the first group are the variables specified by the GNU coding
	  standards (prefix, bindir, datadir, statedir, libdir, mandir,
	  manext, infodir, and srcdir).
	- In the second are the variables actually used for Emacs's paths
	  (lispdir, locallisppath, lisppath, buildlisppath, etcdir, lockdir,
	  archlibdir), which depend on the first category.
	datadir and libdir default to directories under
	${prefix}/lib/emacs instead of ${prefix}/emacs, by popular
	demand.
	etcdir and lispdir default to subdirectories of datadir.
	archlibdir defaults to libdir.
	The new installation tree is a bit deeper than it used to be, so
	use the new make-path program in lib-src to build them all.
	Always build a new src/paths.h.tmp and then move-if-change it to
	src/paths.h, to avoid unnecessary rebuilds while responding to the
	right changes.
	Remove all mention of arch-lib.  Run utility commands from
	lib-src, and let the executables be copied into archlibdir when
	Emacs is installed.
	Add targets for src/Makefile, lib-src/Makefile, and
	oldXMenu/Makefile, editing the values of the path variables into
	them.
	Let lib-src do its own installation.
	(datadir): Default to putting data files under
	${prefix}/lib/emacs/${version}, not /usr/local/emacs.
	(emacsdir): Variable deleted; it would only be confusing to use.
	(lispdir, etcdir): Default to ${datadir}/lisp.
	(mkdir): Use make-path for this.
	(lockdir): Do this in mkdir.
	(Makefile): New target.

	* configure (usage_message): Rename to long_usage.
1992-12-12 15:42:53 +00:00
Jim Blandy
78008d140e * Makefile.in (install, install.sysv, install.xenix, install.aix):
Install the info files in ${infodir}.  Install the executable
	under both `emacs' and `emacs-VERSION'.

	* Makefile.in: Doc fix.

	* Makefile.in (exec_prefix): New variable, as per latest version
	of coding standards.
	(bindir, libdir): Use it, instead of `prefix'.
	(lib-src/Makefile): Edit value of exec_prefix into lib-src/Makefile.

	* Makefile.in (mandir): Make the default value for this depend on
	$(prefix).

	* Makefile.in (datadir, statedir, libdir): Make these all default
	to ${prefix}/lib.
	(lispdir, locallisppath, etcdir, lockdir, archlibdir): Adjusted
	to compensate.

	* Makefile.in (install, install.sysv, install.xenix, install.aix):
	Install the etags and ctags man pages too.

	* Makefile.in (distclean): Don't delete backup files; that's the
	job of extraclean.
	(extraclean): Like distclean, but deletes backup and autosave files.

	Make path specification conform to GNU coding standards.
	* configure (long_usage): Remove all traces of old arguments from
	usage messages, and document the options we do accept in more
	detail: -with-x... and --srcdir.
	(options, boolean_opts): Deleted; we don't have enough options to
	make this worthwhile.
	(prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted,
	along with the code which supported them; these should be set as
	arguments to the top-level make.
	(config_h_opts): Since this no longer doubles as a list of option
	names, make them upper case; this simplifies the code which uses
	them to build the sed command to edit src/config.h.  Change the
	code which sets them.
	(cc, g, O): Don't allow the user to set these using options; they
	should be specified using `CC=' and `CFLAGS=' arguments to the
	top-level make.  Just choose reasonable default values for them,
	and edit them into Makefile.in's default CC and CONFIG_CFLAGS
	values.
	(gnu_malloc, rel_alloc): Don't allow the user to set these using
	options; use them whenever the configuration files say they're
	possible.
	Simplify the argument processing loop.  Don't accept abbreviations
	for option names; these might conflict with other configuration
	options in the future.
	Add some support for the `--srcdir' option.  Check for the sources
	in . and .. if `--srcdir' is omitted.  If the directories we will
	compile in don't exist yet, create them under the current directory.
	Note that the rest of the build process doesn't really support
	this.
	Edit only the top Makefile.  That should edit the others.  Edit
	into the makefile: `version', from lisp/version.el, `configname'
	and `srcdir' from the configuration arguments, `CC' and
	`CONFIG_CFLAGS' as guessed from the presence or absence of GCC in
	the user's path, and LOADLIBES as gleaned from the system
	description files.
	Simplify the report generated; it doesn't need to include any
	description of paths now.
	Make `config.status' exec configure instead of just calling it, so
	there's no harm in overwriting `config.status'.
	* Makefile.in (version, configname): New variables, used to choose
	the default values for datadir and libdir.
	Path variables rearranged into two clearer groups:
	- In the first group are the variables specified by the GNU coding
	  standards (prefix, bindir, datadir, statedir, libdir, mandir,
	  manext, infodir, and srcdir).
	- In the second are the variables actually used for Emacs's paths
	  (lispdir, locallisppath, lisppath, buildlisppath, etcdir, lockdir,
	  archlibdir), which depend on the first category.
	datadir and libdir default to directories under
	${prefix}/lib/emacs instead of ${prefix}/emacs, by popular
	demand.
	etcdir and lispdir default to subdirectories of datadir.
	archlibdir defaults to libdir.
	The new installation tree is a bit deeper than it used to be, so
	use the new make-path program in lib-src to build them all.
	Always build a new src/paths.h.tmp and then move-if-change it to
	src/paths.h, to avoid unnecessary rebuilds while responding to the
	right changes.
	Remove all mention of arch-lib.  Run utility commands from
	lib-src, and let the executables be copied into archlibdir when
	Emacs is installed.
	Add targets for src/Makefile, lib-src/Makefile, and
	oldXMenu/Makefile, editing the values of the path variables into
	them.
	Let lib-src do its own installation.
	(datadir): Default to putting data files under
	${prefix}/lib/emacs/${version}, not /usr/local/emacs.
	(emacsdir): Variable deleted; it would only be confusing to use.
	(lispdir, etcdir): Default to ${datadir}/lisp.
	(mkdir): Use make-path for this.
	(lockdir): Do this in mkdir.
	(Makefile): New target.
1992-12-12 15:42:14 +00:00
Jim Blandy
fd482be5a7 * window.c (Fset_window_configuration): If we're restoring the
configuration of a dead frame, don't bother rebuilding its window
	tree, restoring its focus redirection, or temporarily resizing it
	to fit the saved window configuration.  If the frame which was
	selected when the configuration was captured is now dead, don't
	try to select it.

	* frame.c (Fdelete_frame): Delete all the windows in the frame's
	window tree, using delete_all_subwindows.
	* window.c (delete_all_subwindows): Don't make this static
	anymore.
1992-12-12 15:38:45 +00:00
Jim Blandy
c1dc99a185 * search.c (Fskip_chars_forward, Fskip_chars_backward): Return the
distance traveled.
	(skip_chars): Return the distance traveled, as a Lisp_Object.
1992-12-12 15:37:30 +00:00
Jim Blandy
1e30af705a Give subprocess creation a way to find a valid current directory
for subprocesses when the buffer's default-directory is a handled
	name.
	* fileio.c (Funhandled_file_name_directory): New function.
	(Qunhandled_file_name_directory): New file-name-handler operation.
	(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
	initialize and staticpro Qunhandled_file_name_directory.
	* callproc.c (Fcall_process): Call Funhandled_file_name_directory
	on the buffer's default directory.  Do it earlier in the function
	so there's less to GCPRO.
	* process.c (create_process): Don't check the validity of the
	buffer's default directory here...
	(Fstart_process): Instead, do it here; if we call
	Funhandled_file_name_directory here, there's less GCPROing to do.
1992-12-12 15:36:50 +00:00
Jim Blandy
e86f81cc46 * macros.c (Fend_kbd_macro): Don't use XFASTINT to check if arg is
negative; XFASTINT only works on values known to be positive.
	(Fexecute_kbd_macro): Check QUIT in the repetition loop.  If the
	macro is null, no characters are actually being read, so this
	matters.
1992-12-12 15:35:41 +00:00
Jim Blandy
997bf68d0a * fileio.c (find_file_handler): Rename this to
Ffind_file_name_handler, and make it visible to lisp.  Add a QUIT
	to the loop which scans file-name-handler-alist.  All uses
	changed.
	(syms_of_fileio): Mention this new function in the docstring for
	Vfile_name_handler_alist.  defsubr Sfind_file_name_handler.
	* lisp.h (Ffind_file_name_handler): Added extern declaration.
	* dired.c: All uses of find_file_handler changed here too.
1992-12-12 15:35:12 +00:00
Jim Blandy
4a88b3b0fe * frame.c (Fdelete_frame): Delete all the windows in the frame's
window tree, using delete_all_subwindows.
	* window.c (delete_all_subwindows): Don't make this static
	anymore.
1992-12-12 15:34:44 +00:00
Jim Blandy
642ef2454b Give subprocess creation a way to find a valid current directory
for subprocesses when the buffer's default-directory is a handled
	name.
	* fileio.c (Funhandled_file_name_directory): New function.
	(Qunhandled_file_name_directory): New file-name-handler operation.
	(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
	initialize and staticpro Qunhandled_file_name_directory.
	* callproc.c (Fcall_process): Call Funhandled_file_name_directory
	on the buffer's default directory.  Do it earlier in the function
	so there's less to GCPRO.
	* process.c (create_process): Don't check the validity of the
	buffer's default directory here...
	(Fstart_process): Instead, do it here; if we call
	Funhandled_file_name_directory here, there's less GCPROing to do.

	* fileio.c (find_file_handler): Rename this to
	Ffind_file_name_handler, and make it visible to lisp.  Add a QUIT
	to the loop which scans file-name-handler-alist.  All uses
	changed.
	(syms_of_fileio): Mention this new function in the docstring for
	Vfile_name_handler_alist.  defsubr Sfind_file_name_handler.
	* lisp.h (Ffind_file_name_handler): Added extern declaration.
	* dired.c: All uses of find_file_handler changed here too.

	* fileio.c (syms_of_fileio): Add staticpros for Qexpand_file_name,
	Qdirectory_file_name, Qfile_name_directory,
	Qfile_name_nondirectory, Qfile_name_as_directory.
1992-12-12 15:32:51 +00:00
Jim Blandy
58616e6755 Give subprocess creation a way to find a valid current directory
for subprocesses when the buffer's default-directory is a handled
	name.
	* fileio.c (Funhandled_file_name_directory): New function.
	(Qunhandled_file_name_directory): New file-name-handler operation.
	(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
	initialize and staticpro Qunhandled_file_name_directory.
	* callproc.c (Fcall_process): Call Funhandled_file_name_directory
	on the buffer's default directory.  Do it earlier in the function
	so there's less to GCPRO.
	* process.c (create_process): Don't check the validity of the
	buffer's default directory here...
	(Fstart_process): Instead, do it here; if we call
	Funhandled_file_name_directory here, there's less GCPROing to do.

	* callproc.c (Fcall_process_region): Return the value returned by
	Fcall_process.
1992-12-12 15:31:32 +00:00
Jim Blandy
9e012fc3b7 * Makefile.in (distclean): Don't delete machine.h or system.h;
they don't exist anymore.

	* Makefile.in (distclean): Don't delete autosave or backup files.
	(extraclean): New target; like distclean, but delete autosave
	and backup files too.

	* Makefile.in (srcdir): New variable, not fully implemented.
	(xmakefile): Turn -g and -O in CFLAGS into C_DEBUG_SWITCH and
	C_OPTIMIZE_SWITCH in C_SWITCH_SITE's definition.  Delete junk.cpp
	when done.
	* ymakefile (archlib): Variable definition deleted.  Run programs
	from ../lib-src directly, or use ${archlibdir}.
	(${etc}DOC): Run make-docfile from ${libsrc}, not ${archlib}.
	(${archlib}make-docfile, ${archlib}emacstool): Use ${libsrc}, not
	${archlib}.
1992-12-12 15:29:40 +00:00
Jim Blandy
84128dee7b * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
a different number of arguments than other DEFVARs, recognize it
	specially, and expect the right number of commas.
1992-12-12 15:25:18 +00:00
Jim Blandy
c71beb7551 * Makefile.in (exec_prefix): New variable.
(bindir, libdir): Use it instead of `prefix'.

	* Makefile.in (CFLAGS): #define HAVE_CONFIG_H, too.

	* Makefile.in (libdir): Default to ${prefix}/lib.
	(archlibdir): Adjusted to match.

	* Makefile.in (distclean): Don't delete backup or autosave files.
	(extraclean): Like realclean, but does delete backup and autosave
	files.

	* Makefile.in (realclean): Ignore errors from rm.

	* Makefile.in (distclean): Don't bother to delete ../arch-lib;
	that doesn't exist anymore.

	* Makefile.in (prefix, bindir, libdir, srcdir): New variables, as
	described in the top-level Makefile.
	(UTILITIES): Add make-path to the list of utility programs.
	(../arch-lib): Replaced by the ${archlibdir} target, which places
	the executables in their permanent home.
	(install, install.sysv, install.xenix): Consolidated into one
	target which should work under all circumstances, modulo a few
	ignored error messages.
1992-12-12 15:24:50 +00:00
Jim Blandy
315e49edd0 * vc.el (vc-do-command): Set the default directory of the *vc*
buffer to the directory containing FILE.
1992-12-12 15:22:26 +00:00