1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-12 09:28:24 +00:00
Commit Graph

68 Commits

Author SHA1 Message Date
Richard M. Stallman
4a9f44cd82 (get_local_map): Call indirect-function. 1996-09-04 15:40:46 +00:00
Richard M. Stallman
46d8a55bd1 (copy_intervals_to_string): Take arg as buffer. 1996-09-04 04:33:40 +00:00
Erik Naggum
8f3b9b9586 (balance_intervals_internal): Recurse directly. 1996-07-20 04:44:09 +00:00
Erik Naggum
3b7ad313e0 Update FSF's address in the preamble. 1996-01-15 09:18:04 +00:00
Karl Heuer
8e6208c5d2 Comment fixes. 1996-01-05 10:03:17 +00:00
Richard M. Stallman
40648b6832 (call_mod_hooks, verify_interval_modification):
Functions moved to textprop.c.
1995-09-12 17:37:53 +00:00
Karl Heuer
0f7a5fda79 (get_local_map): Use Fget_char_property, so that
overlay properties will be considered as well as text properties.
1995-05-02 23:06:11 +00:00
Richard M. Stallman
5eabb4e7ee (set_point): When skipping intangible text,
stop where property value changes.
1995-04-09 09:42:28 +00:00
Karl Heuer
f8c25f1b67 Update copyright. 1995-04-07 02:21:52 +00:00
Boris Goldowsky
06d9232749 (Vdefault_text_properties): name changed from Vdefault_properties.
(textget_direct): Fn deleted.
(textget, verify_interval_modification): Use Fplist_get instead.
1995-03-27 16:05:57 +00:00
Boris Goldowsky
70743ff117 (textget): Check default_properties vbl too. 1995-03-06 15:43:56 +00:00
Richard M. Stallman
b6a0ebc300 (set_point): Set point_before_scroll to nil. 1995-01-27 07:19:06 +00:00
Richard M. Stallman
e5d967c90e Use BUF_INTERVALS throughout.
(temp_set_point, set_point): Use BUF_PT.
(get_local_map): Get keymap from specified buffer, not current one.
1995-01-02 21:38:22 +00:00
Richard M. Stallman
d8638d30b5 (compare_string_intervals): New function. 1994-12-04 21:07:03 +00:00
Karl Heuer
9bdff5c5c7 (verify_interval_modification): Fix comment. 1994-10-12 02:11:34 +00:00
Karl Heuer
55cfc73193 (graft_intervals_into_buffer): Use new accessor macros instead of calling XSET
directly.
1994-10-04 12:10:17 +00:00
Karl Heuer
b629dd47e0 (create_root_interval, balance_possible_root_interval, delete_interval): Use
type test macros.
1994-09-27 02:30:34 +00:00
Richard M. Stallman
d5219de56e (set_point): If Vinhibit_point_motion_hooks, ignore intangible properties.
If move backwards into intangible text, move back over it.
1994-09-24 09:13:57 +00:00
Karl Heuer
f54a8c1a1f Add #include "keyboard.h" 1994-09-19 00:12:39 +00:00
Richard M. Stallman
49c49d2299 (interval_balance_threshold): Var deleted. 1994-09-15 21:22:26 +00:00
Richard M. Stallman
5dd6606e25 (textget): Ignore category prop if not a symbol. 1994-08-24 19:40:44 +00:00
Karl Heuer
3a22ee3595 Update copyright. 1994-05-04 02:41:09 +00:00
Karl Heuer
f65013b01a Fix comment. 1994-04-26 01:18:38 +00:00
Karl Heuer
fa7c37595f (set_point): Skip past intangible regions. 1994-04-08 07:09:18 +00:00
Richard M. Stallman
df28eb7b38 (verify_interval_modification): For insertion in
middle of an interval, use the same criterion as between intervals
for whether read-only forbids it.
1994-03-26 21:02:24 +00:00
Karl Heuer
dd675b05fa (adjust_intervals_for_insertion, merge_properties_sticky, delete_interval):
Use assignment, not initialization.
1994-03-23 22:30:22 +00:00
Karl Heuer
3e76261f9b (verify_interval_modification): When checking read-only, allow for the case
that stickiness might be t instead of a list.
1994-02-04 20:51:16 +00:00
Karl Heuer
45d82bdc5d Add comments describing the rules used by the merge algorithm. 1994-02-04 01:18:01 +00:00
Karl Heuer
550bd63a2c (merge_properties_sticky): Preserve original order of properties. 1994-02-03 18:54:04 +00:00
Richard M. Stallman
767809fb40 (graft_intervals_into_buffer): Fix one-off
comparing lengths of over and under.
1994-01-24 17:07:28 +00:00
Richard M. Stallman
4314dea4b4 (rotate_right, rotate_left): Simplify
total_length calculation.  Minimize pointer dereferencing.
(balance_an_interval): Remove recursive rebalancing.
Rebalance precisely when imbalanced.  If a rotation is done,
rebalance only the node which may have become unbalanced.
Iterate	until the current node is balanced.
(balance_possible_root_interval): New function.
(balance_intervals): Move the interation into rebalance_an_interval.
(balance_intervals_internal): New subroutine of balance_intervals.
(split_interval_right, split_interval_left): Speed up by
not checking LEAF_INTERVAL_P.
(split_interval_right, split_interval_left, find_interval,
adjust_intervals_for_insertion, graft_intervals_into_buffer):
Add dynamic rebalancing anywhere a node may become unbalanced.
(graft_intervals_into_buffer, copy_intervals): No longer
any need to do a full rebalance as the tree stays balanced.
1994-01-02 19:01:15 +00:00
Richard M. Stallman
08b0527265 (graft_intervals_into_buffer): If SOURCE is null
and TREE is null, no need to call Fset_text_properties.
1993-12-23 01:58:56 +00:00
Richard M. Stallman
b5f37d3f7c (merge_properties_sticky): Declared. 1993-11-25 07:47:14 +00:00
Richard M. Stallman
0b79989fc4 (graft_intervals_into_buffer): New arg LENGTH.
If source has no intervals, set dest properties to nil.
1993-11-25 06:28:03 +00:00
Richard M. Stallman
328c0f1fe5 Include puresize.h.
(create_root_interval): Check to see if PARENT is in
pure memory.  If so, we cannot write it.
1993-11-10 20:11:44 +00:00
Richard M. Stallman
7ea69158f0 (graft_intervals_into_buffer): New arg INHERIT. 1993-09-14 12:10:53 +00:00
Roland McGrath
18160b98ce Include <config.h> instead of "config.h". 1993-09-10 06:15:46 +00:00
Richard M. Stallman
2313b945f2 (adjust_intervals_for_insertion): If inserting in middle
of interval that is sticky in neither direction, don't copy props.
(merge_properties_sticky): Handle non-list as front-sticky or
rear-nonsticky property.
1993-08-15 03:49:28 +00:00
Richard M. Stallman
7ce503fdda (adjust_intervals_for_insertion): Handle insertion
between two unlike intervals via merge_properties_sticky.
(merge_properties_sticky): New function.
(graft_intervals_into_buffer): Leave handling of `sticky'-ness to
adjust_intervals_for_insertion, then merge properties of the
inserted text onto the old ones.
(textget_direct): New function.
(set_point): Fix calculating of fromprev.
(verify_interval_modification): Check for `read-only' property
and take its `sticky'-ness into account.

(set_point): Ignore `invisible' property unless property value is `hidden'.
1993-07-31 21:58:03 +00:00
Richard M. Stallman
ddd931ff51 (set_point): Test Vinhibit_point_motion_hooks. 1993-07-23 07:59:08 +00:00
Richard M. Stallman
b8e4857c81 (graft_intervals_into_buffer): When TREE is null,
pass buffer as 2nd arg to reproduce_tree.
1993-07-22 08:06:55 +00:00
Jim Blandy
2bc7a79bdc * intervals.c (split_interval_left, split_interval_right): Change
OFFSET argument of these functions to be origin 0, not origin 1.
	This is what all the callers currently want.
	* intervals.c, textprop.c: All callers changed.

	* intervals.c (graft_intervals_into_buffer): Properly compute
	length of buffer.
