1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-07 14:50:21 +00:00
Commit Graph

1774 Commits

Author SHA1 Message Date
Roland McGrath
2ae6a918b9 (visit-tags-table-buffer): When propagating a change of name after
file-find-noselect, refer to tags-file-name, not the undefined var FILE.
1993-01-21 22:36:48 +00:00
Roland McGrath
bf349f3687 (visit-tags-table-buffer): Error if called with 'same and no current table. 1993-01-19 21:05:15 +00:00
Roland McGrath
46d3268aa2 (Fdisplay_buffer): Doc fix. 1993-01-19 00:56:45 +00:00
Jim Blandy
3a65941e41 * c-mode.el (c-switch-label-regexp): New constant.
(electric-c-terminator, c-indent-line, indent-c-exp): Use it to
	correctly recognize default labels in switch statements.
1993-01-16 06:04:16 +00:00
Jim Blandy
cf7cb199e5 * xterm.c (x_window_to_scrollbar): Search frames'
condemned_scrollbars list as well; input might arrive during
	redisplay.
	(x_scrollbar_report_motion): Don't forget to BLOCK_INPUT.
	(XTjudge_scrollbars): Clear the condemned scrollbar list before
	traversing it, so we don't try to process an event on a scrollbar
	we've killed.
1993-01-16 05:58:15 +00:00
Richard M. Stallman
22d7cb8974 (Frecent_keys): Doc fix. 1993-01-15 21:57:50 +00:00
Richard M. Stallman
62c9fad7e2 (shell): Doc fix. 1993-01-15 07:02:35 +00:00
Paul Eggert
0b67eabf74 Add copyright and authorship notices. 1993-01-15 05:33:29 +00:00
Roland McGrath
2be5e5dbe6 (switch-to-buffer-other-frame): Pass t to pop-to-buffer. 1993-01-14 21:28:18 +00:00
Richard M. Stallman
b0c33a9470 (Fwindow_at): Doc fix. 1993-01-14 21:20:01 +00:00
David J. MacKenzie
65565c6881 *** empty log message *** 1993-01-14 20:38:21 +00:00
Richard M. Stallman
1e8e116226 (find_entries): If filename ends in .f or .for, don't try anything but Fortran. 1993-01-14 20:09:22 +00:00
Jim Blandy
bf03a38a2a The shell comment char is #, not ;. 1993-01-14 17:45:39 +00:00
Jim Blandy
23d030749e Remove info from the distribution. It looks very out of date now. 1993-01-14 17:37:06 +00:00
Jim Blandy
9a572e2a2a * xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
the event mask for scrollbars.
1993-01-14 17:31:56 +00:00
Jim Blandy
fda4e8f6d1 * make-dist: Include `./lisp/calc-2.02' in the distribution.
Add `./cpp', `./info', and `./man' back into the distribution.
1993-01-14 17:30:26 +00:00
Jim Blandy
9d0d777ceb * dispnew.c (Fredraw_display): DEFUN was missing a closing paren. 1993-01-14 16:15:54 +00:00
Jim Blandy
96858c4206 * make-dist: Remember that the authoritative COPYING notice is
`etc/COPYING', not `../etc/COPYING'.
1993-01-14 15:37:33 +00:00
Jim Blandy
b236749086 * .gdbinit: Add "-geometry +0+0" to default args.
(xscrollbar): New command.
1993-01-14 15:36:25 +00:00
Jim Blandy
4e0277936a Make scrollbar structures into lisp objects, so that they can be
GC'd; this allows windows and scrollbars can refer to each other
	without worrying about dangling pointers.
	* xterm.h (struct x_display): vertical_scrollbars and
	judge_timestamp members deleted.
	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
	New macros, to help deal with the lispy structures, and deal with
	the graphics.
	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
	(struct frame): New fields `scrollbars' and
	`condemned_scrollbars', for use by the scrollbar implementation.
	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
	* window.h (struct window): Doc fix for vertical_scrollbar field.
	* frame.c (make_frame): Initialize the `scrollbars' and
	`condemned_scrollbars' fields of the new frame.
	* alloc.c (mark_object): Mark the `scrollbars' and
	`condemned_scrollbars' slots of frames.
	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
	frames' scrollbar field, not their x.display->vertical_scrollbars
	field.
	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
	x_scrollbar_remove, XTset_vertical_scrollbar,
	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
	x_scrollbar_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): Substantially rewritten to correct
	typos and brainos, and to accomodate the lispy structures.

	* xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
	PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
	(CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
	PIXEL_TO_CHAR_COL): New macros.
	* xfns.c [not HAVE_X11] (Fx_create_frame): Use the
	PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
	character size, and the CHAR_TO_PIXEL* macros for vice versa.
	* xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
	scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
	clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
	x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.
