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

42 commits

Author SHA1 Message Date
Gerd Moellmann
95a7097d65 (enum map_property): Removed.
(get_local_map): Change prototype.
2001-01-12 11:18:41 +00:00
Miles Bader
beed66fe18 (get_char_property_and_overlay): Add declaration. 2000-10-25 05:13:17 +00:00
Ken Raeburn
212b4f2c99 (Fprevious_single_char_property_change): Declare. 2000-08-08 14:39:46 +00:00
Dave Love
b4030d7b9d (map_property): New enum.
(get_local_map): Extra arg using it.
(Qkeymap): Declare.
2000-05-29 11:42:51 +00:00
Ken Raeburn
c0333abccb * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for a pointer
that looks like a lisp object.
(SET_INTERVAL_OBJECT): Don't explicitly compare the object with zero, instead
see whether it's an integer object, since they can't have intervals.
(GET_INTERVAL_OBJECT): Simply assign to the destination.
2000-04-05 18:53:39 +00:00
Ken Raeburn
e0b8c689e2 Stop assuming interval pointers and lisp objects can be distinguished by
inspection.  Beginnings of support for expensive internal consistency checks.

* config.in (ENABLE_CHECKING): Undef.

* lisp.h (struct interval): Replace "parent" field with a union of interval
pointer and Lisp_Object; add new bitfield to use as discriminant.  Change other
flag fields to bitfields.
(CHECK): New macro for consistency checking.  If ENABLE_CHECKING is defined and
the supplied test fails, print a message and abort.
(eassert): New macro.  Use CHECK to provide an assert-like facility.

* intervals.h (NULL_INTERVAL_P): Now applies only to real interval pointers;
abort if the value looks like a lisp object.
(NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT, SET_OBJECT,
INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT): Modify for new interval
parent definition.

* alloc.c (mark_interval_tree, MARK_INTERVAL_TREE, UNMARK_BALANCE_INTERVALS):
Update references that need an addressable lisp object in the interval
structure.
(die): New function.
(suppress_checking): New variable.

