]> git.eshelyaron.com Git - emacs.git/commitdiff
(remove_properties): Fixed trap for malformed plist.
authorKim F. Storm <storm@cua.dk>
Mon, 22 Apr 2002 17:59:02 +0000 (17:59 +0000)
committerKim F. Storm <storm@cua.dk>
Mon, 22 Apr 2002 17:59:02 +0000 (17:59 +0000)
src/ChangeLog
src/textprop.c

index 8c6bd5af5ee27c514419a4da647f39bd2ad08de5..958b410ceade017a4082e50a35553c73ff46515f 100644 (file)
@@ -1,3 +1,7 @@
+2002-04-22  Kim F. Storm  <storm@cua.dk>
+
+       * textprop.c (remove_properties): Fixed trap for malformed plist.
+
 2002-04-22  Richard M. Stallman  <rms@gnu.org>
 
        * window.c (make_window): Initialize height_fixed_p,
index 928c9f9b8b3c671fdaf0835eb7f1c3cdce7af7e3..c85b4dcfd04dbd4c94618059f861e0880740848c 100644 (file)
@@ -452,15 +452,15 @@ remove_properties (plist, list, i, object)
   register Lisp_Object tail1, tail2, sym, current_plist;
   register int changed = 0;
 
-  /* Nonzero means tail1 is a list, otherwise it is a plist.  */
-  int use_list;
+  /* Nonzero means tail1 is a plist, otherwise it is a list.  */
+  int use_plist;
 
   current_plist = i->plist;
 
   if (! NILP (plist))
-    tail1 = plist, use_list = 0;
+    tail1 = plist, use_plist = 1;
   else
-    tail1 = list, use_list = 1;
+    tail1 = list, use_plist = 0;
 
   /* Go through each element of LIST or PLIST.  */
   while (! NILP (tail1))
@@ -498,10 +498,9 @@ remove_properties (plist, list, i, object)
        }
 
       /* Advance thru TAIL1 one way or the other.  */
-      if (use_list)
+      tail1 = XCDR (tail1);
+      if (use_plist && CONSP (tail1))
        tail1 = XCDR (tail1);
-      else
-       tail1 = XCDR (XCDR (tail1));
     }
 
   if (changed)