1993-01-14 15:34:59 +00:00
Jim Blandy
12ba150f2f Make scrollbar structures into lisp objects, so that they can be
GC'd; this allows windows and scrollbars can refer to each other
	without worrying about dangling pointers.
	* xterm.h (struct x_display): vertical_scrollbars and
	judge_timestamp members deleted.
	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
	New macros, to help deal with the lispy structures, and deal with
	the graphics.
	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
	(struct frame): New fields `scrollbars' and
	`condemned_scrollbars', for use by the scrollbar implementation.
	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
	* window.h (struct window): Doc fix for vertical_scrollbar field.
	* frame.c (make_frame): Initialize the `scrollbars' and
	`condemned_scrollbars' fields of the new frame.
	* alloc.c (mark_object): Mark the `scrollbars' and
	`condemned_scrollbars' slots of frames.
	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
	frames' scrollbar field, not their x.display->vertical_scrollbars
	field.
	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
	x_scrollbar_remove, XTset_vertical_scrollbar,
	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
	x_scrollbar_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): Substantially rewritten to correct
	typos and brainos, and to accomodate the lispy structures.

	* xterm.c (x_scrollbar_background_expose): Function deleted; we
	don't want anything in the background there after all.
	(XTread_socket): Don't call x_scrollbar_background_expose.  We
	don't care.

	* xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
	PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
	(CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
	PIXEL_TO_CHAR_COL): New macros.
	* xfns.c [not HAVE_X11] (Fx_create_frame): Use the
	PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
	character size, and the CHAR_TO_PIXEL* macros for vice versa.
	* xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
	scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
	clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
	x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.

	* xterm.c (x_wm_set_size_hint): The max_width and max_height
	members of the size_hints are expressed in pixels, not columns.

	* xterm.c (x_set_window_size): Remove ibw var; it's not used.
	Set FRAME_WIDTH (f) to cols instead of rows.  Duh.

	* xterm.c (pixel_to_glyph_coords): Properly set *bounds to the
	character cell bounding the position, even when the position is
	off the frame.

	* termhooks.h (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.

	* xterm.c (XTmouse_position): Entirely rewritten, using
	XTranslateCoordinates.  Call x_scrollbar_report_motion to handle
	scrollbar movement events.
	(x_scrollbar_report_motion): New function, to help out
	XTmouse_position.

	* termhooks.h (struct input_event): Replace the frame member with
	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
	Remove the scrollbar member; instead, use frame_or_window to hold the
	window whose scrollbar was clicked.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
	make_lispy_event): Adjust references to frame member of struct
	input_event to use frame_or_window now.
	* xterm.c (construct_mouse_click, XTread_socket): Same.

	* xterm.c (last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
	last_mouse_scroll_range_start, last_mouse_scroll_range_end):
	Replaced with...
	(last_mouse_scrollbar): New variable.
	(note_mouse_movement): Clear last_mouse_scrollbar when we have
	receieved a new motion.
	(syms_of_xterm): Staticpro last_mouse_scrollbar.

	* xterm.c (note_mouse_position): Renamed to note_mouse_movement,
	because that's what it really does.
	(x_scrollbar_handle_motion): Renamed to x_scrollbar_note_movement,
	for consistency.
	(XTread_socket): Adjusted.

	* xterm.c (XTset_scrollbar): Renamed to XTset_vertical_scrollbar.
	(x_term_init): Adjusted.

	* emacs.c (shut_down_emacs): New function.
	(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
	Fkill_emacs; the latter will try to perform operations on the X
	server and die a horrible death.
	* lisp.h (shut_down_emacs): Add extern declaration for it.

	* xterm.c (x_error_quitter): Move the abort call to after we print
	the error message.  No harm in that.
1993-01-14 15:34:14 +00:00
Jim Blandy
cf177271a6 * xfns.c (Fx_create_frame): After mapping the frame, call
SET_FRAME_GARBAGED, not just plain FRAME_GARBAGED.

	* xfns.c (Qvertical_scrollbars): New symbol.  Use it as the name
	of the parameter which decides whether or not the frame has
	scrollbars, instead of Qvertical_scrollbar.
	(Fx_create_frame): Adjusted accordingly.
	(syms_of_xfns): Initialize and staticpro Qvertical_scrollbars.
	(x_set_vertical_scrollbar): Renamed to x_set_vertical_scrollbars.
	(x_frame_parms): Adjusted accordingly.

	* xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
	PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
	(CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
	PIXEL_TO_CHAR_COL): New macros.
	* xfns.c [not HAVE_X11] (Fx_create_frame): Use the
	PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
	character size, and the CHAR_TO_PIXEL* macros for vice versa.
	* xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
	scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
	clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
	x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.

	* xfns.c (x_set_name): To request that the modelines be redrawn,
	execute the statement "update_mode_lines = 1;" instead of the
	silly statement "update_mode_lines;".

	* xfns.c (x_set_vertical_scrollbars): Don't try to set the
	X window's size if the frame's X window hasn't been created yet.

	* xfns.c (x_figure_window_size): Set the frame's
	vertical_scrollbar_extra field before trying to calculate its
	pixel dimensions.

	* xfns.c (x_window): When calling x_implicitly_set_name for the
	sake of drawing the name for the first time, remember to clear and
	set the frame's explicit_name member as well as its name member.
	(Fx_create_frame): Set the frame's explicit_name member if the
	user specified the name explicitly.

	* xfns.c (Fx_get_resource): Add CLASS argument, to give class of
	ATTRIBUTE.
	[not HAVE_X11]: Change definition of Fx_get_resource macro
	accordingly.
	(x_get_arg): Add CLASS argument, to give the class of ATTRIBUTE.
	Pass it along to Fx_get_resource.
	(x_figure_window_size, x_icon): Pass new argument to x_get_arg.
	(x_default_parameter): Add XCLASS argument, to give the class of
	XPROP.  Pass it along to x_get_arg.
	(Fx_create_frame): Pass new args to x_get_arg and
	x_default_parameter.

	* xfns.c (Fx_create_frame): Use the same resource names and
	classes as xterm and Emacs 18.
1993-01-14 15:19:55 +00:00
Jim Blandy
b1d1124bde * window.c (window_internal_width): New function, which accounts
for scrollbars if present.
	* lisp.h (window_internal_height, window_internal_width): Add
	extern declarations for these.
	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
	buffer_posn_from_coords): Use window_internal_width instead of
	writing out its definition.
	* indent.c (compute_motion): Doc fix; mention scrollbars and
	window_internal_width.
	(pos_tab_offset, Fvertical_motion): Use window_internal_width
	instead of writing it out.
	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
	Fscroll_right): Same.
	* xdisp.c (redisplay, try_window, try_window_id,
	display_text_line): Same.

	* xdisp.c (display_string): Add new variable `f', to be W's
	frame.  Use it to set desired_glyphs, and to get the frame's width
	to decide whether or not to draw vertical bars.

	* xdisp.c (display_text_line): If we're using vertical scrollbars,
	don't draw the vertical bars separating side-by-side windows.
	(display_string): Same thing.  Draw spaces to fill in the part of
	the mode line that is under the scrollbar in partial-width
	windows.

	* xdisp.c (display_text_line): Use the usable internal width of
	the window, as calculated above, as the limit on the length of the
	overlay arrow's image, rather than using the window's width field,
	less one.

	* xdisp.c (redisplay): Call condemn_scrollbars_hook and
	judge_scrollbars_hook whenever they are set, not just when the
	frame has vertical scrollbars.

	* termhooks.h (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.

	* xdisp.c (echo_area_display): Move the assignment of f and the
	check for visibility out of the "#ifdef MULTI_FRAME" clause; they
	should work under any circumstances.

	* xdisp.c (redisplay_window): If we're not going to redisplay this
	window because it's a minibuffer whose contents have already been
	updated, go ahead and jump to the scrollbar refreshing code
	anyway; they still need to be updated.  Initialize opoint, so it's
	known to be valid when we jump.  Calculate the scrollbar settings
	properly for minibuffers, no matter what they are displaying at
	the time.

	* xdisp.c (redisplay_windows): Don't restore the current buffer
	and its point before refreshing the scrollbars; we need the buffer
	accurate.
1993-01-14 15:18:53 +00:00
Jim Blandy
7c299e7aa4 Make scrollbar structures into lisp objects, so that they can be
GC'd; this allows windows and scrollbars can refer to each other
	without worrying about dangling pointers.
	* xterm.h (struct x_display): vertical_scrollbars and
	judge_timestamp members deleted.
	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
	New macros, to help deal with the lispy structures, and deal with
	the graphics.
	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
	(struct frame): New fields `scrollbars' and
	`condemned_scrollbars', for use by the scrollbar implementation.
	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
	* window.h (struct window): Doc fix for vertical_scrollbar field.
	* frame.c (make_frame): Initialize the `scrollbars' and
	`condemned_scrollbars' fields of the new frame.
	* alloc.c (mark_object): Mark the `scrollbars' and
	`condemned_scrollbars' slots of frames.
	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
	frames' scrollbar field, not their x.display->vertical_scrollbars
	field.
	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
	x_scrollbar_remove, XTset_vertical_scrollbar,
	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
	x_scrollbar_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): Substantially rewritten to correct
	typos and brainos, and to accomodate the lispy structures.
1993-01-14 15:17:39 +00:00
Jim Blandy
535e0b8ef6 * window.c (window_internal_width): New function, which accounts
for scrollbars if present.
	* lisp.h (window_internal_height, window_internal_width): Add
	extern declarations for these.
	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
	buffer_posn_from_coords): Use window_internal_width instead of
	writing out its definition.
	* indent.c (compute_motion): Doc fix; mention scrollbars and
	window_internal_width.
	(pos_tab_offset, Fvertical_motion): Use window_internal_width
	instead of writing it out.
	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
	Fscroll_right): Same.
	* xdisp.c (redisplay, try_window, try_window_id,
	display_text_line): Same.

	* termhooks.h (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.
1993-01-14 15:17:11 +00:00
Jim Blandy
ec3f896ca7 * termhooks.h (mouse_position_hook): Doc fix.
(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.

	* termhooks.h (struct input_event): Replace the frame member with
	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
	Remove the scrollbar member; instead, use frame_or_window to hold the
	window whose scrollbar was clicked.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
	make_lispy_event): Adjust references to frame member of struct
	input_event to use frame_or_window now.
	* xterm.c (construct_mouse_click, XTread_socket): Same.
1993-01-14 15:15:15 +00:00
Jim Blandy
371fbaebef * term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook,
redeem_scrollbar_hook, judge_scrollbars_hook): Removed dumbo
	"externs" from these.  They're supposed to be real definitions.

	* termhooks.h (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.
1993-01-14 15:14:21 +00:00
Jim Blandy
1dc77cc346 * frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
garbaged whenever it goes from invisible to visible.
	* dispextern.h (frame_garbaged): Move extern declaration from here...
	* frame.h (frame_garbaged): ... to here.  The FRAME_SAMPLE_VISIBILITY
	macro uses it now, and this seems to be just as modular.  Make a
	new page, just for this and message_buf_print.
	(struct frame): Doc fix for the `visible' field.
	* process.c: #include "frame.h" instead of "dispextern.h"; the
	only thing we care about from it is the frame_garbaged
	declaration.
	* ymakefile: Note dependency change.
