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:
@@ -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},
|
||||
|
Reference in New Issue
Block a user