Fix regression in multiplication

This commit is contained in:
Přemysl Eric Janouch 2017-05-28 10:02:19 +02:00
parent 81853a37fb
commit 4698e522cc
Signed by: p
GPG Key ID: B715679E3A361BE6
2 changed files with 3 additions and 3 deletions

View File

@ -52,7 +52,7 @@ Runtime
------- -------
Variables use per-block dynamic scoping. Arguments to a block (which is a list Variables use per-block dynamic scoping. Arguments to a block (which is a list
of lists) are assigned to local variables named `1`, `2`, etc., and the full of lists) are assigned to local variables named `1`, `2`, etc., and the full
list of them is stored in `*`. list of them is stored in `args`.
When evaluating a command, the first argument is typically a string with its When evaluating a command, the first argument is typically a string with its
name and it is resolved as if `set` was called on it. name and it is resolved as if `set` was called on it.
@ -166,7 +166,7 @@ Install development packages for GNU Readline to get a REPL for toying around:
Possible Ways of Complicating Possible Ways of Complicating
----------------------------- -----------------------------
* `local [_a _b _rest] @*` would elegantly solve the problem of varargs, * `local [_a _b _rest] @args` would elegantly solve the problem of varargs,
that is, unpack a list when names are list, and make the last element a list that is, unpack a list when names are list, and make the last element a list
when there are more arguments than names when there are more arguments than names
* reference counting: currently all values are always copied as needed, which * reference counting: currently all values are always copied as needed, which

2
ell.c
View File

@ -897,7 +897,7 @@ execute_statement
static bool static bool
args_to_scope (struct context *ctx, struct item *args, struct item **scope) { args_to_scope (struct context *ctx, struct item *args, struct item **scope) {
if (!check (ctx, (args = new_list (args))) if (!check (ctx, (args = new_list (args)))
|| !scope_prepend (ctx, scope, "*", args)) || !scope_prepend (ctx, scope, "args", args))
return false; return false;
size_t i = 0; size_t i = 0;