1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-01 01:41:01 -08:00
Commit graph

1298 commits

Author SHA1 Message Date
Richard M. Stallman
58ff020d72 (insert-buffer): Before reading arg, barf if read-only. 1992-10-04 03:46:01 +00:00
Richard M. Stallman
af36339a34 Dox fix. 1992-10-03 18:03:17 +00:00
Richard M. Stallman
a864e33e0a Doc fix. 1992-10-03 17:56:40 +00:00
Jim Blandy
0a7f1fc0b5 * 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".
1992-10-03 15:37:35 +00:00
Jim Blandy
20d2471455 * alloc.c (Fmemory_limit): New function.
(syms_of_alloc): Defsubr it.
1992-10-03 08:36:49 +00:00
Jim Blandy
ff06df24f6 * 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'.
1992-10-03 07:15:35 +00:00
Jim Blandy
bdc727bf41 * 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.
1992-10-03 05:42:42 +00:00
Jim Blandy
f689eb05f4 * 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.
1992-10-03 05:10:14 +00:00
Jim Blandy
8058415c7a * process.c (wait_reading_process_input): If the select returns
ENOMEM, treat that like EINTR under Ultrix.
1992-10-03 03:30:53 +00:00
Jim Blandy
13b5e56c9b * 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.
1992-10-03 03:03:45 +00:00
Richard M. Stallman
62c48f87e9 (open-line): Shield undo from the hack to insert at pt-1. 1992-10-03 02:21:51 +00:00
Richard M. Stallman
f28f04cca2 (Fprimitive_undo): When undoing an insert, move point and then delete. 1992-10-03 02:12:40 +00:00
Jim Blandy
45288343f0 Doc fix. 1992-10-03 01:09:59 +00:00
Joseph Arceneaux
350273a493 Fixed typos. 1992-10-03 00:08:23 +00:00
Jim Blandy
91dc12bb84 * 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.
1992-10-03 00:06:36 +00:00
Joseph Arceneaux
7b1d5b85f8 * intervals.c: `copy_intervals()' no longer static. 1992-10-03 00:05:48 +00:00
Jim Blandy
cebd887d3a * 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.
1992-10-03 00:05:39 +00:00
Joseph Arceneaux
c1f6cc77a6 * intervals.h: Declare `copy_intervals()'. 1992-10-03 00:04:59 +00:00
Jim Blandy
53ce28d6e1 Doc fixes. 1992-10-03 00:04:45 +00:00
Jim Blandy
a1867fb159 * termhooks.h (struct input_event): Doc fix.
(NUM_MOUSE_BUTTONS): New constant.
	(click_modifier): New modifier.
	(NUM_MODIFIER_COMBOS): Removed.
1992-10-03 00:01:09 +00:00
Jim Blandy
ac501cd970 * 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.
1992-10-02 23:56:44 +00:00
Jim Blandy
88cb06568f * 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.
1992-10-02 23:55:39 +00:00
Richard M. Stallman
f9969361bd (Info-follow-nearest-node): Handle line breaks after *note.
Fix interactive spec.  Doc fix.  Put on mouse-3.
1992-10-02 23:52:26 +00:00
Joseph Arceneaux
21cf4cf8a9 * buffer.c: #include intervals.h. 1992-10-02 23:43:16 +00:00
Joseph Arceneaux
249a6da954 Fixed typos. 1992-10-02 22:33:18 +00:00
Joseph Arceneaux
cde20f4168 * lisp.h: Declare Qbuffer_or_string_p. 1992-10-02 22:32:00 +00:00
Joseph Arceneaux
03ad6beb25 Fixed typeos. 1992-10-02 22:30:42 +00:00
Jim Blandy
031b0e3122 * xmenu.c: #include "keyboard.h".
(Fx_popup_menu): Use the event accessors defined in keyboard.h,
	instead of writing out cars and cdrs.
1992-10-02 22:18:46 +00:00
Joseph Arceneaux
db3563a8a2 * intervals.c: Removed #include of "screen.h". 1992-10-02 20:13:46 +00:00
Joseph Arceneaux
25013c264c * textprop.c: Conditionalize all functions on
"USE_TEXT_PROPERTIES".
1992-10-02 20:05:45 +00:00
Joseph Arceneaux
d2f7a8023e * intervals.c: Conditionalize all functions on
"USE_TEXT_PROPERTIES".
1992-10-02 20:02:51 +00:00
Joseph Arceneaux
d5e35230b5 * 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'.
1992-10-02 19:59:42 +00:00
Joseph Arceneaux
8d4e077b70 * fileio.c (Finsert_file_contents): Call offset_intervals() if
text was actually inserted.
	#include "intervals.h".
1992-10-02 18:59:40 +00:00
Richard M. Stallman
79f3b0b773 (nuke-nroff-bs): Delete just 9 lines above header. 1992-10-02 04:06:18 +00:00
Jim Blandy
ca21f8b160 *** empty log message *** 1992-10-02 02:26:36 +00:00
Richard M. Stallman
4da3b18972 (nuke-nroff-bs): Was nuking one line too many after header. 1992-10-02 00:32:14 +00:00
Richard M. Stallman
c54ca9516b (mark_object): Avoid car recursion on cons with nil in cdr.
Avoid recursion on constants-vector of a compiled function.
1992-10-01 23:07:09 +00:00
Roland McGrath
1f82d0e4d0 (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.
1992-10-01 02:00:41 +00:00
Joseph Arceneaux
07bd847225 Qbuffer_or_string_p added. 1992-10-01 01:58:57 +00:00
Joseph Arceneaux
410e16ff89 (describe_syntax): Use insert_char to insert `match'. 1992-10-01 01:52:09 +00:00
Joseph Arceneaux
33f7013e52 * buffer.c (reset_buffer): Do INITIALIZE_INTERVAL on the buffer's
interval component.
	(Fkill_buffer): Likewise.
1992-10-01 01:22:22 +00:00
Joseph Arceneaux
e221eae302 * lisp.h: Conditionally define interval structure and macros.
Add DECLARE_INTERVALS to struct Lisp_String.
1992-10-01 01:00:41 +00:00
Joseph Arceneaux
679194a6a0 * insdel.c: #include "intervals.h"
(prepare_to_modify_buffer): Call verify_interval_modification().
	(insert_from_string): Call offset_intervals() and
	graft_intervals_into_buffer().
	(del_range): Call offset_intervals().
	(insert): Call offset_intervals().
1992-10-01 00:56:11 +00:00
Joseph Arceneaux
d7e3e52b6e Various comment changes. 1992-10-01 00:56:11 +00:00
Joseph Arceneaux
e115a65b13 * intervals.h: Declare temp_set_point. 1992-10-01 00:56:11 +00:00
Joseph Arceneaux
1b92beaf6d * 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..
1992-10-01 00:56:11 +00:00
Joseph Arceneaux
74d6d8c5d6 * editfns.c (make_buffer_string): Call copy_intervals_to_string().
(Finsert_buffer_substring): Call graft_intervals_into_buffer().
	#include "intervals.h".
1992-10-01 00:56:11 +00:00
Joseph Arceneaux
bef79ee47f *** empty log message *** 1992-10-01 00:56:11 +00:00
Joseph Arceneaux
cd7d971d06 Minor optimizations of Fset_text_properties and Ferase_text_properties. 1992-10-01 00:56:11 +00:00
Jim Blandy
9e7cd9225e entered into RCS 1992-09-30 21:44:26 +00:00