bpt/emacs.git
31 years ago(C_SWITCH_MACHINE): Don't define if GCC.
Richard M. Stallman [Sat, 13 Feb 1993 11:34:19 +0000 (11:34 +0000)]
(C_SWITCH_MACHINE): Don't define if GCC.

31 years ago(enable-flow-control...): Renamed from evade...
Richard M. Stallman [Thu, 11 Feb 1993 23:32:07 +0000 (23:32 +0000)]
(enable-flow-control...): Renamed from evade...
(enable-flow-control): Add autoload.

31 years ago(Finsert_buffer_substring): Proper error for non-ex buffer.
Richard M. Stallman [Thu, 11 Feb 1993 23:21:01 +0000 (23:21 +0000)]
(Finsert_buffer_substring): Proper error for non-ex buffer.
(Fcompare_buffer_substrings): Likewise.

31 years ago(Fcompare_buffer_substrings): New function.
Richard M. Stallman [Thu, 11 Feb 1993 06:00:51 +0000 (06:00 +0000)]
(Fcompare_buffer_substrings): New function.

31 years agoremoved m88kbcs, changed delta88 and harris to
John Hassey [Wed, 10 Feb 1993 17:56:58 +0000 (17:56 +0000)]
removed m88kbcs, changed delta88 and harris to
        use sysv3.

31 years agoUpdate GPL version.
Richard M. Stallman [Wed, 10 Feb 1993 07:08:53 +0000 (07:08 +0000)]
Update GPL version.

31 years ago(set-gosmacs-bindings): Fix binding of \eh.
Richard M. Stallman [Wed, 10 Feb 1993 06:45:33 +0000 (06:45 +0000)]
(set-gosmacs-bindings): Fix binding of \eh.

31 years ago(char_ins_del_cost): Use FRAME_WIDTH, not FRAME_HEIGHT.
Richard M. Stallman [Wed, 10 Feb 1993 06:14:12 +0000 (06:14 +0000)]
(char_ins_del_cost): Use FRAME_WIDTH, not FRAME_HEIGHT.

31 years agoFix copyright notice.
Richard M. Stallman [Tue, 9 Feb 1993 09:58:19 +0000 (09:58 +0000)]
Fix copyright notice.

31 years ago(add-change-log-entry): Undo Jan 25 change. It worked for buffers in
Roland McGrath [Mon, 8 Feb 1993 22:25:34 +0000 (22:25 +0000)]
(add-change-log-entry): Undo Jan 25 change.  It worked for buffers in
indented-text-mode, but lost for change-log-mode, which is what matters.

31 years ago(compilation-forget-errors): Just set
Roland McGrath [Mon, 8 Feb 1993 20:46:10 +0000 (20:46 +0000)]
(compilation-forget-errors): Just set
compilation-directory-stack to nil; no need to loop through it.
(next-error): For a non-numeric prefix arg, pass nil for
compile-reinitialize-errors's FIND-AT-LEAST arg.
(next-error): When getting marker for error source location, be
sure to examine buffer local value of compilation-old-error-list
before switching to source file buffer.

31 years ago(sort-subr): Fix previous change.
Richard M. Stallman [Sun, 7 Feb 1993 16:44:11 +0000 (16:44 +0000)]
(sort-subr): Fix previous change.

31 years ago(sort-build-lists): Record the key as pair of positions;
Richard M. Stallman [Sun, 7 Feb 1993 05:54:14 +0000 (05:54 +0000)]
(sort-build-lists): Record the key as pair of positions;
don't copy string from buffer.
(sort-subr): Use compare-buffer-substrings.

31 years ago(mail-setup): Use fill-region-as-paragraph
Richard M. Stallman [Sun, 7 Feb 1993 04:56:23 +0000 (04:56 +0000)]
(mail-setup): Use fill-region-as-paragraph
for To field; handle the CC just like the To.

31 years ago(extra_keyboard_modifiers): New Lisp var.
Richard M. Stallman [Sun, 7 Feb 1993 00:31:58 +0000 (00:31 +0000)]
(extra_keyboard_modifiers): New Lisp var.
(read_char): Support ctl and meta bits in extra_keyboard_modifiers.

