svn commit: trunk/busybox: miscutils networking shell

vda at busybox.net vda at busybox.net
Sat Mar 24 14:06:52 UTC 2007


Author: vda
Date: 2007-03-24 07:06:51 -0700 (Sat, 24 Mar 2007)
New Revision: 18225

Log:
dc: use common_bufsiz1 for evaluation stack
msh: fix "underscore bug" (a_b=1111 didn't work)
dnsd: openlog(), so that applet's name is logged


Modified:
   trunk/busybox/miscutils/dc.c
   trunk/busybox/networking/dnsd.c
   trunk/busybox/shell/msh.c


Changeset:
Modified: trunk/busybox/miscutils/dc.c
===================================================================
--- trunk/busybox/miscutils/dc.c	2007-03-24 13:09:07 UTC (rev 18224)
+++ trunk/busybox/miscutils/dc.c	2007-03-24 14:06:51 UTC (rev 18225)
@@ -4,22 +4,19 @@
  */
 
 #include "busybox.h"
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
 #include <math.h>
 
 /* Tiny RPN calculator, because "expr" didn't give me bitwise operations. */
 
-static double stack[100];
+enum { STACK_SIZE = sizeof(bb_common_bufsiz1) / sizeof(double) };
+
+#define stack ((double*)&bb_common_bufsiz1)
 static unsigned int pointer;
 static unsigned char base;
 
 static void push(double a)
 {
-	if (pointer >= (sizeof(stack) / sizeof(*stack)))
+	if (pointer >= STACK_SIZE)
 		bb_error_msg_and_die("stack overflow");
 	stack[pointer++] = a;
 }
@@ -91,10 +88,10 @@
 
 static void set_output_base(void)
 {
-	base=(unsigned char)pop();
+	base = (unsigned char)pop();
 	if ((base != 10) && (base != 16)) {
-		fprintf(stderr, "Error: base = %d is not supported.\n", base);
-		base=10;
+		bb_error_msg("error, base %d is not supported", base);
+		base = 10;
 	}
 }
 
@@ -103,12 +100,12 @@
 	if (base == 16)
 		printf("%x\n", (unsigned int)print);
 	else
-	printf("%g\n", print);
+		printf("%g\n", print);
 }
 
 static void print_stack_no_pop(void)
 {
-	unsigned int i=pointer;
+	unsigned int i = pointer;
 	while (i)
 		print_base(stack[--i]);
 }
@@ -119,7 +116,7 @@
 }
 
 struct op {
-	const char *name;
+	const char name[4];
 	void (*function) (void);
 };
 
@@ -145,7 +142,7 @@
 	{"p", print_no_pop},
 	{"f", print_stack_no_pop},
 	{"o", set_output_base},
-	{0,     0}
+	{"", 0}
 };
 
 static void stack_machine(const char *argument)
@@ -164,9 +161,9 @@
 		return;
 	}
 
-	while (o->name != 0) {
+	while (o->name[0]) {
 		if (strcmp(o->name, argument) == 0) {
-			(*(o->function)) ();
+			o->function();
 			return;
 		}
 		o++;
@@ -185,7 +182,9 @@
 	current = skip_whitespace(*buffer);
 	if (*current != 0) {
 		start = current;
-		while (!isspace(*current) && *current != 0) { current++; }
+		while (!isspace(*current) && *current != 0) {
+			current++;
+		}
 		*buffer = current;
 	}
 	return start;
@@ -220,7 +219,7 @@
 			free(line);
 		}
 	} else {
-		if (*argv[1]=='-')
+		if (*argv[1] == '-')
 			bb_show_usage();
 		while (argc >= 2) {
 			stack_machine(argv[1]);

Modified: trunk/busybox/networking/dnsd.c
===================================================================
--- trunk/busybox/networking/dnsd.c	2007-03-24 13:09:07 UTC (rev 18224)
+++ trunk/busybox/networking/dnsd.c	2007-03-24 14:06:51 UTC (rev 18225)
@@ -17,6 +17,7 @@
  * the first porting of oao' scdns to busybox also.
  */
 
+#include <syslog.h>
 #include "busybox.h"
 
 //#define DEBUG 1
@@ -114,7 +115,6 @@
  * Presently the dot is copied into name without
  * converting to a length/string substring for that label.
  */
-
 static int getfileentry(FILE * fp, struct dns_entry *s)
 {
 	unsigned int a,b,c,d;
@@ -359,6 +359,7 @@
 #else
 		xdaemon(1, 0);
 #endif
+		openlog(applet_name, LOG_PID, LOG_DAEMON);
 		logmode = LOGMODE_SYSLOG;
 	}
 

Modified: trunk/busybox/shell/msh.c
===================================================================
--- trunk/busybox/shell/msh.c	2007-03-24 13:09:07 UTC (rev 18224)
+++ trunk/busybox/shell/msh.c	2007-03-24 14:06:51 UTC (rev 18225)
@@ -1191,23 +1191,22 @@
 	unsigned char c;
 	DBGPRINTF7(("ISASSIGN: enter, s=%s\n", s));
 
-	/* no isalpha() - we shouldn't use locale */
 	c = *s;
-	if (c != '_'
-	 && (unsigned)((c|0x20) - 'a') > 25 /* not letter */
-	) {
+	/* no isalpha() - we shouldn't use locale */
+	/* c | 0x20 - lowercase (Latin) letters */
+	if (c != '_' && (unsigned)((c|0x20) - 'a') > 25)
+		/* not letter */
 		return 0;
-	}
+
 	while (1) {
 		c = *++s;
-		if (c == '\0')
-			return 0;
 		if (c == '=')
 			return 1;
-		c |= 0x20; /* lowercase letters, doesn't affect numbers */
+		if (c == '\0')
+			return 0;
 		if (c != '_'
 		 && (unsigned)(c - '0') > 9  /* not number */
-		 && (unsigned)(c - 'a') > 25 /* not letter */
+		 && (unsigned)((c|0x20) - 'a') > 25 /* not letter */
 		) {
 			return 0;
 		}




More information about the busybox-cvs mailing list