bpt/emacs.git
31 years ago(tags-loop-scan): Set default value to an error form.
Roland McGrath [Thu, 21 Jan 1993 22:43:16 +0000 (22:43 +0000)]
(tags-loop-scan): Set default value to an error form.

31 years ago(visit-tags-table-buffer): When propagating a change of name after
Roland McGrath [Thu, 21 Jan 1993 22:36:48 +0000 (22:36 +0000)]
(visit-tags-table-buffer): When propagating a change of name after
file-find-noselect, refer to tags-file-name, not the undefined var FILE.

31 years ago(visit-tags-table-buffer): Error if called with 'same and no current table.
Roland McGrath [Tue, 19 Jan 1993 21:05:15 +0000 (21:05 +0000)]
(visit-tags-table-buffer): Error if called with 'same and no current table.

31 years ago(Fdisplay_buffer): Doc fix.
Roland McGrath [Tue, 19 Jan 1993 00:56:45 +0000 (00:56 +0000)]
(Fdisplay_buffer): Doc fix.

31 years ago* c-mode.el (c-switch-label-regexp): New constant.
Jim Blandy [Sat, 16 Jan 1993 06:04:16 +0000 (06:04 +0000)]
* 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.

31 years ago* xterm.c (x_window_to_scrollbar): Search frames'
Jim Blandy [Sat, 16 Jan 1993 05:58:15 +0000 (05:58 +0000)]
* 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.

31 years ago(Frecent_keys): Doc fix.
Richard M. Stallman [Fri, 15 Jan 1993 21:57:50 +0000 (21:57 +0000)]
(Frecent_keys): Doc fix.

31 years ago(shell): Doc fix.
Richard M. Stallman [Fri, 15 Jan 1993 07:02:35 +0000 (07:02 +0000)]
(shell): Doc fix.

31 years agoAdd copyright and authorship notices.
Paul Eggert [Fri, 15 Jan 1993 05:33:29 +0000 (05:33 +0000)]
Add copyright and authorship notices.

31 years ago(switch-to-buffer-other-frame): Pass t to pop-to-buffer.
Roland McGrath [Thu, 14 Jan 1993 21:28:18 +0000 (21:28 +0000)]
(switch-to-buffer-other-frame): Pass t to pop-to-buffer.

31 years ago(Fwindow_at): Doc fix.
Richard M. Stallman [Thu, 14 Jan 1993 21:20:01 +0000 (21:20 +0000)]
(Fwindow_at): Doc fix.

31 years ago*** empty log message ***
David J. MacKenzie [Thu, 14 Jan 1993 20:38:21 +0000 (20:38 +0000)]
*** empty log message ***

31 years ago(find_entries): If filename ends in .f or .for, don't try anything but Fortran.
Richard M. Stallman [Thu, 14 Jan 1993 20:09:22 +0000 (20:09 +0000)]
(find_entries): If filename ends in .f or .for, don't try anything but Fortran.

31 years agoThe shell comment char is #, not ;.
Jim Blandy [Thu, 14 Jan 1993 17:45:39 +0000 (17:45 +0000)]
The shell comment char is #, not ;.

31 years agoRemove info from the distribution. It looks very out of date now.
Jim Blandy [Thu, 14 Jan 1993 17:37:06 +0000 (17:37 +0000)]
Remove info from the distribution.  It looks very out of date now.

31 years ago* xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
Jim Blandy [Thu, 14 Jan 1993 17:31:56 +0000 (17:31 +0000)]
* xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
the event mask for scrollbars.

31 years ago* make-dist: Include `./lisp/calc-2.02' in the distribution.
Jim Blandy [Thu, 14 Jan 1993 17:30:26 +0000 (17:30 +0000)]
* make-dist: Include `./lisp/calc-2.02' in the distribution.
Add `./cpp', `./info', and `./man' back into the distribution.

31 years ago* dispnew.c (Fredraw_display): DEFUN was missing a closing paren.
Jim Blandy [Thu, 14 Jan 1993 16:15:54 +0000 (16:15 +0000)]
* dispnew.c (Fredraw_display): DEFUN was missing a closing paren.

31 years ago* make-dist: Remember that the authoritative COPYING notice is
Jim Blandy [Thu, 14 Jan 1993 15:37:33 +0000 (15:37 +0000)]
* make-dist: Remember that the authoritative COPYING notice is
`etc/COPYING', not `../etc/COPYING'.