31 years ago(XTread_socket): Support extra_keyboard_modifiers.
Richard M. Stallman [Sun, 7 Feb 1993 00:30:36 +0000 (00:30 +0000)]
(XTread_socket): Support extra_keyboard_modifiers.

31 years ago(i[34]86sol2): New abbrev for i[34]86-unknown-solaris2.
Jim Wilson [Fri, 5 Feb 1993 23:42:43 +0000 (23:42 +0000)]
(i[34]86sol2):  New abbrev for i[34]86-unknown-solaris2.

31 years ago(make-comint): Added docstring.
Roland McGrath [Fri, 5 Feb 1993 18:28:05 +0000 (18:28 +0000)]
(make-comint): Added docstring.

31 years agoRestore nuked information in minibuffer history bindings.
Roland McGrath [Fri, 5 Feb 1993 17:41:42 +0000 (17:41 +0000)]
Restore nuked information in minibuffer history bindings.
Use intelligent method of disabling completion-oriented bindings.

31 years agoOnce again, go back to ordinary next-history-element
Richard M. Stallman [Fri, 5 Feb 1993 02:06:38 +0000 (02:06 +0000)]
Once again, go back to ordinary next-history-element
for M-n in minibuf, even for completion.

31 years ago(sort-subr): Doc fixes.
Richard M. Stallman [Wed, 3 Feb 1993 04:33:30 +0000 (04:33 +0000)]
(sort-subr): Doc fixes.

31 years ago(mail-do-fcc): Allow dash in timezone name.
Richard M. Stallman [Tue, 2 Feb 1993 20:40:41 +0000 (20:40 +0000)]
(mail-do-fcc): Allow dash in timezone name.

31 years ago* simple.el (kill-region): If the buffer is read-only, do beep,
Jim Blandy [Mon, 1 Feb 1993 22:31:17 +0000 (22:31 +0000)]
* simple.el (kill-region): If the buffer is read-only, do beep,
but also put the region in the kill ring.  Doc fix.

31 years ago* texinfo.el (texinfo-mode): Make page-delimiter buffer-local, and
Jim Blandy [Mon, 1 Feb 1993 22:19:52 +0000 (22:19 +0000)]
* texinfo.el (texinfo-mode): Make page-delimiter buffer-local, and
set it according to texinfo-chapter-level-regexp.

31 years ago(mail-abbrev-end-of-buffer): Changed interactive spec from "P" to "p".
Roland McGrath [Sun, 31 Jan 1993 20:48:19 +0000 (20:48 +0000)]
(mail-abbrev-end-of-buffer): Changed interactive spec from "P" to "p".

31 years ago(c-macro-expand): Use expanded name to write or delete.
Richard M. Stallman [Sat, 30 Jan 1993 03:43:24 +0000 (03:43 +0000)]
(c-macro-expand): Use expanded name to write or delete.
Send two eofs.

31 years ago(force_fit_type): Abort if T not INTEGER_CST.
Richard M. Stallman [Sat, 30 Jan 1993 02:16:57 +0000 (02:16 +0000)]
(force_fit_type): Abort if T not INTEGER_CST.

31 years ago* window.c (Fscroll_left, Fscroll_right): Don't forget to apply
Jim Blandy [Sat, 30 Jan 1993 01:21:00 +0000 (01:21 +0000)]
* window.c (Fscroll_left, Fscroll_right): Don't forget to apply
XWINDOW to selected_window before passing it to window_internal_width.

31 years ago* xmenu.c (Fx_popup_menu): Don't forget to turn the frame-relative
Jim Blandy [Fri, 29 Jan 1993 22:13:36 +0000 (22:13 +0000)]
* xmenu.c (Fx_popup_menu): Don't forget to turn the frame-relative
coordinates for the menu position into root-window-relative
coordinates.

