diff --git a/src/execute.c b/src/execute.c index 2fad22d..c020bd4 100644 --- a/src/execute.c +++ b/src/execute.c @@ -56,6 +56,15 @@ static void prefix_operator(Stack *stack, char op) break; } + + if (INST.ispiped) + DATA = stack_pop(stack); + + if (INST.isdrained) + { + stack_push(stack, DATA); + DATA = 0; + } } static void expression(Stack *stack, char *code) @@ -148,15 +157,6 @@ void execute(Stack *stack, Stack *originstack, char *modname) #endif prefix_operator(stack, NAME[0]); - if (INST.ispiped) - DATA = stack_pop(stack); - - if (INST.isdrained) - { - stack_push(stack, DATA); - DATA = 0; - } - if (NAME[0] == '#' || NAME[0] == '$') NAME++;