31 years ago* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy [Thu, 14 Jan 1993 15:36:25 +0000 (15:36 +0000)]
* .gdbinit: Add "-geometry +0+0" to default args.
(xscrollbar): New command.

31 years agoMake scrollbar structures into lisp objects, so that they can be
Jim Blandy [Thu, 14 Jan 1993 15:34:59 +0000 (15:34 +0000)]
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.

31 years agoMake scrollbar structures into lisp objects, so that they can be
Jim Blandy [Thu, 14 Jan 1993 15:34:14 +0000 (15:34 +0000)]
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.

31 years ago* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy [Thu, 14 Jan 1993 15:19:55 +0000 (15:19 +0000)]
* 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.

31 years ago* window.c (window_internal_width): New function, which accounts
Jim Blandy [Thu, 14 Jan 1993 15:18:53 +0000 (15:18 +0000)]
* 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.

31 years agoMake scrollbar structures into lisp objects, so that they can be
Jim Blandy [Thu, 14 Jan 1993 15:17:39 +0000 (15:17 +0000)]
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.

31 years ago* window.c (window_internal_width): New function, which accounts
Jim Blandy [Thu, 14 Jan 1993 15:17:11 +0000 (15:17 +0000)]
* 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.

31 years ago* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy [Thu, 14 Jan 1993 15:15:15 +0000 (15:15 +0000)]
* 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.

31 years ago* term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook,
Jim Blandy [Thu, 14 Jan 1993 15:14:21 +0000 (15:14 +0000)]
* 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.

31 years ago* frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
Jim Blandy [Thu, 14 Jan 1993 15:13:19 +0000 (15:13 +0000)]
* 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.

31 years ago* window.c (window_internal_width): New function.
Jim Blandy [Thu, 14 Jan 1993 15:12:23 +0000 (15:12 +0000)]
* 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.

31 years ago* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy [Thu, 14 Jan 1993 15:11:19 +0000 (15:11 +0000)]
* 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.

31 years ago* window.c (window_internal_width): New function.
Jim Blandy [Thu, 14 Jan 1993 15:10:14 +0000 (15:10 +0000)]
* 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.

31 years agoMake scrollbar structures into lisp objects, so that they can be
Jim Blandy [Thu, 14 Jan 1993 15:09:51 +0000 (15:09 +0000)]
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.

31 years ago* fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as
Jim Blandy [Thu, 14 Jan 1993 15:08:15 +0000 (15:08 +0000)]
* fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as
described in doc string.

31 years ago* emacs.c (shut_down_emacs): New function.
Jim Blandy [Thu, 14 Jan 1993 15:07:32 +0000 (15:07 +0000)]
* 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.

31 years ago* config.h.in: protect against multiple #inclusions.
Jim Blandy [Thu, 14 Jan 1993 15:02:14 +0000 (15:02 +0000)]
* config.h.in: protect against multiple #inclusions.

* config.h.in: Add a declaration for getenv.

31 years ago* scrollbar.el: New file.
Jim Blandy [Thu, 14 Jan 1993 14:52:32 +0000 (14:52 +0000)]
* scrollbar.el: New file.
* term/x-win.el: Require 'scrollbar.

31 years ago* simple.el (set-goal-column): Make this command disabled by default.
Jim Blandy [Thu, 14 Jan 1993 14:50:16 +0000 (14:50 +0000)]
* simple.el (set-goal-column): Make this command disabled by default.

31 years ago* page-ext.el (next-page): Correctly handle negative page count.
Jim Blandy [Thu, 14 Jan 1993 14:49:17 +0000 (14:49 +0000)]
* page-ext.el (next-page): Correctly handle negative page count.

31 years ago* frame.el (frame-notice-user-settings): Don't try to delete the
Jim Blandy [Thu, 14 Jan 1993 14:48:57 +0000 (14:48 +0000)]
* frame.el (frame-notice-user-settings): Don't try to delete the
initial frame if the user took care of that.

31 years agoInitial revision
Jim Blandy [Thu, 14 Jan 1993 06:41:03 +0000 (06:41 +0000)]
Initial revision