31 years ago* lread.c (read1): Although digits followed by a '.' are an
Jim Blandy [Fri, 29 Jan 1993 21:32:37 +0000 (21:32 +0000)]
* lread.c (read1): Although digits followed by a '.' are an
integer, a single . by itself (like, say, \.) should be a symbol.

31 years ago(next-complete-history-element): Restore point after replacing the
Roland McGrath [Thu, 28 Jan 1993 20:22:03 +0000 (20:22 +0000)]
(next-complete-history-element): Restore point after replacing the
buffer text with the appropriate history element.

31 years ago(sendmail-program): Try /usr/ucblib/sendmail.
Richard M. Stallman [Thu, 28 Jan 1993 06:17:47 +0000 (06:17 +0000)]
(sendmail-program): Try /usr/ucblib/sendmail.

31 years agoDon't use the completion-oriented history commands.
Richard M. Stallman [Thu, 28 Jan 1993 06:16:04 +0000 (06:16 +0000)]
Don't use the completion-oriented history commands.

31 years ago* make-dist: Don't distributed the RCS files in the etc directory.
Jim Blandy [Tue, 26 Jan 1993 04:28:27 +0000 (04:28 +0000)]
* make-dist: Don't distributed the RCS files in the etc directory.

31 years ago* fns.c (internal_equal): Protect the clause for comparing numbers
Jim Blandy [Tue, 26 Jan 1993 03:05:54 +0000 (03:05 +0000)]
* fns.c (internal_equal): Protect the clause for comparing numbers
of different tpes with a "#ifdef LISP_FLOAT_TYPE".

31 years agoJimB's changes since January 18th
Jim Blandy [Tue, 26 Jan 1993 01:58:16 +0000 (01:58 +0000)]
JimB's changes since January 18th

31 years agoJimB's changes from January 18 to present
Jim Blandy [Tue, 26 Jan 1993 01:56:29 +0000 (01:56 +0000)]
JimB's changes from January 18 to present

31 years ago* disass.el (disassemble): Add autoload cookie for this.
Jim Blandy [Tue, 26 Jan 1993 01:36:02 +0000 (01:36 +0000)]
* disass.el (disassemble): Add autoload cookie for this.
* bytecomp.el (byte-decompile-bytecode): Add an autoload for this.

compiled-function-p has been renamed to byte-code-function-p.
* subr.el: Define compiled-function-p as an alias for it.
* bytecomp.el: Register compiled-function-p as obsolete.
* bytecomp.el, byte-opt.el, disass.el, help.el, map-ynp.el: Change
uses.

unread-command-event has been replaced by unread-command-events.
* simple.el (prefix-arg-internal): Use this to push back all
key sequences for processing by the main command loop, instead of
trying to simulate its behavior ourselves.
* bytecomp.el: Document unread-command-event as an obsolete
variable, although nothing but the GNU Emacs 19 sources use it.
Adjust obsolescence message for unread-command-char.
* comint.el (comint-dynamic-list-completions): Change uses of
unread-command-event to work with unread-command-events.
* ebuff-menu.el (electric-buffer-list, Electric-buffer-menu-exit):
Same.
* edebug.el (edebug-outside-excursion): Same.
* ehelp.el (electric-help-command-loop): Same.
* electric.el (Electric-command-loop): Same.
* emerge.el (emerge-show-file-name): Same.
* fortran.el (fortran-abbrev-start,
fortran-window-create-momentarily): Same.
* gnus.el (gnus-Subject-next-article): Same.
* info.el (Info-summary): Same.
* isearch-mode.el (isearch-update, isearch-unread): Same.
* map-ynp.el (map-y-or-n-p): Same.
* mlsupport.el (push-back-character): Same.
* replace.el (perform-replace): Same.
* simula.el (simula-electric-label): Same.
* subr.el (read-quoted-char, momentary-string-display): Same.
* sun-mouse.el (mouse-second-hit): Same.
* terminal.el (te-escape-extended-command-unread): Same.
* vip.el (vip-escape-to-emacs, vip-prefix-arg-value,
vip-prefix-arg-com): Same.

