Patch from Lars Kellogg-Stedman <lars@larsshack.org> to fix bug
authorEric Andersen <andersen@codepoet.org>
Mon, 21 May 2001 20:30:51 +0000 (20:30 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 21 May 2001 20:30:51 +0000 (20:30 -0000)
#1130 (i.e. When you turn on features it should always ADD features)

14 files changed:
Config.h
applets/usage.h
cmdedit.c
coreutils/tail.c
hush.c
include/usage.h
lash.c
networking/ping.c
ping.c
shell/cmdedit.c
shell/hush.c
shell/lash.c
tail.c
usage.h

index 15209be..d35f1a4 100644 (file)
--- a/Config.h
+++ b/Config.h
 // enable ls -L
 #define BB_FEATURE_LS_FOLLOWLINKS
 //
-// Change ping implementation -- simplified, featureless, but really small.
-//#define BB_FEATURE_SIMPLE_PING
+// Disable for a smaller (but less functional) ping
+#define BB_FEATURE_FANCY_PING
 //
 // Make init use a simplified /etc/inittab file (recommended).
 #define BB_FEATURE_USE_INITTAB
 // enable syslogd -C
 //#define BB_FEATURE_IPC_SYSLOG
 //
-//Simple tail implementation (2.34k vs 3k for the full one).
+//Disable for a simple tail implementation (2.34k vs 3k for the full one).
 //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. 
-#define BB_FEATURE_SIMPLE_TAIL
+#define BB_FEATURE_FANCY_TAIL
 //
 // Enable support for loop devices in mount
 #define BB_FEATURE_MOUNT_LOOP
 // Only relevant if BB_SH is enabled. Off by default.
 //#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
 //
-// Some deeply embedded systems don't have usernames or even hostnames,
-// and the default prompt can look rather hideous on them. Uncomment
-// this option for a simpler, path-only prompt (which was the default until
-// around BusyBox-0.48). On by default.
+// Uncomment this option for a fancy shell prompt that includes the
+// current username and hostname.  On systems that don't have usernames
+// or hostnames, this can look hideous.
 // Only relevant if BB_SH is enabled.
-#define BB_FEATURE_SH_SIMPLE_PROMPT
+//#define BB_FEATURE_SH_FANCY_PROMPT
 //
 //Turn on extra fbset options
 //#define BB_FEATURE_FBSET_FANCY
                #undef BB_FEATURE_COMMAND_EDITING
                #undef BB_FEATURE_COMMAND_TAB_COMPLETION
                #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
-               #define BB_FEATURE_SH_SIMPLE_PROMPT
+               #undef BB_FEATURE_SH_FANCY_PROMPT
        #endif
 #else
        #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
        #undef BB_FEATURE_SH_STANDALONE_SHELL
-       #undef BB_FEATURE_SH_SIMPLE_PROMPT
+       #undef BB_FEATURE_SH_FANCY_PROMPT
 #endif
 //
 #ifdef BB_KILLALL
index b442e8b..63c00c6 100644 (file)
        "Name:       debian\n" \
        "Address:    127.0.0.1\n" 
 
-#ifdef BB_FEATURE_SIMPLE_PING
+#ifndef BB_FEATURE_FANCY_PING
 #define ping_trivial_usage "host"
 #define ping_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
 #else
        "$ syslogd -R 192.168.1.1:601\n"
 
 
-#ifdef BB_FEATURE_SIMPLE_TAIL
+#ifndef BB_FEATURE_FANCY_TAIL
   #define USAGE_UNSIMPLE_TAIL(a)
 #else
   #define USAGE_UNSIMPLE_TAIL(a) a
index cc39e56..a877231 100644 (file)
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -76,7 +76,7 @@
 #undef  BB_FEATURE_COMMAND_USERNAME_COMPLETION
 #endif
 
-#if defined(BB_FEATURE_COMMAND_USERNAME_COMPLETION) || !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_COMMAND_USERNAME_COMPLETION) || defined(BB_FEATURE_SH_FANCY_PROMPT)
 #define BB_FEATURE_GETUSERNAME_AND_HOMEDIR
 #endif
 
@@ -151,7 +151,7 @@ static int cursor;          /* required global for signal handler */
 static int len;                        /* --- "" - - "" - -"- --""-- --""--- */
 static char *command_ps;       /* --- "" - - "" - -"- --""-- --""--- */
 static
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        const
 #endif
 char *cmdedit_prompt;          /* --- "" - - "" - -"- --""-- --""--- */
@@ -166,7 +166,7 @@ static char *home_pwd_buf = "";
 static int my_euid;
 #endif
 
-#ifndef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifdef BB_FEATURE_SH_FANCY_PROMPT
 static char *hostname_buf = "";
 static int num_ok_lines = 1;
 #endif
@@ -335,7 +335,7 @@ static void put_prompt(void)
        cursor = 0;
 }
 
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
 static void parse_prompt(const char *prmt_ptr)
 {
        cmdedit_prompt = prmt_ptr;
@@ -1469,7 +1469,7 @@ prepare_to_die:
                                history_counter++;
                        }
                }
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
                num_ok_lines++;
 #endif
        }
