Goetz Bock writes:

Dear list,

during my quest do pack busybox into an RPM, I've fixed a small bug
(missing \n) in dc's usage. And added two additional operations: mod and
exp/power.

Feel free to drop them.
This commit is contained in:
Eric Andersen
2003-10-22 11:24:39 +00:00
parent a48b0a3af7
commit a92877403a
2 changed files with 24 additions and 2 deletions

View File

@@ -44,6 +44,13 @@ static void mul(void)
push(pop() * pop());
}
static void power(void)
{
double topower = pop();
push(pow(pop(), topower));
}
static void divide(void)
{
double divisor = pop();
@@ -51,6 +58,13 @@ static void divide(void)
push(pop() / divisor);
}
static void mod(void)
{
unsigned int d = pop();
push((unsigned int) pop() % d);
}
static void and(void)
{
push((unsigned int) pop() & (unsigned int) pop());
@@ -119,10 +133,16 @@ static const struct op operators[] = {
{"mul", mul},
{"/", divide},
{"div", divide},
{"**", power},
{"exp", power},
{"pow", power},
{"%", mod},
{"mod", mod},
{"and", and},
{"or", or},
{"not", not},
{"eor", eor},
{"xor", eor},
{"p", print_no_pop},
{"f", print_stack_no_pop},
{"o", set_output_base},