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