Mercurial > emacs
changeset 43897:46cd50d89b5b
(text_property_stickiness): Function moved to `textprop.c'.
(char_property_eq): Function removed.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 14 Mar 2002 08:11:03 +0000 |
parents | fccc867cca64 |
children | 8b2a2bd229c3 |
files | src/editfns.c |
diffstat | 1 files changed, 1 insertions(+), 77 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Thu Mar 14 08:10:35 2002 +0000 +++ b/src/editfns.c Thu Mar 14 08:11:03 2002 +0000 @@ -1,5 +1,5 @@ /* Lisp functions pertaining to editing. - Copyright (C) 1985,86,87,89,93,94,95,96,97,98, 1999, 2000, 2001 + Copyright (C) 1985,86,87,89,93,94,95,96,97,98, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -324,82 +324,6 @@ } -#if 0 /* Not used. */ - -/* Return nonzero if POS1 and POS2 have the same value - for the text property PROP. */ - -static int -char_property_eq (prop, pos1, pos2) - Lisp_Object prop; - Lisp_Object pos1, pos2; -{ - Lisp_Object pval1, pval2; - - pval1 = Fget_char_property (pos1, prop, Qnil); - pval2 = Fget_char_property (pos2, prop, Qnil); - - return EQ (pval1, pval2); -} - -#endif /* 0 */ - -/* Return the direction from which the text-property PROP would be - inherited by any new text inserted at POS: 1 if it would be - inherited from the char after POS, -1 if it would be inherited from - the char before POS, and 0 if from neither. */ - -static int -text_property_stickiness (prop, pos) - Lisp_Object prop; - Lisp_Object pos; -{ - Lisp_Object prev_pos, front_sticky; - int is_rear_sticky = 1, is_front_sticky = 0; /* defaults */ - - if (XINT (pos) > BEGV) - /* Consider previous character. */ - { - Lisp_Object rear_non_sticky; - - prev_pos = make_number (XINT (pos) - 1); - rear_non_sticky = Fget_text_property (prev_pos, Qrear_nonsticky, Qnil); - - if (!NILP (CONSP (rear_non_sticky) - ? Fmemq (prop, rear_non_sticky) - : rear_non_sticky)) - /* PROP is rear-non-sticky. */ - is_rear_sticky = 0; - } - - /* Consider following character. */ - front_sticky = Fget_text_property (pos, Qfront_sticky, Qnil); - - if (EQ (front_sticky, Qt) - || (CONSP (front_sticky) - && !NILP (Fmemq (prop, front_sticky)))) - /* PROP is inherited from after. */ - is_front_sticky = 1; - - /* Simple cases, where the properties are consistent. */ - if (is_rear_sticky && !is_front_sticky) - return -1; - else if (!is_rear_sticky && is_front_sticky) - return 1; - else if (!is_rear_sticky && !is_front_sticky) - return 0; - - /* The stickiness properties are inconsistent, so we have to - disambiguate. Basically, rear-sticky wins, _except_ if the - property that would be inherited has a value of nil, in which case - front-sticky wins. */ - if (XINT (pos) == BEGV || NILP (Fget_text_property (prev_pos, prop, Qnil))) - return 1; - else - return -1; -} - - /* Find the field surrounding POS in *BEG and *END. If POS is nil, the value of point is used instead. If BEG or END null, means don't store the beginning or end of the field.