1993-07-18 06:24:25 +00:00
Richard M. Stallman
f1ca901238 (verify_interval_modification): Use Qinsert_in_front_hooks and
Qinsert_behind_hooks instead of previous names.
1993-07-13 21:08:45 +00:00
Richard M. Stallman
c36494197b (verify_interval_modification):
For insertion, run the insert-before-hooks and insert-after-hooks,
not the modification-hooks.
1993-07-13 02:19:50 +00:00
Jim Blandy
24e3d3bf9e * intervals.c (find_interval): Doc fixes, computation of
tree->position rearranged for clarity.

	* intervals.c (find_interval): Consistently treat POSITION as an
	actual buffer position, i.e. origin 1.  The old code seemed
	undecided on this point.  Treat the end of the buffer as being
	part of the rightmost interval.
	(adjust_intervals_for_insertion): Consistently treat POSITION as
	origin 1.
	(interval_deletion_adjustment): The exception: FROM should be
	origin zero here.  Consistently treat it as such.  Simplify code
	which shrinks and possibly deletes intervals.
	(adjust_intervals_for_deletion): Treat start as origin 1; our
	caller does.
	(set_point): Use buffer positions throughout, not a mix of buffer
	posns and origin zero posns.
	(get_local_map): Remove special case for POSITION at end of buffer;
	find_interval handles that case correctly.
	(verify_interval_modification): Remove special case for START at
	end of buffer.
	* textprop.c (validate_interval_range): End-of-buffer/string
	positions no longer need special handling.

	* intervals.c (make_new_interval): #if 0 this out.  Nobody calls it.
1993-07-06 14:53:54 +00:00
Jim Blandy
734c51b2dd Compare the values of text properties using EQ, not Fequal.
* intervals.c (intervals_equal): Call EQ, not Fequal.
	* textprop.c (interval_has_all_properties, add_properties): Same.
1993-07-06 02:23:22 +00:00
Jim Blandy
375aa801ba * intervals.c (intervals_equal): Test the return value of Fequal
against Qnil, not 0.
1993-07-05 07:57:34 +00:00
Richard M. Stallman
7c92db56e0 (verify_interval_modification): Don't just test
Qread_only prop; use INTERVAL_WRITABLE_P.
1993-06-20 08:48:58 +00:00
Richard M. Stallman
eebaeadde2 (adjust_intervals_for_insertion): By default, copy
properties from before the insertion.
1993-06-15 07:48:27 +00:00
Richard M. Stallman
0df8950e08 (set_point): When moving over invis chars,
don't screw up at end of buffer.
1993-06-15 05:27:54 +00:00