Mercurial > emacs
changeset 4381:b0556af4d680
(Qfront_sticky, Qrear_nonsticky): New variables.
(syms_of_textprop): Set them up.
(Qhidden): New variable.
(syms_of_textprop): Set up Qhidden.
(property_change_between_p): New function.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 31 Jul 1993 21:54:10 +0000 |
parents | 0c7aefc58e0f |
children | c11d710e0403 |
files | src/textprop.c |
diffstat | 1 files changed, 40 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/textprop.c Sat Jul 31 18:41:53 1993 +0000 +++ b/src/textprop.c Sat Jul 31 21:54:10 1993 +0000 @@ -48,7 +48,10 @@ /* Visual properties text (including strings) may have. */ Lisp_Object Qforeground, Qbackground, Qfont, Qunderline, Qstipple; -Lisp_Object Qinvisible, Qread_only; +Lisp_Object Qinvisible, Qread_only, Qhidden; + +/* Sticky properties */ +Lisp_Object Qfront_sticky, Qrear_nonsticky; /* If o1 is a cons whose cdr is a cons, return non-zero and set o2 to the o1's cdr. Otherwise, return zero. This is handy for @@ -543,7 +546,36 @@ return Qnil; return next->position - (XTYPE (object) == Lisp_String); -; +} + +/* Return 1 if there's a change in some property between BEG and END. */ + +int +property_change_between_p (beg, end) + int beg, end; +{ + register INTERVAL i, next; + Lisp_Object object, pos; + + XSET (object, Lisp_Buffer, current_buffer); + XFASTINT (pos) = beg; + + i = validate_interval_range (object, &pos, &pos, soft); + if (NULL_INTERVAL_P (i)) + return 0; + + next = next_interval (i); + while (! NULL_INTERVAL_P (next) && intervals_equal (i, next)) + { + next = next_interval (next); + if (next->position >= end) + return 0; + } + + if (NULL_INTERVAL_P (next)) + return 0; + + return 1; } DEFUN ("next-single-property-change", Fnext_single_property_change, @@ -1201,10 +1233,16 @@ Qread_only = intern ("read-only"); staticpro (&Qinvisible); Qinvisible = intern ("invisible"); + staticpro (&Qhidden); + Qhidden = intern ("hidden"); staticpro (&Qcategory); Qcategory = intern ("category"); staticpro (&Qlocal_map); Qlocal_map = intern ("local-map"); + staticpro (&Qfront_sticky); + Qfront_sticky = intern ("front-sticky"); + staticpro (&Qrear_nonsticky); + Qrear_nonsticky = intern ("rear-nonsticky"); /* Properties that text might use to specify certain actions */