aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-03-24 14:06:51 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-03-24 14:06:51 +0000
commit5b27fbe990d868441452c474e5b14e94f8bc8335 (patch)
treec6a7e85b1d6d1c8e18089c3f7d83e392cf04448f
parentb5b45a91f0f2d3f57864b49eb3126c9eb6a2b1eb (diff)
downloadbusybox-5b27fbe990d868441452c474e5b14e94f8bc8335.tar.gz
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
-rw-r--r--miscutils/dc.c35
-rw-r--r--networking/dnsd.c3
-rw-r--r--shell/msh.c17
3 files changed, 27 insertions, 28 deletions
diff --git a/miscutils/dc.c b/miscutils/dc.c
index 2121f7669..8c9d77fc3 100644
--- a/miscutils/dc.c
+++ b/miscutils/dc.c
@@ -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 not(void)
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 @@ static void print_base(double print)
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 @@ static void print_no_pop(void)
}
struct op {
- const char *name;
+ const char name[4];
void (*function) (void);
};
@@ -145,7 +142,7 @@ static const struct op operators[] = {
{"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 @@ static void stack_machine(const char *argument)
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 @@ static char *get_token(char **buffer)
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 @@ int dc_main(int argc, char **argv)
free(line);
}
} else {
- if (*argv[1]=='-')
+ if (*argv[1] == '-')
bb_show_usage();
while (argc >= 2) {
stack_machine(argv[1]);
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 2cecf6491..c9c7b3a7c 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -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 @@ static void undot(uint8_t * rip)
* 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 @@ int dnsd_main(int argc, char **argv)
#else
xdaemon(1, 0);
#endif
+ openlog(applet_name, LOG_PID, LOG_DAEMON);
logmode = LOGMODE_SYSLOG;
}
diff --git a/shell/msh.c b/shell/msh.c
index 41f4cc60d..d9dd3efb2 100644
--- a/shell/msh.c
+++ b/shell/msh.c
@@ -1191,23 +1191,22 @@ static int isassign(const char *s)
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;
}