diff options
author | Andy Wingo <wingo@pobox.com> | 2013-01-23 16:12:08 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-01-23 16:12:08 +0100 |
commit | 747bd5347d8b36c41809a16cb3f17b23e9afa9bf (patch) | |
tree | c8fa343e92b5446e92b38efaa105489f4817e9be /libguile/eval.c | |
parent | d7874b91830ebb1dbfc887d5309e5fce46a87fc2 (diff) | |
parent | faabd16157f8b55766cf890e79129c066fbc124b (diff) | |
download | guile-747bd5347d8b36c41809a16cb3f17b23e9afa9bf.tar.gz |
merge stable-2.0
There are some bugs with command-line handling that will be sorted out
with the next commit.
Diffstat (limited to 'libguile/eval.c')
-rw-r--r-- | libguile/eval.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libguile/eval.c b/libguile/eval.c index 4076d16b7..f743ed78e 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012 +/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004, + * 2005,2006,2007,2008,2009,2010,2011,2012,2013 * Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or @@ -851,6 +852,14 @@ prepare_boot_closure_env_for_apply (SCM proc, SCM args, env = scm_cons (args, env); i++; } + else if (scm_is_true (alt) + && scm_is_pair (args) && !scm_is_keyword (CAR (args))) + { + /* Too many positional args, no rest arg, and we have an + alternate clause. */ + mx = alt; + goto loop; + } /* Now fill in env with unbound values, limn the rest of the args for keywords, and fill in unbound values with their inits. */ |