]> git.eshelyaron.com Git - emacs.git/commitdiff
Minor textprop integer cleanup.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 26 Feb 2013 03:09:08 +0000 (19:09 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 26 Feb 2013 03:09:08 +0000 (19:09 -0800)
* intervals.h, textprop.c (add_text_properties_from_list):
Return void, not int, since nobody uses the return value.
* textprop.c (validate_plist, add_properties, remove_properties)
(Fadd_text_properties):
Don't assume list length fits in int.
(interval_has_all_properties, interval_has_some_properties)
(interval_has_some_properties_list, add_properties, remove_properties)
(Fadd_text_properties, Fremove_text_properties)
(Fremove_list_of_text_properties, text_property_stickiness):
Use bool for booleans.
(Fadd_text_properties, Fremove_text_properties):
(Fremove_list_of_text_properties):
Reindent do-while as per GNU style.

src/ChangeLog
src/intervals.h
src/textprop.c

index 135d4d48b419bdb8a26a8374439979a859efc6c5..8636e36962e337a71d04c6c1cfb6fbc03acbb71e 100644 (file)
@@ -1,3 +1,20 @@
+2013-02-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Minor textprop integer cleanup.
+       * intervals.h, textprop.c (add_text_properties_from_list):
+       Return void, not int, since nobody uses the return value.
+       * textprop.c (validate_plist, add_properties, remove_properties)
+       (Fadd_text_properties):
+       Don't assume list length fits in int.
+       (interval_has_all_properties, interval_has_some_properties)
+       (interval_has_some_properties_list, add_properties, remove_properties)
+       (Fadd_text_properties, Fremove_text_properties)
+       (Fremove_list_of_text_properties, text_property_stickiness):
+       Use bool for booleans.
+       (Fadd_text_properties, Fremove_text_properties):
+       (Fremove_list_of_text_properties):
+       Reindent do-while as per GNU style.
+
 2013-02-25  Eli Zaretskii  <eliz@gnu.org>
 
        Implement CLASH_DETECTION for MS-Windows.
index cded8c0abb271227e7c434ea03fba04fa593b118..d6191225b1fe123c119f785920d6ded902ddb6f6 100644 (file)
@@ -293,7 +293,7 @@ extern void set_text_properties_1 (Lisp_Object, Lisp_Object,
 
 Lisp_Object text_property_list (Lisp_Object, Lisp_Object, Lisp_Object,
                                 Lisp_Object);
-int add_text_properties_from_list (Lisp_Object, Lisp_Object, Lisp_Object);
+void add_text_properties_from_list (Lisp_Object, Lisp_Object, Lisp_Object);
 Lisp_Object extend_property_ranges (Lisp_Object, Lisp_Object);
 Lisp_Object get_char_property_and_overlay (Lisp_Object, Lisp_Object,
                                            Lisp_Object, Lisp_Object*);
index 49fe427913cc70ba803a1d4d756f28cdb646ef06..9499b53301f3df08a802ef7a11138bb44bbedcde 100644 (file)
@@ -198,14 +198,14 @@ validate_plist (Lisp_Object list)
 
   if (CONSP (list))
     {
-      register int i;
-      register Lisp_Object tail;
-      for (i = 0, tail = list; CONSP (tail); i++)
+      bool odd_length = 0;
+      Lisp_Object tail;
+      for (tail = list; CONSP (tail); tail = XCDR (tail))
        {
-         tail = XCDR (tail);
+         odd_length ^= 1;
          QUIT;
        }
-      if (i & 1)
+      if (odd_length)
        error ("Odd length text property list");
       return list;
     }
@@ -213,20 +213,19 @@ validate_plist (Lisp_Object list)
   return Fcons (list, Fcons (Qnil, Qnil));
 }
 
-/* Return nonzero if interval I has all the properties,
+/* Return true if interval I has all the properties,
    with the same values, of list PLIST.  */
 
-static int
+static bool
 interval_has_all_properties (Lisp_Object plist, INTERVAL i)
 {
-  register Lisp_Object tail1, tail2, sym1;
-  register int found;
+  Lisp_Object tail1, tail2;
 
   /* Go through each element of PLIST.  */
   for (tail1 = plist; CONSP (tail1); tail1 = Fcdr (XCDR (tail1)))
     {
-      sym1 = XCAR (tail1);
-      found = 0;
+      Lisp_Object sym1 = XCAR (tail1);
+      bool found = 0;
 
       /* Go through I's plist, looking for sym1 */
       for (tail2 = i->plist; CONSP (tail2); tail2 = Fcdr (XCDR (tail2)))
@@ -249,13 +248,13 @@ interval_has_all_properties (Lisp_Object plist, INTERVAL i)
   return 1;
 }
 
-/* Return nonzero if the plist of interval I has any of the
+/* Return true if the plist of interval I has any of the
    properties of PLIST, regardless of their values.  */
 
-static int
+static bool
 interval_has_some_properties (Lisp_Object plist, INTERVAL i)
 {
-  register Lisp_Object tail1, tail2, sym;
+  Lisp_Object tail1, tail2, sym;
 
   /* Go through each element of PLIST.  */
   for (tail1 = plist; CONSP (tail1); tail1 = Fcdr (XCDR (tail1)))
@@ -274,10 +273,10 @@ interval_has_some_properties (Lisp_Object plist, INTERVAL i)
 /* Return nonzero if the plist of interval I has any of the
    property names in LIST, regardless of their values.  */
 
-static int
+static bool
 interval_has_some_properties_list (Lisp_Object list, INTERVAL i)
 {
-  register Lisp_Object tail1, tail2, sym;
+  Lisp_Object tail1, tail2, sym;
 
   /* Go through each element of LIST.  */
   for (tail1 = list; CONSP (tail1); tail1 = XCDR (tail1))
@@ -358,15 +357,14 @@ set_properties (Lisp_Object properties, INTERVAL interval, Lisp_Object object)
 
    OBJECT should be the string or buffer the interval is in.
 
-   Return nonzero if this changes I (i.e., if any members of PLIST
+   Return true if this changes I (i.e., if any members of PLIST
    are actually added to I's plist) */
 
-static int
+static bool
 add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object)
 {
   Lisp_Object tail1, tail2, sym1, val1;
-  register int changed = 0;
-  register int found;
+  bool changed = 0;
   struct gcpro gcpro1, gcpro2, gcpro3;
 
   tail1 = plist;
@@ -380,9 +378,9 @@ add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object)
   /* Go through each element of PLIST.  */
   for (tail1 = plist; CONSP (tail1); tail1 = Fcdr (XCDR (tail1)))
     {
+      bool found = 0;
       sym1 = XCAR (tail1);
       val1 = Fcar (XCDR (tail1));
-      found = 0;
 
       /* Go through I's plist, looking for sym1 */
       for (tail2 = i->plist; CONSP (tail2); tail2 = Fcdr (XCDR (tail2)))
@@ -410,7 +408,7 @@ add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object)
 
            /* I's property has a different value -- change it */
            Fsetcar (this_cdr, val1);
-           changed++;
+           changed = 1;
            break;
          }
 
@@ -423,7 +421,7 @@ add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object)
                                      sym1, Qnil, object);
            }
          set_interval_plist (i, Fcons (sym1, Fcons (val1, i->plist)));
-         changed++;
+         changed = 1;
        }
     }
 
@@ -437,14 +435,14 @@ add_properties (Lisp_Object plist, INTERVAL i, Lisp_Object object)
    (If PLIST is non-nil, use that, otherwise use LIST.)
    OBJECT is the string or buffer containing I.  */
 
-static int
+static bool
 remove_properties (Lisp_Object plist, Lisp_Object list, INTERVAL i, Lisp_Object object)
 {
-  register Lisp_Object tail1, tail2, sym, current_plist;
-  register int changed = 0;
+  Lisp_Object tail1, tail2, sym, current_plist;
+  bool changed = 0;
 
-  /* Nonzero means tail1 is a plist, otherwise it is a list.  */
-  int use_plist;
+  /* True means tail1 is a plist, otherwise it is a list.  */
+  bool use_plist;
 
   current_plist = i->plist;
 
@@ -467,7 +465,7 @@ remove_properties (Lisp_Object plist, Lisp_Object list, INTERVAL i, Lisp_Object
                                    object);
 
          current_plist = XCDR (XCDR (current_plist));
-         changed++;
+         changed = 1;
        }
 
       /* Go through I's plist, looking for SYM.  */
@@ -483,7 +481,7 @@ remove_properties (Lisp_Object plist, Lisp_Object list, INTERVAL i, Lisp_Object
                                        sym, XCAR (XCDR (this)), object);
 
              Fsetcdr (XCDR (tail2), XCDR (XCDR (this)));
