X-Git-Url: https://secure.softndesign.org/git/?a=blobdiff_plain;f=parser.c;fp=parser.c;h=74e980b39c4dac2ea4e3f812d7fe0483c8e9989e;hb=4747e9a1aa15945d80f64feb9f23769d1d901c0e;hp=4e360ddaf70bec25ea4cb46ad72bd2bb12aa276e;hpb=a9a3da22ab3f1bf022fc02443494006bca82ed45;p=calc.git diff --git a/parser.c b/parser.c index 4e360dd..74e980b 100644 --- a/parser.c +++ b/parser.c @@ -175,8 +175,8 @@ keyword_t functions[NB_FUNCTIONS] = { { "pop", Pop, 0, 3, 5}, { "push", Push, 1, 4, 5}, { "put", Put, 2, 3, 5}, - { "set", Set, MAX_ARGS, 3, 9}, - { "show", Show, 0, 4, 9}, + { "set", Set, MAX_ARGS, 3, 5}, + { "show", Show, 0, 4, 5}, }; #define NB_CONSTANTS 3 @@ -871,12 +871,17 @@ double call (int id, int nbops, element_t **ops) element_t *elements = dupelement ((programs + n)->root); ret = evaluate_element (elements, 0); delelement (elements); + (programs + n)->answer = answer; + (programs + n)->storage = storage; + (programs + n)->storage_size = storage_size; + (programs + n)->stack = stack; + (programs + n)->stack_size = stack_size; /* restore context */ answer = tmp.answer; storage = tmp.storage; - storage = tmp.storage; - stack_size = tmp.stack_size; + storage_size = tmp.storage_size; + stack = tmp.stack; stack_size = tmp.stack_size; return ret;