diff options
author | Brian Templeton <bpt@hcoop.net> | 2010-07-22 16:25:29 -0400 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-12-07 13:21:03 +0100 |
commit | b41a673d2647eef7ff43469ed864bd584fcd9be2 (patch) | |
tree | edfddc796739a6d54310616e4ea53c801c52722e | |
parent | b7966c10efaaaf95e3a6fe300e79d9c3c195bde5 (diff) | |
download | guile-b41a673d2647eef7ff43469ed864bd584fcd9be2.tar.gz |
allow `(setcar nil nil)' and `(setcdr nil nil)'
* module/language/elisp/runtime/subrs.scm (setcar, setcdr): Allow
setting the car or cdr of `nil' to `nil'.
Signed-off-by: Andy Wingo <wingo@pobox.com>
-rw-r--r-- | module/language/elisp/runtime/subrs.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/module/language/elisp/runtime/subrs.scm b/module/language/elisp/runtime/subrs.scm index e01261a97..c981b3819 100644 --- a/module/language/elisp/runtime/subrs.scm +++ b/module/language/elisp/runtime/subrs.scm @@ -265,12 +265,16 @@ (built-in-func setcar (lambda (cell val) - (prim set-car! cell val) + (if (and (null? cell) (null? val)) + #nil + (prim set-car! cell val)) val)) (built-in-func setcdr (lambda (cell val) - (prim set-cdr! cell val) + (if (and (null? cell) (null? val)) + #nil + (prim set-cdr! cell val)) val)) ;;; Accessing symbol bindings for symbols known only at runtime. |