1993-01-14 15:13:19 +00:00
Jim Blandy
02213e820f * window.c (window_internal_width): New function.
* lisp.h (window_internal_height, window_internal_width): Add
	extern declarations for these.
	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
	buffer_posn_from_coords): Use window_internal_width instead of
	writing out its definition.
	* indent.c (compute_motion): Doc fix; mention scrollbars and
	window_internal_width.
	(pos_tab_offset, Fvertical_motion): Use window_internal_width
	instead of writing it out.
	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
	Fscroll_right): Same.
	* xdisp.c (redisplay, try_window, try_window_id,
	display_text_line): Same.

	* emacs.c (shut_down_emacs): New function.
	(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
	Fkill_emacs; the latter will try to perform operations on the X
	server and die a horrible death.
	* lisp.h (shut_down_emacs): Add extern declaration for it.
1993-01-14 15:12:23 +00:00
Jim Blandy
7b4aedb99a * termhooks.h (mouse_position_hook): Doc fix.
(set_vertical_scrollbar_hook): This doesn't return anything any
	more, and doesn't take a struct scrollbar * argument any more.
	(condemn_scrollbars_hook, redeem_scrollbar_hook,
	judge_scrollbars_hook): Doc fixes.
	* term.c (mouse_position_hook): Doc fix.
	(set_vertical_scrollbar_hook): This doesn't return
	anything any more.  Doc fixes.
	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
	window from *mouse_position_hook and pass it to
	make_lispy_movement, instead of working with a pointer to a struct
	scrollbar.
	(make_lispy_event): We don't need a window_from_scrollbar function
	anymore; we are given the window directly in *EVENT.
	Unify the code which generates
	text-area mouse clicks and scrollbar clicks; use the same code to
	distinguish clicks from drags on the scrollbar as in the text area.
	Distinguish clicks from drags by storing a copy of the lispy
	position list returned as part of the event.
	(button_down_location): Make this a lisp vector, rather than an
	array of random structures.
	(struct mouse_position): Remove this; it's been replaced by a lisp
	list.
	(make_lispy_movement): Accept the scrollbar's window as a
	parameter, rather than the scrollbar itself.
	If FRAME is zero, assume that the other arguments are garbage.
	(syms_of_keyboard): No need to staticpro each window of
	button_down_location now; just initialize and staticpro it.
	* window.c (window_from_scrollbar): Function deleted; no longer
	needed.
	* xdisp.c (redisplay_window): Just pass the window to
	set_vertical_scrollbar hook; don't pass the scrollbar object too.
	* xterm.c (XTmouse_position): Don't return a pointer to the
	scrollbar for scrollbar motion; instead, return the scrollbar's
	window.

	* keyboard.c (apply_modifiers): Don't assume that the Qevent_kind
	property of BASE is set when we first create the new modified
	symbol.  Check that the Qevent_kind property is properly set each
	time we return any symbol.

	* termhooks.h (struct input_event): Replace the frame member with
	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
	Remove the scrollbar member; instead, use frame_or_window to hold the
	window whose scrollbar was clicked.
	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
	make_lispy_event): Adjust references to frame member of struct
	input_event to use frame_or_window now.
	* xterm.c (construct_mouse_click, XTread_socket): Same.

	* keyboard.c (kbd_buffer_frames): Renamed to
	kbd_buffer_frame_or_window, and made to exist even when
	MULTI_FRAME isn't defined; single-frame systems might have
	scrollbars.  Use it to GCPRO the frame_or_window field in the
	event queue.
	(kbd_buffer_store_event, kbd_buffer_get_event,
	stuff_buffered_input): Set and clear the
	appropriate element of kbd_buffer_frame_or_window, whether or not
	MULTI_FRAME is #defined.
	(read_avail_input): When reading characters directly from stdin,
	set the frame_or_window field of the event appropriately,
	depending on whether or not MULTI_FRAME is #defined.
	(Fdiscard_input, init_keyboard): Zap kbd_buffer_frame_or_window,
	not kbd_buffer_frames.
	(syms_of_keyboard): Initialize and staticpro
	kbd_buffer_frame_or_window, whether or not MULTI_FRAME is
	#defined.

	* keyboard.c (head_table): Make Qscrollbar_movement have a
	Qevent_kind property of Qmouse_movement, not Qscrollbar_movement.

	* keyboard.c (read_key_sequence): If we decide to throw away a
	mouse event which has prefix symbols (`mode-line',
	`vertical-scrollbar', etcetera), remember that we may have to
	unwind two characters, not just one.

	* keyboard.c (read_key_sequence): Doc fixes.

	* keyboard.c (kbd_buffer_store_event): Fix reversed sense of test
	for focus redirection.

	* keyboard.c (read_char): Don't echo mouse movements.
1993-01-14 15:11:19 +00:00
Jim Blandy
fa61c7012f * window.c (window_internal_width): New function.
* lisp.h (window_internal_height, window_internal_width): Add
	extern declarations for these.
	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
	buffer_posn_from_coords): Use window_internal_width instead of
	writing out its definition.
	* indent.c (compute_motion): Doc fix; mention scrollbars and
	window_internal_width.
	(pos_tab_offset, Fvertical_motion): Use window_internal_width
	instead of writing it out.
	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
	Fscroll_right): Same.
	* xdisp.c (redisplay, try_window, try_window_id,
	display_text_line): Same.