-             changed++;
+             changed = 1;
            }
          tail2 = this;
        }
@@ -1129,11 +1127,10 @@ If OBJECT is a string, START and END are 0-based indices into it.
 Return t if any property value actually changed, nil otherwise.  */)
   (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object)
 {
-  register INTERVAL i, unchanged;
-  register ptrdiff_t s, len;
-  register int modified = 0;
+  INTERVAL i, unchanged;
+  ptrdiff_t s, len;
+  bool modified = 0;
   struct gcpro gcpro1;
-  ptrdiff_t got;
 
   properties = validate_plist (properties);
   if (NILP (properties))
@@ -1156,14 +1153,17 @@ Return t if any property value actually changed, nil otherwise.  */)
   /* If this interval already has the properties, we can skip it.  */
   if (interval_has_all_properties (properties, i))
     {
-      got = LENGTH (i) - (s - i->position);
-      do {
-       if (got >= len)
-         RETURN_UNGCPRO (Qnil);
-       len -= got;
-       i = next_interval (i);
-       got = LENGTH (i);
-      } while (interval_has_all_properties (properties, i));
+      ptrdiff_t got = LENGTH (i) - (s - i->position);
+
+      do
+       {
+         if (got >= len)
+           RETURN_UNGCPRO (Qnil);
+         len -= got;
+         i = next_interval (i);
+         got = LENGTH (i);
+       }
+      while (interval_has_all_properties (properties, i));
     }
   else if (i->position != s)
     {
@@ -1220,7 +1220,7 @@ Return t if any property value actually changed, nil otherwise.  */)
        }
 
       len -= LENGTH (i);
-      modified += add_properties (properties, i, object);
+      modified |= add_properties (properties, i, object);
       i = next_interval (i);
     }
 }
@@ -1424,10 +1424,9 @@ Return t if any property was actually removed, nil otherwise.
 Use `set-text-properties' if you want to remove all text properties.  */)
   (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object)
 {
-  register INTERVAL i, unchanged;
-  register ptrdiff_t s, len;
-  register int modified = 0;
-  ptrdiff_t got;
+  INTERVAL i, unchanged;
+  ptrdiff_t s, len;
+  bool modified = 0;
 
   if (NILP (object))
     XSETBUFFER (object, current_buffer);
@@ -1442,14 +1441,17 @@ Use `set-text-properties' if you want to remove all text properties.  */)
   /* If there are no properties on this entire interval, return.  */
   if (! interval_has_some_properties (properties, i))
     {
-      got = (LENGTH (i) - (s - i->position));
-      do {
-       if (got >= len)
-         return Qnil;
-       len -= got;
-       i = next_interval (i);
-       got = LENGTH (i);
-      } while (! interval_has_some_properties (properties, i));
+      ptrdiff_t got = LENGTH (i) - (s - i->position);
+
+      do
+       {
+         if (got >= len)
+           return Qnil;
+         len -= got;
+         i = next_interval (i);
+         got = LENGTH (i);
+       }
+      while (! interval_has_some_properties (properties, i));
     }
   /* Split away the beginning of this interval; what we don't
      want to modify.  */
