Richard M. Stallman [Fri, 9 Oct 1992 02:05:10 +0000 (02:05 +0000)]
(mail-unsent-separator): Allow "original message" as alternative.
Allow extra dashes and spaces.
(rmail-retry-failure): Ignore case while searching for unsent sep.
Richard M. Stallman [Thu, 8 Oct 1992 08:35:26 +0000 (08:35 +0000)]
(add-log-current-defun): In normal C case,
start with beginning-of-line.
In last (fallback) case, start with end-of-line.
(add-log-current-defun-header-regexp): In first alternative
within the parens, don't allow space as last character.
Richard M. Stallman [Thu, 8 Oct 1992 06:44:58 +0000 (06:44 +0000)]
(cmulisp-mode): Eliminate compatibility code calling
lisp-mode-variables with no arg.
(cmulisp-mode-map): Use shared-lisp-mode-map as tail.
(cmulisp-args-to-list): Fix typo in recursive call.
(cmulisp-buffer): Define variable.
Richard M. Stallman [Thu, 8 Oct 1992 06:44:24 +0000 (06:44 +0000)]
(custom-prin1-chars): Var defined, and renamed from prin1-chars.
(circle-tree, circle-table): Define vars.
(cust-print-vector, cust-print-list): Rename level to circle-level.
(cust-print-top-level): Likewise.
(circle-level): Var defined.
Jim Blandy [Wed, 7 Oct 1992 20:46:31 +0000 (20:46 +0000)]
* mouse.el: Begin adapting this to the new event format.
(event-window, event-point, mouse-coords, mouse-timestamp):
Removed.
(event-start, event-end, posn-window, posn-point, posn-col-row,
posn-timestamp): New accessors; these are defsubsts.
(mouse-delete-window, mouse-delete-other-windows,
mouse-split-window-vertically, mouse-set-point): Rewritten to use
the new accessors.
* mouse.el: Remove hack of binding down-mouse-1.
* mouse.el (mouse-movement-p): Add docstring for this.
Richard M. Stallman [Mon, 5 Oct 1992 21:09:26 +0000 (21:09 +0000)]
(vc-steal-lock): Use mail-setup, and do like `mail'.
Supply vc-finish-steal as an action on sending.
(vc-finish-steal): Delete the code to send the message.
Joseph Arceneaux [Mon, 5 Oct 1992 20:38:54 +0000 (20:38 +0000)]
* rmail.el (rmail-first-unseen-message): Don't show the message,
just return its number, if there was an unseen message.
(rmail): Check for unseen messages before calling
rmail-get-new-mail. After getting the new mail, call
rmail-show-message to show the pre-existing unseen message, or if
that is nil, the current message, which rmail-get-new-mail sets to
the first new message.
Jim Blandy [Sat, 3 Oct 1992 15:37:35 +0000 (15:37 +0000)]
* keyboard.c (read_key_sequence): Treat mouse clicks on non-text
areas as if they were prefixed with the symbol denoting the
area clicked on - `mode-line', etcetera.
When we throw away an unbound `down-' event, reset mock_input as
well.
* keyboard.c (Qevent_symbol_element_mask, Qmodifier_cache): Two
new symbols, used to implement caches on event heads. These take
the place of some of the caching that modify_event_symbol used to do.
(parse_modifiers_uncached, apply_modifiers_uncached,
lispy_modifier_list, parse_modifiers, apply_modifiers): New
functions, which replace format_modifiers and reorder_modifiers;
they can be useful elsewhere too.
(reorder_modifiers, modify_event_symbol): Re-implement these in
terms of parse_modifiers and apply_modifiers. modify_event_symbol
now uses a much simpler cache, and takes advantage of the caches
maintained by parse_ and apply_modifiers.
(follow_key): Don't modify NEXT if KEY has no bindings.
(read_key_sequence): Drop unbound `down-' events, and turn unbound
`drag-' events into clicks if that would make them bound. This
benefits from the rewriting of the modifier key handling code.
(syms_of_keyboard): Initialize and intern
Qevent_symbol_element_mask and Qmodifier_cache.
* keyboard.c (echo_prompt): Terminate the echo buffer properly
even when the string is too long to display in the minibuffer.
(echo_truncate): Just return echoptr - echobuf, rather than
calling strlen on echobuf.
* keyboard.c (modifier_names): The modifier is named "control",
not "ctrl".
Jim Blandy [Sat, 3 Oct 1992 07:15:35 +0000 (07:15 +0000)]
* window.c (SAVE_WINDOW_DATA_SIZE): Define this using sizeof,
instead of just saying it's 7; that way, we won't get screwed if
we add members to struct save_window_data.
* window.c (Fset_window_configuration): The pointer to the
saved window data is called `data', not just `d'.
Jim Blandy [Sat, 3 Oct 1992 05:42:42 +0000 (05:42 +0000)]
* window.c (struct save_window_data): Save the currently selected
frame, too.
(Fset_window_configuration): Restore the frame's selected window
using Fselect_window, and then restore the selected frame using
Fselect_frame.
(Fcurrent_window_configuration): Record the currently selected
frame. Update docstring to describe the information now recorded.
* window.c (Fset_window_configuration): Clean up the way we save
and restore the frame's size.
* window.c (struct save_window_data): Add a member called
focus_frame, to save and restore the screen's focus frame.
(Fset_window_configuration): Redirect the frame's focus as
indicated in the window configuration.
(Fcurrent_window_configuration): Record the frame's current focus.
Jim Blandy [Sat, 3 Oct 1992 05:10:14 +0000 (05:10 +0000)]
* xterm.c (x_find_modifier_meanings): If there are no
modifiers containing a Meta_ keysym, use the Alt keysyms to
denote meta.
(construct_mouse_click): Set the down_modifier bit on mouse
button press events.
(XTread_socket): When processing keypress events, use
x_meta_mod_mask when processing ordinary ASCII characters, not
just when processing function keys and other non-ASCII events.
(XTread_socket): If we receive a MappingNotify event with the
`request' member set to `MappingModifier', then call
x_find_modifier_meanings to refresh x_meta_mod_mask.
Jim Blandy [Sat, 3 Oct 1992 03:03:45 +0000 (03:03 +0000)]
* keyboard.c (modify_event_symbol): Make sure that the unmodified
event header gets the proper properties set on it, by recursing
and letting the same code build the properties for all event symbols.
* keyboard.c (Qmouse_click): Fix typo which assigned `mouse-click'
symbol to Qmouse_movement.
Jim Blandy [Sat, 3 Oct 1992 00:06:36 +0000 (00:06 +0000)]
* minibuf.c (read_minibuf): Don't bother to save the current
frame's focus, and have read_minibuf_unwind restore it; saving and
restoring the window configurations will take care of that.
(read_minibuf_unwind): Don't worry about restoring the frame's focus.
Jim Blandy [Sat, 3 Oct 1992 00:05:39 +0000 (00:05 +0000)]
* keymap.c (access_keymap, store_in_keymap,
Fsingle_key_description): No need to check for
EVENT_HAS_PARAMETERS before using EVENT_HEAD; the latter now
works properly on all sorts of events.
Jim Blandy [Fri, 2 Oct 1992 23:56:44 +0000 (23:56 +0000)]
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
are not 5 elements long.
(EVENT_HEAD): Work correctly on all sorts of events, not just
events with parameters.
(EVENT_WINDOW, EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON,
EVENT_WINDOW_POSN, EVENT_TIMESTAMP): These aren't useful
anymore; this information may appear twice in an event. These
are replaced by the POSN_ accessors, which are meant to be
composed with the EVENT_START and EVENT_END accessors.
(EVENT_START, EVENT_END): Two new accessors, to get at the
starting and ending position of an event.
(POSN_WINDOW, POSN_BUFFER_POSN, PONS_SCROLLBAR_BUTTON,
POSN_WINDOW_POSN, POSN_TIMESTAMP): New macros, to futher
diasassemble the values returned by EVENT_START and EVENT_END.
* keyboard.h (Qevent_unmodified): Extern declaration replaced by...
(Qevent_symbol_elements): This.
(EVENT_HEAD_UNMODIFIED): Use the Qevent_symbol_elements
property, rather than the Qevent_unmodified property.
Jim Blandy [Fri, 2 Oct 1992 23:55:39 +0000 (23:55 +0000)]
* keyboard.c (echo_char, read_char): Apply EVENT_HEAD without first
testing for EVENT_HAS_PARAMETERS; EVENT_HEAD works properly on
all sorts of events now.
(read_key_sequence): Use the new accessors to decide in which window
an event occurred.
* keyboard.c (Qevent_unmodified): Replaced by...
(Qevent_symbol_elements): New property.
(syms_of_keyboard): initialize and staticpro the latter, not the
former.
* keyboard.c (readable_events): This doesn't need to scan and
discard mouse release events anymore; it just uses
EVENT_QUEUES_EMPTY.
(kbd_buffer_get_event): No need to skip past mouse release events.
* keyboard.c (button_down_location): New variable, which
stores the location at which each button was pressed, so we
can build a complete drag event when the button is released.
(make_lispy_event): When a button is pressed, record its
location in button_down_location, and turn it into a `down'
event. When a button is released, compare its release
location with its press location, and decide whether to call
it a `click' or `drag' event.
Change mouse movement events to be arranged like click events.
(format_modifiers): Note that the click modifier has no
written representation.
(modifier_names, modifer_symbols): New variables, used to
create the Qevent_symbol_elements property.
(modify_event_symbol): Change the format of the modified
symbol cache; there are too many modifier bits now to use a
vector indexed by a modifier mask. Use an assoc-list instead.
Document the format of the cache.
Put the Qevent_symbol_elements property on each new symbol,
instead of a Qevent_unmodified property.
(symbols_of_keyboard): Put Qevent_symbol_elements properties on
the symbols specified in head_table, not Qevent_unmodifed properties.
Initialize and staticpro modifier_symbols, and staticpro the
window elements of button_down_location.
Joseph Arceneaux [Fri, 2 Oct 1992 19:59:42 +0000 (19:59 +0000)]
* alloc.c: #include "intervals.h".
(init_intervals, make_interval,
mark_interval, mark_interval_tree): New functions conditionally
defined.
(make_uninit_string): Call INITIALIZE_INTERVAL.
(INIT_INTERVALS, UNMARK_BALANCE_INTERVALS, MARK_INTERVAL_TREE):
New macros, conditionally defined.
(mark_object): Call MARK_INTERVAL_TREE in case Lisp_String.
(gc_sweep): If text properties are in use, place all unmarked
intervals on the free list. Call UNMARK_BALANCE_INTERVALS on
`buffer->intervals' when unmarking `buffer'.
(compact_strings): Include INTERVAL_PTR_SIZE in calculation for
target of bcopy when relocating strings.
(init_alloc_once): Call INIT_INTERVALS.
(make_pure_string): Include INTERVAL_PTR_SIZE in calculation of
`size'.
Roland McGrath [Thu, 1 Oct 1992 02:00:41 +0000 (02:00 +0000)]
(compilation-parse-errors): Save (match-beginning 0) in a variable, so the
looking-at call doesn't clobber its value when we want to use it to back up
before the error we discard.
Make sure compilation-error-list is at least two elts long before checking
its first two elts for being in the same file.
Joseph Arceneaux [Thu, 1 Oct 1992 00:56:11 +0000 (00:56 +0000)]
* buffer.h: New macro TEMP_SET_PT. If intervals are used, SET_PT
and TEMP_SET_PT are function calls.
Similarly for BUF_SET_PT and BUF_TEMP_SET_PT.
Added DECLARE_INTERVALS to buffer structure to conditionally
compile an interval tree into it..
Jim Blandy [Wed, 30 Sep 1992 11:57:51 +0000 (11:57 +0000)]
* xterm.c (x_meta_mod_mask): New variable, indicating which X
modifier bits denote meta keys.
(x_find_modifier_meanings): New function, to set x_meta_mod_mask.
(x_convert_modifiers): Use that.
(x_term_init): Call x_find_modifier_meanings.
* xterm.c (XTread_socket): Pass PropertyNotify events from the
root window to x_invalidate_cut_buffer_cache.
(x_term_init): Call x_watch_cut_buffer_cache here.