1993-01-14 15:10:14 +00:00
Jim Blandy
20a6c8d708 Make scrollbar structures into lisp objects, so that they can be
GC'd; this allows windows and scrollbars can refer to each other
	without worrying about dangling pointers.
	* xterm.h (struct x_display): vertical_scrollbars and
	judge_timestamp members deleted.
	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
	New macros, to help deal with the lispy structures, and deal with
	the graphics.
	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
	(struct frame): New fields `scrollbars' and
	`condemned_scrollbars', for use by the scrollbar implementation.
	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
	* window.h (struct window): Doc fix for vertical_scrollbar field.
	* frame.c (make_frame): Initialize the `scrollbars' and
	`condemned_scrollbars' fields of the new frame.
	* alloc.c (mark_object): Mark the `scrollbars' and
	`condemned_scrollbars' slots of frames.
	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
	frames' scrollbar field, not their x.display->vertical_scrollbars
	field.
	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
	x_scrollbar_remove, XTset_vertical_scrollbar,
	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
	x_scrollbar_expose, x_scrollbar_handle_click,
	x_scrollbar_handle_motion): Substantially rewritten to correct
	typos and brainos, and to accomodate the lispy structures.

	* frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
	garbaged whenever it goes from invisible to visible.
	* dispextern.h (frame_garbaged): Move extern declaration from here...
	* frame.h (frame_garbaged): ... to here.  The FRAME_SAMPLE_VISIBILITY
	macro uses it now, and this seems to be just as modular.  Make a
	new page, just for this and message_buf_print.
	(struct frame): Doc fix for the `visible' field.
	* process.c: #include "frame.h" instead of "dispextern.h"; the
	only thing we care about from it is the frame_garbaged
	declaration.
	* ymakefile: Note dependency change.
1993-01-14 15:09:51 +00:00
Jim Blandy
178577827e * fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as
described in doc string.
1993-01-14 15:08:15 +00:00
Jim Blandy
40be253a3b * emacs.c (shut_down_emacs): New function.
(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
	Fkill_emacs; the latter will try to perform operations on the X
	server and die a horrible death.
	* lisp.h (shut_down_emacs): Add extern declaration for it.
1993-01-14 15:07:32 +00:00
Jim Blandy
7e1fc708f4 * config.h.in: protect against multiple #inclusions.
* config.h.in: Add a declaration for getenv.
1993-01-14 15:02:14 +00:00
Jim Blandy
6d62a90e1f * scrollbar.el: New file.
* term/x-win.el: Require 'scrollbar.
1993-01-14 14:52:32 +00:00
Jim Blandy
d5ab20330a * simple.el (set-goal-column): Make this command disabled by default. 1993-01-14 14:50:16 +00:00
Jim Blandy
817d6535a9 * page-ext.el (next-page): Correctly handle negative page count. 1993-01-14 14:49:17 +00:00
Jim Blandy
faa3b11db6 * frame.el (frame-notice-user-settings): Don't try to delete the
initial frame if the user took care of that.
1993-01-14 14:48:57 +00:00
Jim Blandy
396890d1bd Initial revision 1993-01-14 06:41:03 +00:00
Richard M. Stallman
08edea3c96 Define MAKE, and use where appropriate. 1993-01-13 22:20:28 +00:00
Richard M. Stallman
7bc18990e1 (Fredraw_display): Redraw all visible frames.
Make the non-multi-frame version interactive.
1993-01-13 05:17:34 +00:00
Richard M. Stallman
40a45a9f94 (mouse-save-then-kill): When deleting, avoid delay
and don't set the mark.  Replace obsolete fn event-point.
(mouse-kill): Replace obsolete fn event-point.
1993-01-13 01:31:45 +00:00
Richard M. Stallman
0601fd3d8f (float_to_string): Add final 0 if text ends with decimal pt. 1993-01-13 00:25:03 +00:00
Richard M. Stallman
c24e9a53b3 (Fset_default_file_modes, Fdefault_file_modes): Renamed from .._mode. 1993-01-12 00:12:21 +00:00
Richard M. Stallman
5f85ea584e (Fset_default_file_mode, Fdefault_file_mode):
Renamed from Fset_umask and Fumask; sense of arg is reversed.
1993-01-12 00:04:37 +00:00
Richard M. Stallman
1d386d28ff (Fwrite_region): Doc fix. 1993-01-11 23:15:30 +00:00
Richard M. Stallman
88c1aa792a (kill-append): Doc fix. 1993-01-11 05:10:15 +00:00
Richard M. Stallman
edb2a7079b (float_to_string): Add `.0' at end if needed. 1993-01-10 20:10:26 +00:00
Richard M. Stallman
51ac6f8388 (Fload): If warn that .elc file is older,
inhibit the ordinary message that would follow.
1993-01-10 16:44:36 +00:00