31 years agoDefine MAKE, and use where appropriate.
Richard M. Stallman [Wed, 13 Jan 1993 22:20:28 +0000 (22:20 +0000)]
Define MAKE, and use where appropriate.

31 years ago(Fredraw_display): Redraw all visible frames.
Richard M. Stallman [Wed, 13 Jan 1993 05:17:34 +0000 (05:17 +0000)]
(Fredraw_display): Redraw all visible frames.
Make the non-multi-frame version interactive.

31 years ago(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman [Wed, 13 Jan 1993 01:31:45 +0000 (01:31 +0000)]
(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.

31 years ago(float_to_string): Add final 0 if text ends with decimal pt.
Richard M. Stallman [Wed, 13 Jan 1993 00:25:03 +0000 (00:25 +0000)]
(float_to_string): Add final 0 if text ends with decimal pt.

31 years ago(Fset_default_file_modes, Fdefault_file_modes): Renamed from .._mode.
Richard M. Stallman [Tue, 12 Jan 1993 00:12:21 +0000 (00:12 +0000)]
(Fset_default_file_modes, Fdefault_file_modes): Renamed from .._mode.

31 years ago(Fset_default_file_mode, Fdefault_file_mode):
Richard M. Stallman [Tue, 12 Jan 1993 00:04:37 +0000 (00:04 +0000)]
(Fset_default_file_mode, Fdefault_file_mode):
Renamed from Fset_umask and Fumask; sense of arg is reversed.

31 years ago(Fwrite_region): Doc fix.
Richard M. Stallman [Mon, 11 Jan 1993 23:15:30 +0000 (23:15 +0000)]
(Fwrite_region): Doc fix.

31 years ago(kill-append): Doc fix.
Richard M. Stallman [Mon, 11 Jan 1993 05:10:15 +0000 (05:10 +0000)]
(kill-append): Doc fix.

31 years ago(float_to_string): Add `.0' at end if needed.
Richard M. Stallman [Sun, 10 Jan 1993 20:10:26 +0000 (20:10 +0000)]
(float_to_string): Add `.0' at end if needed.

31 years ago(Fload): If warn that .elc file is older,
Richard M. Stallman [Sun, 10 Jan 1993 16:44:36 +0000 (16:44 +0000)]
(Fload): If warn that .elc file is older,
inhibit the ordinary message that would follow.

31 years ago(mail-unsent-separator): Add `-- begin message --'.
Richard M. Stallman [Sat, 9 Jan 1993 14:30:36 +0000 (14:30 +0000)]
(mail-unsent-separator): Add `-- begin message --'.

31 years ago(dired-mark-read-regexp): Give dired-read-regexp 1 arg.
Richard M. Stallman [Sat, 9 Jan 1993 13:54:05 +0000 (13:54 +0000)]
(dired-mark-read-regexp): Give dired-read-regexp 1 arg.

31 years ago(dired-regexp-history): New history list.
Richard M. Stallman [Sat, 9 Jan 1993 13:53:49 +0000 (13:53 +0000)]
(dired-regexp-history): New history list.
(dired-read-regexp): Use that history list.  Take just one arg.

31 years ago(update-copyright): Doc fix.
Roland McGrath [Sat, 9 Jan 1993 00:01:00 +0000 (00:01 +0000)]
(update-copyright): Doc fix.

31 years agoUse process-send-string instead of send-string.
Michael I. Bushnell [Fri, 8 Jan 1993 21:14:11 +0000 (21:14 +0000)]
Use process-send-string instead of send-string.

31 years ago(add-change-log-entry): Search for existing ChangeLog
Richard M. Stallman [Fri, 8 Jan 1993 21:13:23 +0000 (21:13 +0000)]
(add-change-log-entry): Search for existing ChangeLog
in parent dir and its parents.

31 years agoAlso, write a newline after the token.
Michael I. Bushnell [Fri, 8 Jan 1993 21:12:58 +0000 (21:12 +0000)]
Also, write a newline after the token.

31 years agoAlso, write a newline after the token.
Michael I. Bushnell [Fri, 8 Jan 1993 20:36:35 +0000 (20:36 +0000)]
Also, write a newline after the token.

31 years agotimer.c (notify): Flush stdout after writing message to avoid lossage
Michael I. Bushnell [Fri, 8 Jan 1993 20:36:14 +0000 (20:36 +0000)]
timer.c (notify): Flush stdout after writing message to avoid lossage
on terminals.

31 years agoDoc fixes.
Richard M. Stallman [Fri, 8 Jan 1993 20:33:12 +0000 (20:33 +0000)]
Doc fixes.

31 years ago(run-at-time): Use a pipe to talk to the timer process.
Roland McGrath [Fri, 8 Jan 1993 20:28:41 +0000 (20:28 +0000)]
(run-at-time): Use a pipe to talk to the timer process.

31 years agotimer.c (notify): Flush stdout after writing message to avoid lossage
Michael I. Bushnell [Fri, 8 Jan 1993 20:26:54 +0000 (20:26 +0000)]
timer.c (notify): Flush stdout after writing message to avoid lossage
on terminals.

31 years agoInitial revision
Richard M. Stallman [Fri, 8 Jan 1993 15:30:08 +0000 (15:30 +0000)]
Initial revision

31 years agoentered into RCS
Richard M. Stallman [Fri, 8 Jan 1993 15:12:37 +0000 (15:12 +0000)]
entered into RCS

31 years ago(Frandom): Change arg name.
Richard M. Stallman [Fri, 8 Jan 1993 09:08:24 +0000 (09:08 +0000)]
(Frandom): Change arg name.

31 years ago(unexec): Don't call exit, just return.
Richard M. Stallman [Thu, 7 Jan 1993 10:22:16 +0000 (10:22 +0000)]
(unexec): Don't call exit, just return.

31 years ago(mail-send): Don't clear modified or delete autosave if visiting a file.
Richard M. Stallman [Thu, 7 Jan 1993 10:18:46 +0000 (10:18 +0000)]
(mail-send): Don't clear modified or delete autosave if visiting a file.

31 years ago* simple.el (kill-region): Change interactive spec to signal an
Jim Blandy [Thu, 7 Jan 1993 02:50:39 +0000 (02:50 +0000)]
* simple.el (kill-region): Change interactive spec to signal an
error if the buffer is read-only, and remove the code to do a
copy-region-as-kill if the buffer is read-only.

* simple.el (set-mark-command): Clarify doc string.

* simple.el (prefix-arg-internal): Don't apply string-to-char to
get the first element of the key sequence - it might be a vector.

31 years agoSmall changes to keep people from running Emacs under X.
Jim Blandy [Thu, 7 Jan 1993 02:49:15 +0000 (02:49 +0000)]
Small changes to keep people from running Emacs under X.

31 years ago*** empty log message ***
Jim Blandy [Thu, 7 Jan 1993 01:47:11 +0000 (01:47 +0000)]
*** empty log message ***

31 years agoentered into RCS
Richard M. Stallman [Wed, 6 Jan 1993 04:35:15 +0000 (04:35 +0000)]
entered into RCS

31 years agoNew version received.
Richard M. Stallman [Tue, 5 Jan 1993 22:25:05 +0000 (22:25 +0000)]
New version received.

31 years ago($os alternatives for sco and isc): Preserve the specified os version if any.
Richard M. Stallman [Tue, 5 Jan 1993 05:43:42 +0000 (05:43 +0000)]
($os alternatives for sco and isc): Preserve the specified os version if any.
Each alternative handles both 386 and 486, preserving distinction.
($basic_machine alternatives for sco and isc): Deleted.
(i[34]86v32, i[34]86v, i[34]86v4):
Handle both cpus together, preserving distinction.

31 years ago(apropos-match-keys): Handle non-chars as keys.
Richard M. Stallman [Mon, 4 Jan 1993 11:36:14 +0000 (11:36 +0000)]
(apropos-match-keys): Handle non-chars as keys.

31 years ago(Fx_get_resource): Use EMACS_CLASS to make class_key
Richard M. Stallman [Sun, 3 Jan 1993 23:43:29 +0000 (23:43 +0000)]
(Fx_get_resource): Use EMACS_CLASS to make class_key
even if SUBCLASS is specified.  I don't know whether that is
right, but that's what the doc says.
Cosmetic changes in arg names and doc string.

31 years agoTranslate sunos5 to solaris2, and solaris1 to sunos4.
Richard M. Stallman [Sat, 2 Jan 1993 21:51:50 +0000 (21:51 +0000)]
Translate sunos5 to solaris2, and solaris1 to sunos4.

31 years ago(compilation-sentinel): Change buffer-read-only with let.
Richard M. Stallman [Sat, 2 Jan 1993 21:21:14 +0000 (21:21 +0000)]
(compilation-sentinel): Change buffer-read-only with let.

31 years ago(texinfo-tex-command): Use texi2dvi.
Richard M. Stallman [Wed, 30 Dec 1992 08:14:01 +0000 (08:14 +0000)]
(texinfo-tex-command): Use texi2dvi.
(texinfo-texindex, texinfo-texindex-command): Commented out.

31 years ago[! emacs] [HAVE_CONFIG_H]: #include "config.h"
Roland McGrath [Tue, 29 Dec 1992 21:58:10 +0000 (21:58 +0000)]
[! emacs] [HAVE_CONFIG_H]: #include "config.h"

31 years ago(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman [Tue, 29 Dec 1992 21:06:51 +0000 (21:06 +0000)]
(mouse-buffer-menu): Select the window clicked on.

31 years ago(add-change-log-entry): Notice when ENTRY is equal to FILE-NAME,
Roland McGrath [Tue, 29 Dec 1992 01:07:26 +0000 (01:07 +0000)]
(add-change-log-entry): Notice when ENTRY is equal to FILE-NAME,
not the hard-wired string "ChangeLog".
Added missing regexp-quote's in same-day entry search.
Search only in the first paragraph for a similar entry to add to.

31 years agoDefault to bsd for *-sequent.
Richard M. Stallman [Mon, 28 Dec 1992 19:57:15 +0000 (19:57 +0000)]
Default to bsd for *-sequent.

31 years ago(abbreviated-home-dir): New variable.
Richard M. Stallman [Sat, 26 Dec 1992 08:46:31 +0000 (08:46 +0000)]
(abbreviated-home-dir): New variable.
(abbreviate-file-name): Properly convert abbreviated homedir to ~.

31 years ago(visit-tags-table-buffer): When picking a table and using tags-table-list,
Roland McGrath [Thu, 24 Dec 1992 22:42:05 +0000 (22:42 +0000)]
(visit-tags-table-buffer): When picking a table and using tags-table-list,
skip over nonexistent files in the list.

31 years ago(etags-verify-tags-table): Use eq instead of = in case char-after returns
Roland McGrath [Thu, 24 Dec 1992 22:33:11 +0000 (22:33 +0000)]
(etags-verify-tags-table): Use eq instead of = in case char-after returns
nil.

31 years ago*** empty log message ***
Jim Blandy [Thu, 24 Dec 1992 06:49:45 +0000 (06:49 +0000)]
*** empty log message ***

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:23:08 +0000 (06:23 +0000)]
* 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.

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:21:14 +0000 (06:21 +0000)]
* 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.

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:19:31 +0000 (06:19 +0000)]
* 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.

