diff options
| author | Karl Heuer | 1995-04-24 19:43:15 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-04-24 19:43:15 +0000 |
| commit | f8307c0cacae98a9072f48649c3fda886d213a05 (patch) | |
| tree | a967d96b6e9cf89375516c2088d6399ecca206ab /src | |
| parent | 2820e30882955b60736729fe8387ebb952a8de1b (diff) | |
| download | emacs-f8307c0cacae98a9072f48649c3fda886d213a05.tar.gz emacs-f8307c0cacae98a9072f48649c3fda886d213a05.zip | |
(Fplist_put): Don't signal an error if plist isn't a cons.
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 | ||