From 004015e9c4e8ff98bcbaf955cf42147218204da4 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 21 May 2001 20:30:51 +0000 Subject: [PATCH] Patch from Lars Kellogg-Stedman to fix bug #1130 (i.e. When you turn on features it should always ADD features) --- Config.h | 21 ++++++++++----------- applets/usage.h | 4 ++-- cmdedit.c | 14 +++++++------- coreutils/tail.c | 12 ++++++------ hush.c | 6 +++--- include/usage.h | 4 ++-- lash.c | 6 +++--- networking/ping.c | 8 ++++---- ping.c | 8 ++++---- shell/cmdedit.c | 14 +++++++------- shell/hush.c | 6 +++--- shell/lash.c | 6 +++--- tail.c | 12 ++++++------ usage.h | 4 ++-- 14 files changed, 62 insertions(+), 63 deletions(-) diff --git a/Config.h b/Config.h index 15209beef..d35f1a4bf 100644 --- a/Config.h +++ b/Config.h @@ -192,8 +192,8 @@ // 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 @@ -213,9 +213,9 @@ // 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 @@ -273,12 +273,11 @@ // 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 @@ -389,12 +388,12 @@ #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 diff --git a/applets/usage.h b/applets/usage.h index b442e8b35..63c00c674 100644 --- a/applets/usage.h +++ b/applets/usage.h @@ -1166,7 +1166,7 @@ "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 @@ -1433,7 +1433,7 @@ "$ 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/cmdedit.c b/cmdedit.c index cc39e562a..a87723139 100644 --- 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\\]"; diff --git a/coreutils/tail.c b/coreutils/tail.c index ff77bde77..4fe92ba5e 100644 --- a/coreutils/tail.c +++ b/coreutils/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/hush.c b/hush.c index fc45bb270..722dcf7ac 100644 --- a/hush.c +++ b/hush.c @@ -113,7 +113,7 @@ #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) diff --git a/include/usage.h b/include/usage.h index b442e8b35..63c00c674 100644 --- a/include/usage.h +++ b/include/usage.h @@ -1166,7 +1166,7 @@ "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 @@ -1433,7 +1433,7 @@ "$ 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 cb17e2d75..f1200ba95 100644 --- 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) diff --git a/networking/ping.c b/networking/ping.c index 1afcb28b1..e4307d2de 100644 --- a/networking/ping.c +++ b/networking/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 @@ -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 1afcb28b1..e4307d2de 100644 --- 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 @@ -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/shell/cmdedit.c b/shell/cmdedit.c index cc39e562a..a87723139 100644 --- a/shell/cmdedit.c +++ b/shell/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\\]"; diff --git a/shell/hush.c b/shell/hush.c index fc45bb270..722dcf7ac 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -113,7 +113,7 @@ #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) diff --git a/shell/lash.c b/shell/lash.c index cb17e2d75..f1200ba95 100644 --- a/shell/lash.c +++ b/shell/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) diff --git a/tail.c b/tail.c index ff77bde77..4fe92ba5e 100644 --- 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 b442e8b35..63c00c674 100644 --- a/usage.h +++ b/usage.h @@ -1166,7 +1166,7 @@ "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 @@ -1433,7 +1433,7 @@ "$ 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