]> git.eshelyaron.com Git - emacs.git/commitdiff
(text_property_stickiness): Non-rear-non-stickiness doesn't take
authorMiles Bader <miles@gnu.org>
Fri, 19 Oct 2001 07:08:29 +0000 (07:08 +0000)
committerMiles Bader <miles@gnu.org>
Fri, 19 Oct 2001 07:08:29 +0000 (07:08 +0000)
precedence if the affected property's value is nil.

(Fencode_time): Escape a BOL paren in the doc-string.

src/ChangeLog
src/editfns.c

index 90de9550267a8036a21cc407acc293c38321e1b7..b125b1f149a5bfdc330247ef3265c0de60b0870c 100644 (file)
@@ -1,5 +1,10 @@
 2001-10-19  Miles Bader  <miles@gnu.org>
 
+       * editfns.c (text_property_stickiness): Non-rear-non-stickiness
+       doesn't take precedence if the affected property's value is nil.
+
+       * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
+
        * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
        with fields and suggest using `forward-line' to avoid them.
        * editfns.c (Fline_beginning_position, Fline_end_position):
index 661ad95d292b93d9e1e35e1b924a39b861da6675..d0b682ff67e78354cd6151ddd520bb33e8dc9f2f 100644 (file)
@@ -357,17 +357,23 @@ text_property_stickiness (prop, pos)
   if (XINT (pos) > BEGV)
     /* Consider previous character.  */
     {
-      Lisp_Object prev_pos, rear_non_sticky;
+      Lisp_Object prev_pos = make_number (XINT (pos) - 1);
 
-      prev_pos = make_number (XINT (pos) - 1);
-      rear_non_sticky = Fget_text_property (prev_pos, Qrear_nonsticky, Qnil);
-
-      if (EQ (rear_non_sticky, Qnil)
-         || (CONSP (rear_non_sticky)
-             && NILP (Fmemq (prop, rear_non_sticky))))
-       /* PROP is not rear-non-sticky, and since this takes precedence over
-          any front-stickiness, PROP is inherited from before.  */
-       return -1;
+      if (! NILP (Fget_text_property (prev_pos, prop, Qnil)))
+       /* Non-rear-non-stickiness only takes precedence if the
+          preceding property value is non-nil.  */
+       {
+         Lisp_Object rear_non_sticky
+           = Fget_text_property (prev_pos, Qrear_nonsticky, Qnil);
+
+         if (EQ (rear_non_sticky, Qnil)
+             || (CONSP (rear_non_sticky)
+                 && NILP (Fmemq (prop, rear_non_sticky))))
+           /* PROP is not rear-non-sticky, and since this takes
+              precedence over any front-stickiness, PROP is inherited
+              from before.  */
+           return -1;
+       }
     }
 
   /* Consider following character.  */
@@ -1599,7 +1605,7 @@ DEFUN ("encode-time", Fencode_time, Sencode_time, 6, MANY, 0,
 This is the reverse operation of `decode-time', which see.
 ZONE defaults to the current time zone rule.  This can
 be a string or t (as from `set-time-zone-rule'), or it can be a list
-(as from `current-time-zone') or an integer (as from `decode-time')
+\(as from `current-time-zone') or an integer (as from `decode-time')
 applied without consideration for daylight savings time.
 
 You can pass more than 7 arguments; then the first six arguments