31 years agocompiled-function-p has been renamed to byte-code-function-p.
Jim Blandy [Tue, 26 Jan 1993 01:29:51 +0000 (01:29 +0000)]
compiled-function-p has been renamed to byte-code-function-p.
* subr.el: Define compiled-function-p as an alias for it.
* bytecomp.el: Register compiled-function-p as obsolete.
* bytecomp.el, byte-opt.el, disass.el, help.el, map-ynp.el: Change
uses.

31 years agox-selection-value has been renamed to x-selection.
Jim Blandy [Tue, 26 Jan 1993 01:26:58 +0000 (01:26 +0000)]
x-selection-value has been renamed to x-selection.
x-own-selection has been renamed to x-set-selection, and the order
of its arguments has been reversed, for consistency with other
lisp functions like put and aset.
* term/x-win.el (x-select-text): Adjusted.
(x-cut-buffer-or-selection-value): Check the primary selection,
using x-selection, instead of checking the cut buffer again.

* term/x-win.el: Doc fix.

31 years ago(tags-query-replace): C-t
Roland McGrath [Mon, 25 Jan 1993 23:30:39 +0000 (23:30 +0000)]
(tags-query-replace): C-t

31 years ago[TERMINFO]: Don't define LIBS_TERMCAP.
Richard M. Stallman [Mon, 25 Jan 1993 20:12:52 +0000 (20:12 +0000)]
[TERMINFO]: Don't define LIBS_TERMCAP.

31 years ago[__GNUC__] (LD_SWITCH_SYSTEM): Remove -a.
Richard M. Stallman [Mon, 25 Jan 1993 20:11:29 +0000 (20:11 +0000)]
[__GNUC__] (LD_SWITCH_SYSTEM): Remove -a.
[__GNUC__] (ORDINARY_LINK): Defined.

31 years ago(add-change-log-entry): Restrict PARAGRAPH-END to being on the first
Roland McGrath [Mon, 25 Jan 1993 17:05:57 +0000 (17:05 +0000)]
(add-change-log-entry): Restrict PARAGRAPH-END to being on the first
page.

31 years ago(next-complete-history-element): Use only buffer contents before point
Roland McGrath [Mon, 25 Jan 1993 16:59:48 +0000 (16:59 +0000)]
(next-complete-history-element): Use only buffer contents before point
to match history elements.

31 years ago({next,previous}-complete-history-element): New functions.
Roland McGrath [Mon, 25 Jan 1993 00:45:01 +0000 (00:45 +0000)]
({next,previous}-complete-history-element): New functions.
Bind them to M-n/M-p and next/prior in minibuffer completion maps.

31 years ago* xterm.c (x_scrollbar_create): Set the scrollbars to use
Jim Blandy [Fri, 22 Jan 1993 02:47:12 +0000 (02:47 +0000)]
* xterm.c (x_scrollbar_create): Set the scrollbars to use
EastGravity.

* frame.c (Fdelete_frame): Clear the frame's display after calling
the window-system-dependent frame destruction routine.  We
no longer need to pass the display as a separate argument to
x_destroy_window.
* xterm.c (x_destroy_window): Put the code which clears out f's
display here, right after we free the storage it points to.  Put
everything, including the code which clears x_focus_frame and
x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.

31 years ago* frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy [Fri, 22 Jan 1993 02:45:16 +0000 (02:45 +0000)]
* frame.c (Fdelete_frame): Clear the frame's display after calling
the window-system-dependent frame destruction routine.  We
no longer need to pass the display as a separate argument to
x_destroy_window.
* xterm.c (x_destroy_window): Put the code which clears out f's
display here, right after we free the storage it points to.  Put
everything, including the code which clears x_focus_frame and
x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.

* frame.c (Fdelete_frame): Clear the frame's display after calling
the window-system-dependent frame destruction routine.  We
no longer need to pass the display as a separate argument to
x_destroy_window.
* xterm.c (x_destroy_window): Put the code which clears out f's
display here, right after we free the storage it points to.  Put
everything, including the code which clears x_focus_frame and
x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.

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 --'.