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

59 commits

Author SHA1 Message Date
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
Jim Blandy
eb8c3be94e Apply typo patches from Paul Eggert. 1993-06-09 11:59:12 +00:00
Richard M. Stallman
95e3e1ef65 (copy_intervals): Don't adjust total_length at the end.
Set lengths of subintervals properly.
(balance_intervals): Balance left as well as right.
1993-06-05 07:57:32 +00:00
Richard M. Stallman
97562e5ee9 (interval_deletion_adjustment): Delete unreachable abort. 1993-05-31 00:08:24 +00:00
Jim Blandy
620567645f * intervals.c (set_point): Check for point out of bounds before
checking for an empty interval tree.
1993-05-14 14:40:56 +00:00
Richard M. Stallman
5cae0ec66c (set_point): Check invisibility of following character, not previous character.
(textget): Handle categories.
(get_local_map): New function.
(verify_interval_modification): Call textget correctly.
1993-03-10 05:12:42 +00:00
Richard M. Stallman
294efdbeb8 (verify_interval_modification): Handle insertions
specially.  For non-insertions, check only the chars being changed.
`modification-hooks' property is now a list of functions.
(set_point): Ignore chars outside current restriction.
1993-03-07 09:34:39 +00:00
Richard M. Stallman
323a7ad4fd (intervals_equal): Handle one arg null and other not.
(set_point): Considerable rewrite.  Handle intervals both
before and after the old and new point values.
Redo handling of invisible intervals, and of motion hooks.
(textget): New function.

(graft_intervals_into_buffer):
create_root_interval needs Lisp object arg.
Set tree to new root interval.
Don't test TREE_LENGTH if buffer has no intervals.
Rearrange code to copy properties so that it really
does merge the inserted ones into the inherited ones.
(traverse_intervals): Pass `arg' on recursive calls.
(split_interval_left): Use new_length as basis for length of new.

(traverse_intervals): New arg ARG.
1993-03-01 08:56:22 +00:00
Richard M. Stallman
4a93c90596 (traverse_intervals): New arg ARG. 1993-02-25 20:24:43 +00:00
Joseph Arceneaux
e0b634930e * intervals.c (traverse_intervals): New parameter `depth'.
Increment this when passing recursively.
1992-10-14 23:12:09 +00:00