@@ -1500,7 +1502,7 @@ Use `set-text-properties' if you want to remove all text properties.  */)
        }
 
       len -= LENGTH (i);
-      modified += remove_properties (properties, Qnil, i, object);
+      modified |= remove_properties (properties, Qnil, i, object);
       i = next_interval (i);
     }
 }
@@ -1515,11 +1517,10 @@ markers).  If OBJECT is a string, START and END are 0-based indices into it.
 Return t if any property was actually removed, nil otherwise.  */)
   (Lisp_Object start, Lisp_Object end, Lisp_Object list_of_properties, Lisp_Object object)
 {
-  register INTERVAL i, unchanged;
-  register ptrdiff_t s, len;
-  register int modified = 0;
+  INTERVAL i, unchanged;
+  ptrdiff_t s, len;
+  bool modified = 0;
   Lisp_Object properties;
-  ptrdiff_t got;
   properties = list_of_properties;
 
   if (NILP (object))
@@ -1535,14 +1536,17 @@ Return t if any property was actually removed, nil otherwise.  */)
   /* If there are no properties on the interval, return.  */
   if (! interval_has_some_properties_list (properties, i))
     {
-      got = (LENGTH (i) - (s - i->position));
-      do {
-       if (got >= len)
-         return Qnil;
-       len -= got;
-       i = next_interval (i);
-       got = LENGTH (i);
-      } while (! interval_has_some_properties_list (properties, i));
+      ptrdiff_t got = LENGTH (i) - (s - i->position);
+
+      do
+       {
+         if (got >= len)
+           return Qnil;
+         len -= got;
+         i = next_interval (i);
+         got = LENGTH (i);
+       }
+      while (! interval_has_some_properties_list (properties, i));
     }
   /* Split away the beginning of this interval; what we don't
      want to modify.  */
@@ -1697,7 +1701,7 @@ int
 text_property_stickiness (Lisp_Object prop, Lisp_Object pos, Lisp_Object buffer)
 {
   Lisp_Object prev_pos, front_sticky;
-  int is_rear_sticky = 1, is_front_sticky = 0; /* defaults */
+  bool is_rear_sticky = 1, is_front_sticky = 0; /* defaults */
   Lisp_Object defalt = Fassq (prop, Vtext_property_default_nonsticky);
 
   if (NILP (buffer))
@@ -1772,7 +1776,7 @@ copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_
   Lisp_Object stuff;
   Lisp_Object plist;
   ptrdiff_t s, e, e2, p, len;
-  int modified = 0;
+  bool modified = 0;
   struct gcpro gcpro1, gcpro2;
 
   i = validate_interval_range (src, &start, &end, soft);
@@ -1843,7 +1847,7 @@ copy_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object src, Lisp_
       res = Fadd_text_properties (Fcar (res), Fcar (Fcdr (res)),
                                  Fcar (Fcdr (Fcdr (res))), dest);
       if (! NILP (res))
-       modified++;
+       modified = 1;
       stuff = Fcdr (stuff);
     }
 
@@ -1914,33 +1918,28 @@ text_property_list (Lisp_Object object, Lisp_Object start, Lisp_Object end, Lisp
 /* Add text properties to OBJECT from LIST.  LIST is a list of triples
    (START END PLIST), where START and END are positions and PLIST is a
    property list containing the text properties to add.  Adjust START
-   and END positions by DELTA before adding properties.  Value is
-   non-zero if OBJECT was modified.  */
+   and END positions by DELTA before adding properties.  */
 
-int
+void
 add_text_properties_from_list (Lisp_Object object, Lisp_Object list, Lisp_Object delta)
 {
   struct gcpro gcpro1, gcpro2;
-  int modified_p = 0;
 
   GCPRO2 (list, object);
 
   for (; CONSP (list); list = XCDR (list))
     {
-      Lisp_Object item, start, end, plist, tem;
+      Lisp_Object item, start, end, plist;
 
       item = XCAR (list);
       start = make_number (XINT (XCAR (item)) + XINT (delta));
       end = make_number (XINT (XCAR (XCDR (item))) + XINT (delta));
       plist = XCAR (XCDR (XCDR (item)));
 
-      tem = Fadd_text_properties (start, end, plist, object);
-      if (!NILP (tem))
-       modified_p = 1;
+      Fadd_text_properties (start, end, plist, object);
     }
 
   UNGCPRO;
-  return modified_p;
 }