(show_help_echo): Add parameters OBJECT and POS.
if HELP is a function, call it with OBJECT and POS as parameters
to get the help to display.
(gen_help_event, kbd_buffer_store_help_event): New functions.
(kbd_buffer_get_event): Construct the Lisp help-event differently.
(read_char): Call show_help_echo with new parameters.
(inhibit_iso_escape_detection): New variable.
(syms_of_coding): Make it a Lisp variable.
(detect_coding_iso2022): If inhibit_iso_escape_detection is
nonzero, ignore ISO2022's escape sequence.
(construct_mouse_click, construct_mouse_wheel)
(construct_drag_n_drop, x_scroll_bar_handle_click)
(w32_read_socket): Always set `arg' member of input_events.
(construct_mouse_click, x_scroll_bar_to_input_event)
(x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
Always set `arg' member of input_events.
(construct_menu_click): Unused function removed.
(x_handle_tool_bar_click): Store the frame in the
frame_or_window slot of TOOL_BAR_EVENT input events instead of
consing. For prefix events, store the frame in the `arg' slot of
the event, otherwise store the key there.
(XTread_socket): Instead of consing, use the frame_or_window slot
of HELP_EVENTs for the frame, and the `arg' slot for the help
string.
(menu_highlight_callback): Store help string in the
`arg' member of the input event; don't cons.
(menubar_selection_callback): Use the `arg' slot of input events
to queue additional information, instead of consing.
(kbd_buffer_gcpro): Renamed from
kbd_buffer_frame_or_window. Now used for all Lisp objects
referenced from the input queue.
(kbd_buffer_store_event): Always use structure assignment for
copying input events. Record all Lisp objects referenced from
events in kbd_buffer_gcpro.
(kbd_buffer_get_event): Construct Lisp `help-echo' events
differently from input events. Test for prefix menu_bar_events
and TOOL_BAR_EVENTs differently. Reset all slots used by an input
event in kbd_buffer_gcpro to nil.
(make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
frame_or_window is equal to its arg member as prefix events.
(stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
used by an input event to nil.
(init_keyboard): Use two times the size of the input queue
for kbd_buffer_gcpro.
(syms_of_keyboard): Likewise.
(struct redisplay_interface): Add parameter
MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
(clear_mouse_face): New function pointer member.
(make_current): Preserve the mouse_face_p flag of the
current glyph row.
(update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
it when any row is written to that contains glyphs highlighted in
mouse-face.
(update_window): Call the window update end hook with new
parameter MOUSE_FACE_OVERWRITTEN_P.
(direct_output_for_insert): Give up if row contains mouse-face.
(x_update_window_end): Add parameter
MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
redisplay in XTframe_up_to_date.
(x_clear_mouse_face): New function.
(x_redisplay_interface): Add pointer to x_clear_mouse_face.
Stefan Monnier [Wed, 12 Jul 2000 01:08:46 +0000 (01:08 +0000)]
(back_comment): Use one switch rather than a few `if's.
Obey open_paren_in_column_0_is_defun_start.
When reverting to the `slow' method, try to nicely handle the case
of nested comments by checking that the comment-starter we found
does indeed match the comment-ender.
(scan_sexps_forward, scan_sexps_forward):
Ignore excessive opening parenthesis rather than throwing an error.
(x_update_window_begin): No need to turn off the mouse
highlight here.
(show_mouse_face): Set the mouse_face_p flag of glyph rows
depending on whether they contain glyphs highlighted in
mouse-face.
Dave Love [Tue, 11 Jul 2000 17:56:56 +0000 (17:56 +0000)]
Don't require easymenu. Use repeat counts in various regexps.
(fortran-mode-syntax-table): Defvar directly.
(fortran-font-lock-keywords-1, fortran-font-lock-keywords-2)
(fortran-font-lock-keywords-3, fortran-font-lock-syntactic-keywords):
Use defvar, not defconst.
(fortran-mode-map): Change locals in `let'. Use `fortran-auto-fill'.
(fortran-mode): Set fortran-comment-line-start-skip,
fortran-comment-line-start-skip, dabbrev-case-fold-search.
(fortran-comment-indent): Use defsubst.
(fortran-indent-comment, fortran-indent-to-column, fortran-break-line):
Use fortran-comment-indent, not fortran-comment-indent-function.
(fortran-comment-region, fortran-electric-line-number): Simplify.
(fortran-auto-fill): New function.
(fortran-do-auto-fill): Deleted.
(fortran-find-comment-start-skip): Check for non-null
comment-start-skip.
(fortran-auto-fill-mode, fortran-fill-statement): Use
fortran-auto-fill.
(fortran-fill): Use fortran-auto-fill. Check for null
comment-start-skip. Simplify final clause and use end-of-line finally.
Eli Zaretskii [Tue, 11 Jul 2000 07:33:06 +0000 (07:33 +0000)]
(show_help_echo): Accept additional parameter
ok_to_overwrite_keystroke_echo.
(read_char): Call show_help_echo with a zero
ok_to_overwrite_keystroke_echo argument.
(yylex): Accept string literals with newlines in them.
(process_pp_line): Handle case of string literal with newline
in it in replacement text, which counts as continuing the
replacement text in GNU C.
(x_fill_stretch_glyph_string): Consume runs of stretch
glyphs instead of a single one.
(BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
with new argument list.
(x_set_glyph_string_gc): Make sure the face's GC is valid.
(try_window_id): If changes are all below what is
displayed in the window, and point is in the window, we still
might have to find point on the display.
(get_keymap_1): Add comment that this function can GC.
(where_is_internal_2, where_is_internal_1): Add GCPROs, add
comment that functions can GC.
(Fset_keymap_parent): GCPRO arg KEYMAP.
(rmail-clear-headers): Don't throw an error
if rmail-ignored-headers is nil.
(rmail-retry-failure): Bind rmail-ignored-headers and
rmail-displayed-headers to nil.
(dired-find-alternate-file): New function.
(dired-mode-map): Bind `a' to dired-find-alternate-file.
(toplevel): Require dired-aux when compiling.
(dired-buffers): Move defvar within file to avoid compiler warning.
(Fwindow_list): Reverse list at the end.
(candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
means allow windows on OWINDOW's frame, only.
(window_loop): Simplified; use Fwindow_list.