* intervals.c (interval_start_pos): Just return 0 if there's no parent object.
2000-03-29 22:14:34 +00:00
Ken Raeburn
439d5cb4f7 Changes towards better type safety regarding intervals, primarily
regarding the "parent" handle.  These just separate out the different
usages based on the type of parent (interval vs lisp object); later
changes will do type checking and enforcement.

	* intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
	(INT_LISPLIKE): New macro.
	(NULL_INTERVAL_P): Use it.
	(INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
	SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
	GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.

	* alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
	explicit references to "parent" field of struct interval and
	associated unclean type conversions.
	* intervals.c (create_root_interval, root_interval, rotate_right,
	rotate_left, balance_possible_root_interval, split_interval_right,
	split_interval_left, interval_start_pos, find_interval,
	next_interval, previous_interval, update_interval,
	adjust_intervals_for_insertion, delete_node, delete_interval,
	adjust_intervals_for_deletion, merge_interval_right,
	merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
	copy_intervals_to_string): Likewise.
	* intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
	Likewise.
	* syntax.c (update_syntax_table): Likewise.

	* intervals.c (reproduce_tree_obj): New function, like
	reproduce_tree but takes a Lisp_Object for the parent.  Declare
	with prototype.
	(graft_intervals_into_buffer): Use it when appropriate.
	(reproduce_tree): Declare with prototype.
	(balance_possible_root_interval): Check that the parent is a lisp
	object before trying to examine its type.
2000-03-22 21:44:05 +00:00
Kenichi Handa
a5ecc8a315 Include composite.h.
(get_property_and_range): Extern it.
(Vtext_property_default_nonsticky): Extern it.
1999-12-15 00:14:19 +00:00
Gerd Moellmann
339ee9797d Remove USE_TEXT_PROPERTIES. 1999-11-11 11:45:06 +00:00
Gerd Moellmann
ecfd95532d Add function prototypes. 1999-07-21 21:43:52 +00:00
Andreas Schwab
ec5d8db72d Add more prototypes. 1998-04-14 12:33:47 +00:00
Richard M. Stallman
fdccf4469e (set_point, temp_set_point): Swap args in decl.
(set_point_both, temp_set_point_both): New decls.
1998-01-01 06:41:39 +00:00
Andreas Schwab
d748a3dbdc Add prototypes and more function declarations. 1997-11-21 15:12:34 +00:00
Richard M. Stallman
2e34157cd9 Fix bugs with inappropriate mixing of Lisp_Object with int. 1997-07-04 20:44:52 +00:00
Richard M. Stallman
add1fffcee (update_interval): New function declaration. 1997-04-15 04:46:14 +00:00
Richard M. Stallman
97f7b3b252 (FRONT_NONSTICKY_P): New macro. 1996-12-20 18:15:32 +00:00
Erik Naggum
3b7ad313e0 Update FSF's address in the preamble. 1996-01-15 09:18:04 +00:00
Karl Heuer
7c938215cd Update GPL to version 2. 1995-06-15 20:42:24 +00:00
Boris Goldowsky
b9439338ff Vdefault_text_properties: name changed from Vdefault_properties. 1995-03-27 16:05:28 +00:00
Richard M. Stallman
47b4c04d08 (TEXT_PROP_MEANS_INVISIBLE): New macro.
(TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS): New macro.
1995-03-11 22:30:33 +00:00
Boris Goldowsky
883b5fa175 Declare Vdefault_properties. 1995-03-06 15:43:56 +00:00
Richard M. Stallman
3fc86d4bef (INTERVAL_LAST_POS): Don't subtract 1 here. 1994-12-04 21:06:42 +00:00
Karl Heuer
693f8fb080 (NULL_INTERVAL_P): Use type test macros. 1994-09-27 03:13:50 +00:00
Karl Heuer
023c80d051 Declare some functions. 1994-09-17 03:14:26 +00:00
Richard M. Stallman
49c49d2299 (interval_balance_threshold): Var deleted. 1994-09-15 21:22:26 +00:00
Karl Heuer
3a22ee3595 Update copyright. 1994-05-04 02:41:09 +00:00
Karl Heuer
86d62d7634 (Qintangible): New symbol, replacing Qhidden. 1994-04-08 07:09:55 +00:00
Richard M. Stallman
7ac78c9ad4 (NULL_RIGHT_CHILD, NULL_LEFT_CHILD):
Assume children must be intervals, never strings or buffers.
1994-01-02 19:00:54 +00:00
Richard M. Stallman
58943db006 (MERGE_INSERTIONS): Define as 1.
(FRONT_STICKY): Add real definition.
(END_NONSTICKY): New macro.
(END_STICKY): Deleted.
(textget_direct, Qfront_sticky, Qrear_nonsticky): Declared.

(Qhidden): Declared.
1993-07-31 21:55:38 +00:00
Richard M. Stallman
b81de1f7e7 (Vinhibit_point_motion_hooks): Declared. 1993-07-23 07:57:57 +00:00
Richard M. Stallman
edc28db1ae (Ftext_property_not_all): Fix typo in decl. 1993-07-21 22:25:42 +00:00
Jim Blandy
5256403ca5 * textprop.c (Ftext_property_any, Ftext_property_all): New
functions, from David Gillespie.
	* intervals.h (Ftext_property_any, Ftext_property_all): Declare them.
1993-07-18 06:24:48 +00:00
Jim Blandy
15e92abada * textprop.c (copy_text_properties): New function, from David
Gillespie.
	* intervals.h: Declare copy_text_properties.
	* fns.c: #include "intervals.h".
	(Fsubstring): Copy text properties to result string.
	(concat): Copy text properties to result string.
	* ymakefile (fns.o): Note that this depends on INTERVAL_SRC.
1993-07-06 14:54:28 +00:00
Richard M. Stallman
5f8a398a50 (INTERVAL_WRITABLE_P): Fix backwards tests. 1993-06-08 21:08:56 +00:00
Richard M. Stallman
9207deb2b9 (INTERVAL_VISIBLE_P): Use textget.
(INTERVAL_WRITABLE_P): Use textget.
Check Vinhibit_read_only.
1993-06-07 05:28:42 +00:00
Jim Blandy
c6c5df7f76 Updated copyright years. 1993-05-22 21:34:42 +00:00
Richard M. Stallman
1a7c673b85 Declare Qcategory, Qlocal_map. Declare textget, get_local_map. 1993-03-07 23:45:23 +00:00
Richard M. Stallman
a994e16134 Don't include dispextern.h more than once.
(INTERVAL_VISIBLE_P): NILP test was backwards.
1993-03-01 09:13:26 +00:00
Joseph Arceneaux
c1f6cc77a6 * intervals.h: Declare `copy_intervals()'. 1992-10-03 00:04:59 +00:00
Joseph Arceneaux
e115a65b13 * intervals.h: Declare temp_set_point. 1992-10-01 00:56:11 +00:00
Joseph Arceneaux
9c79dd1b20 See ChangeLog 1992-09-24 01:29:22 +00:00
Joseph Arceneaux
90ba40fc70 entered into RCS 1992-09-19 01:11:21 +00:00