diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 11 |
1 files changed, 5 insertions, 6 deletions
| @@ -880,13 +880,12 @@ The PLIST is modified by side effects.") | |||
| 880 | register Lisp_Object tail, prev; | 880 | register Lisp_Object tail, prev; |
| 881 | Lisp_Object newcell; | 881 | Lisp_Object newcell; |
| 882 | prev = Qnil; | 882 | prev = Qnil; |
| 883 | for (tail = plist; !NILP (tail); tail = Fcdr (Fcdr (tail))) | 883 | for (tail = plist; CONSP (tail) && CONSP (XCONS (tail)->cdr); |
| 884 | tail = XCONS (XCONS (tail)->cdr)->cdr) | ||
| 884 | { | 885 | { |
| 885 | register Lisp_Object tem; | 886 | if (EQ (prop, XCONS (tail)->car)) |
| 886 | tem = Fcar (tail); | ||
| 887 | if (EQ (prop, tem)) | ||
| 888 | { | 887 | { |
| 889 | Fsetcar (Fcdr (tail), val); | 888 | Fsetcar (XCONS (tail)->cdr, val); |
| 890 | return plist; | 889 | return plist; |
| 891 | } | 890 | } |
| 892 | prev = tail; | 891 | prev = tail; |
| @@ -895,7 +894,7 @@ The PLIST is modified by side effects.") | |||
| 895 | if (NILP (prev)) | 894 | if (NILP (prev)) |
| 896 | return newcell; | 895 | return newcell; |
| 897 | else | 896 | else |
| 898 | Fsetcdr (Fcdr (prev), newcell); | 897 | Fsetcdr (XCONS (prev)->cdr, newcell); |
| 899 | return plist; | 898 | return plist; |
| 900 | } | 899 | } |
| 901 | 900 | ||