Mercurial > emacs
changeset 44748:e137c1849517
(remove_properties): Fixed trap for malformed plist.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Mon, 22 Apr 2002 17:56:38 +0000 |
parents | 56c53efca6a4 |
children | d009a200b5c8 |
files | src/textprop.c |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/textprop.c Mon Apr 22 16:00:08 2002 +0000 +++ b/src/textprop.c Mon Apr 22 17:56:38 2002 +0000 @@ -452,15 +452,15 @@ 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 @@ } /* 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)