@@ -1478,7 +1478,7 @@ prepare_to_die:
 #if defined(BB_FEATURE_CLEAN_UP) && defined(BB_FEATURE_COMMAND_TAB_COMPLETION)
        input_tab(0);                           /* strong free */
 #endif
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
        free(cmdedit_prompt);
 #endif
        return;
@@ -1519,7 +1519,7 @@ int main(int argc, char **argv)
 {
        char buff[BUFSIZ];
        char *prompt =
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
                "\\[\\033[32;1m\\]\\u@\\[\\x1b[33;1m\\]\\h:\
 \\[\\033[34;1m\\]\\w\\[\\033[35;1m\\] \
 \\!\\[\\e[36;1m\\]\\$ \\[\\E[0m\\]";
index ff77bde..4fe92ba 100644 (file)
@@ -73,7 +73,7 @@ int tail_main(int argc, char **argv)
                        case 'f':
                                follow = 1;
                                break;
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                        case 'c':
                                units = BYTES;
                                /* FALLS THROUGH */
@@ -85,7 +85,7 @@ int tail_main(int argc, char **argv)
                                if (optarg[0] == '+')
                                        from_top = 1;
                                break;
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                        case 'q':
                                hide_headers = 1;
                                break;
@@ -118,7 +118,7 @@ int tail_main(int argc, char **argv)
                }
        }
        
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
        /* tail the files */
        if (!from_top && units == BYTES)
                tailbuf = xmalloc(count);
