From b41a673d2647eef7ff43469ed864bd584fcd9be2 Mon Sep 17 00:00:00 2001 From: Brian Templeton Date: Thu, 22 Jul 2010 16:25:29 -0400 Subject: [PATCH] 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 --- module/language/elisp/runtime/subrs.scm | 8 ++++++-- 1 file 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.