31 years ago* xdisp.c: #include "termhooks.h".
Jim Blandy [Thu, 24 Dec 1992 06:18:24 +0000 (06:18 +0000)]
* 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.

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:17:18 +0000 (06:17 +0000)]
* 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.

31 years ago* keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Jim Blandy [Thu, 24 Dec 1992 06:16:36 +0000 (06:16 +0000)]
* 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.

31 years ago* floatfns.c (Flog): Fix unescaped newline in string.
Jim Blandy [Thu, 24 Dec 1992 06:16:01 +0000 (06:16 +0000)]
* 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'.

31 years ago* scroll.c (do_scrolling): When bcopying the max_ascent field from
Jim Blandy [Thu, 24 Dec 1992 06:13:57 +0000 (06:13 +0000)]
* 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.

31 years ago* keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Jim Blandy [Thu, 24 Dec 1992 06:13:24 +0000 (06:13 +0000)]
* 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.

31 years ago* keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
Jim Blandy [Thu, 24 Dec 1992 06:13:00 +0000 (06:13 +0000)]
* 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.

31 years ago* keyboard.c: Protect all references to kbd_buffer_frames with
Jim Blandy [Thu, 24 Dec 1992 06:12:04 +0000 (06:12 +0000)]
* 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.

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:07:02 +0000 (06:07 +0000)]
* 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.

31 years ago* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy [Thu, 24 Dec 1992 06:05:56 +0000 (06:05 +0000)]
* 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.