@@ -132,7 +132,7 @@ int tail_main(int argc, char **argv)
                        printf("%s==> %s <==\n", i == 0 ? "" : "\n", argv[optind + i]);
                while ((nread = safe_read(fds[i], buf, sizeof(buf))) > 0) {
                        if (from_top) {
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                                if (units == BYTES) {
                                        if (count - 1 <= seen)
                                                nwrite = nread;
@@ -165,7 +165,7 @@ int tail_main(int argc, char **argv)
                                        break;
                                }
                        } else {
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                                if (units == BYTES) {
                                        if (nread < count) {
                                                memmove(tailbuf, tailbuf + nread, count - nread);
@@ -199,7 +199,7 @@ int tail_main(int argc, char **argv)
                        status = EXIT_FAILURE;
                }
 
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                if (!from_top && units == BYTES) {
                        if (count < seen)
                                seen = count;
diff --git a/hush.c b/hush.c
index fc45bb2..722dcf7 100644 (file)
--- a/hush.c
+++ b/hush.c
 #define applet_name "hush"
 #include "standalone.h"
 #define shell_main main
-#define BB_FEATURE_SH_SIMPLE_PROMPT
+#undef BB_FEATURE_SH_FANCY_PROMPT
 #endif
 
 typedef enum {
@@ -843,7 +843,7 @@ static int static_peek(struct in_str *i)
 
 static inline void cmdedit_set_initial_prompt(void)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        PS1 = NULL;
 #else
        PS1 = getenv("PS1");
@@ -855,7 +855,7 @@ static inline void cmdedit_set_initial_prompt(void)
 static inline void setup_prompt_string(int promptmode, char **prompt_str)
 {
        debug_printf("setup_prompt_string %d ",promptmode);
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        /* Set up the prompt */
        if (promptmode == 1) {
                if (PS1)
index b442e8b..63c00c6 100644 (file)
        "Name:       debian\n" \
        "Address:    127.0.0.1\n" 
 
-#ifdef BB_FEATURE_SIMPLE_PING
+#ifndef BB_FEATURE_FANCY_PING
 #define ping_trivial_usage "host"
 #define ping_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
 #else
        "$ syslogd -R 192.168.1.1:601\n"
 
 
-#ifdef BB_FEATURE_SIMPLE_TAIL
+#ifndef BB_FEATURE_FANCY_TAIL
   #define USAGE_UNSIMPLE_TAIL(a)
 #else
   #define USAGE_UNSIMPLE_TAIL(a) a
diff --git a/lash.c b/lash.c
index cb17e2d..f1200ba 100644 (file)
--- a/lash.c
+++ b/lash.c
@@ -436,7 +436,7 @@ static int builtin_export(struct child_prog *child)
        res = putenv(v);
        if (res)
                fprintf(stderr, "export: %m\n");
-#ifndef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifdef BB_FEATURE_SH_FANCY_PROMPT
        if (strncmp(v, "PS1=", 4)==0)
                PS1 = getenv("PS1");
 #endif
@@ -809,7 +809,7 @@ static void restore_redirects(int squirrel[])
 
 static inline void cmdedit_set_initial_prompt(void)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        PS1 = NULL;
 #else
        PS1 = getenv("PS1");
@@ -820,7 +820,7 @@ static inline void cmdedit_set_initial_prompt(void)
 
 static inline void setup_prompt_string(char **prompt_str)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        /* Set up the prompt */
        if (shell_context == 0) {
                if (PS1)
index 1afcb28..e4307d2 100644 (file)
@@ -1,6 +1,6 @@
 /* vi: set sw=4 ts=4: */
 /*
- * $Id: ping.c,v 1.42 2001/05/16 15:52:23 kraai Exp $
+ * $Id: ping.c,v 1.43 2001/05/21 20:30:51 andersen Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -174,7 +174,7 @@ static int in_cksum(unsigned short *buf, int sz)
 }
 
 /* simple version */
-#ifdef BB_FEATURE_SIMPLE_PING
+#ifndef BB_FEATURE_FANCY_PING
 static char *hostname = NULL;
 
 static void noresp(int ign)
@@ -251,7 +251,7 @@ extern int ping_main(int argc, char **argv)
        return EXIT_SUCCESS;
 }
 
-#else /* ! BB_FEATURE_SIMPLE_PING */
+#else /* ! BB_FEATURE_FANCY_PING */
 /* full(er) version */
 static char *hostname = NULL;
 static struct sockaddr_in pingaddr;
@@ -534,7 +534,7 @@ extern int ping_main(int argc, char **argv)
        ping(*argv);
        return EXIT_SUCCESS;
 }
-#endif /* ! BB_FEATURE_SIMPLE_PING */
+#endif /* ! BB_FEATURE_FANCY_PING */
 
 /*
  * Copyright (c) 1989 The Regents of the University of California.
diff --git a/ping.c b/ping.c
index 1afcb28..e4307d2 100644 (file)
--- a/ping.c
+++ b/ping.c
@@ -1,6 +1,6 @@
 /* vi: set sw=4 ts=4: */
 /*
- * $Id: ping.c,v 1.42 2001/05/16 15:52:23 kraai Exp $
+ * $Id: ping.c,v 1.43 2001/05/21 20:30:51 andersen Exp $
  * Mini ping implementation for busybox
  *
  * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -174,7 +174,7 @@ static int in_cksum(unsigned short *buf, int sz)
 }
 
 /* simple version */
-#ifdef BB_FEATURE_SIMPLE_PING
+#ifndef BB_FEATURE_FANCY_PING
 static char *hostname = NULL;
 
 static void noresp(int ign)
@@ -251,7 +251,7 @@ extern int ping_main(int argc, char **argv)
        return EXIT_SUCCESS;
 }
 
-#else /* ! BB_FEATURE_SIMPLE_PING */
+#else /* ! BB_FEATURE_FANCY_PING */
 /* full(er) version */
 static char *hostname = NULL;
 static struct sockaddr_in pingaddr;
@@ -534,7 +534,7 @@ extern int ping_main(int argc, char **argv)
        ping(*argv);
        return EXIT_SUCCESS;
 }
-#endif /* ! BB_FEATURE_SIMPLE_PING */
+#endif /* ! BB_FEATURE_FANCY_PING */
 
 /*
  * Copyright (c) 1989 The Regents of the University of California.
index cc39e56..a877231 100644 (file)
@@ -76,7 +76,7 @@
 #undef  BB_FEATURE_COMMAND_USERNAME_COMPLETION
 #endif
 
-#if defined(BB_FEATURE_COMMAND_USERNAME_COMPLETION) || !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_COMMAND_USERNAME_COMPLETION) || defined(BB_FEATURE_SH_FANCY_PROMPT)
 #define BB_FEATURE_GETUSERNAME_AND_HOMEDIR
 #endif
 
@@ -151,7 +151,7 @@ static int cursor;          /* required global for signal handler */
 static int len;                        /* --- "" - - "" - -"- --""-- --""--- */
 static char *command_ps;       /* --- "" - - "" - -"- --""-- --""--- */
 static
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        const
 #endif
 char *cmdedit_prompt;          /* --- "" - - "" - -"- --""-- --""--- */
@@ -166,7 +166,7 @@ static char *home_pwd_buf = "";
 static int my_euid;
 #endif
 
-#ifndef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifdef BB_FEATURE_SH_FANCY_PROMPT
 static char *hostname_buf = "";
 static int num_ok_lines = 1;
 #endif
@@ -335,7 +335,7 @@ static void put_prompt(void)
        cursor = 0;
 }
 
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
 static void parse_prompt(const char *prmt_ptr)
 {
        cmdedit_prompt = prmt_ptr;
@@ -1469,7 +1469,7 @@ prepare_to_die:
                                history_counter++;
                        }
                }
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
                num_ok_lines++;
 #endif
        }
@@ -1478,7 +1478,7 @@ prepare_to_die:
 #if defined(BB_FEATURE_CLEAN_UP) && defined(BB_FEATURE_COMMAND_TAB_COMPLETION)
        input_tab(0);                           /* strong free */
 #endif
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
        free(cmdedit_prompt);
 #endif
        return;
@@ -1519,7 +1519,7 @@ int main(int argc, char **argv)
 {
        char buff[BUFSIZ];
        char *prompt =
-#if !defined(BB_FEATURE_SH_SIMPLE_PROMPT)
+#if defined(BB_FEATURE_SH_FANCY_PROMPT)
                "\\[\\033[32;1m\\]\\u@\\[\\x1b[33;1m\\]\\h:\
 \\[\\033[34;1m\\]\\w\\[\\033[35;1m\\] \
 \\!\\[\\e[36;1m\\]\\$ \\[\\E[0m\\]";
index fc45bb2..722dcf7 100644 (file)
 #define applet_name "hush"
 #include "standalone.h"
 #define shell_main main
-#define BB_FEATURE_SH_SIMPLE_PROMPT
+#undef BB_FEATURE_SH_FANCY_PROMPT
 #endif
 
 typedef enum {
@@ -843,7 +843,7 @@ static int static_peek(struct in_str *i)
 
 static inline void cmdedit_set_initial_prompt(void)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        PS1 = NULL;
 #else
        PS1 = getenv("PS1");
@@ -855,7 +855,7 @@ static inline void cmdedit_set_initial_prompt(void)
 static inline void setup_prompt_string(int promptmode, char **prompt_str)
 {
        debug_printf("setup_prompt_string %d ",promptmode);
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        /* Set up the prompt */
        if (promptmode == 1) {
                if (PS1)
index cb17e2d..f1200ba 100644 (file)
@@ -436,7 +436,7 @@ static int builtin_export(struct child_prog *child)
        res = putenv(v);
        if (res)
                fprintf(stderr, "export: %m\n");
-#ifndef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifdef BB_FEATURE_SH_FANCY_PROMPT
        if (strncmp(v, "PS1=", 4)==0)
                PS1 = getenv("PS1");
 #endif
@@ -809,7 +809,7 @@ static void restore_redirects(int squirrel[])
 
 static inline void cmdedit_set_initial_prompt(void)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        PS1 = NULL;
 #else
        PS1 = getenv("PS1");
@@ -820,7 +820,7 @@ static inline void cmdedit_set_initial_prompt(void)
 
 static inline void setup_prompt_string(char **prompt_str)
 {
-#ifdef BB_FEATURE_SH_SIMPLE_PROMPT
+#ifndef BB_FEATURE_SH_FANCY_PROMPT
        /* Set up the prompt */
        if (shell_context == 0) {
                if (PS1)
diff --git a/tail.c b/tail.c
index ff77bde..4fe92ba 100644 (file)
--- a/tail.c
+++ b/tail.c
@@ -73,7 +73,7 @@ int tail_main(int argc, char **argv)
                        case 'f':
                                follow = 1;
                                break;
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                        case 'c':
                                units = BYTES;
                                /* FALLS THROUGH */
@@ -85,7 +85,7 @@ int tail_main(int argc, char **argv)
                                if (optarg[0] == '+')
                                        from_top = 1;
                                break;
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                        case 'q':
                                hide_headers = 1;
                                break;
@@ -118,7 +118,7 @@ int tail_main(int argc, char **argv)
                }
        }
        
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
        /* tail the files */
        if (!from_top && units == BYTES)
                tailbuf = xmalloc(count);
@@ -132,7 +132,7 @@ int tail_main(int argc, char **argv)
                        printf("%s==> %s <==\n", i == 0 ? "" : "\n", argv[optind + i]);
                while ((nread = safe_read(fds[i], buf, sizeof(buf))) > 0) {
                        if (from_top) {
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                                if (units == BYTES) {
                                        if (count - 1 <= seen)
                                                nwrite = nread;
@@ -165,7 +165,7 @@ int tail_main(int argc, char **argv)
                                        break;
                                }
                        } else {
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                                if (units == BYTES) {
                                        if (nread < count) {
                                                memmove(tailbuf, tailbuf + nread, count - nread);
@@ -199,7 +199,7 @@ int tail_main(int argc, char **argv)
                        status = EXIT_FAILURE;
                }
 
-#ifndef BB_FEATURE_SIMPLE_TAIL
+#ifdef BB_FEATURE_FANCY_TAIL
                if (!from_top && units == BYTES) {
                        if (count < seen)
                                seen = count;
diff --git a/usage.h b/usage.h
index b442e8b..63c00c6 100644 (file)
--- a/usage.h
+++ b/usage.h
        "Name:       debian\n" \
        "Address:    127.0.0.1\n" 
 
-#ifdef BB_FEATURE_SIMPLE_PING
+#ifndef BB_FEATURE_FANCY_PING
 #define ping_trivial_usage "host"
 #define ping_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
 #else
        "$ syslogd -R 192.168.1.1:601\n"
 
 
-#ifdef BB_FEATURE_SIMPLE_TAIL
+#ifndef BB_FEATURE_FANCY_TAIL
   #define USAGE_UNSIMPLE_TAIL(a)
 #else
   #define USAGE_UNSIMPLE_TAIL(a) a