mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
allow `apply' on %nil-terminated lists
* libguile/vm-engine.h (PUSH_LIST): Add a parameter to check that the list was proper. * libguile/vm-i-system.c: Adapt PUSH_LIST callsites to pass SCM_NULLP or SCM_NULL_OR_NIL_P, as appropriate. Add a check to return/values*. * libguile/vm.c: Add lang.h header for SCM_NULL_OR_NIL_P. * test-suite/tests/elisp.test: Fix XFAIL for elisp + apply.
This commit is contained in:
parent
b1b942b74c
commit
fb10a0084e
4 changed files with 15 additions and 14 deletions
|
@ -299,12 +299,12 @@ do \
|
|||
} while (0)
|
||||
|
||||
/* The opposite: push all of the elements in L onto the list. */
|
||||
#define PUSH_LIST(l) \
|
||||
#define PUSH_LIST(l, NILP) \
|
||||
do \
|
||||
{ \
|
||||
for (; scm_is_pair (l); l = SCM_CDR (l)) \
|
||||
PUSH (SCM_CAR (l)); \
|
||||
if (SCM_UNLIKELY (!SCM_NULLP (l))) { \
|
||||
if (SCM_UNLIKELY (!NILP (l))) { \
|
||||
err_args = scm_list_1 (l); \
|
||||
goto vm_error_improper_list; \
|
||||
} \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue