From 51ca7761a3579f3c3f7e771b39019e6e248a5171 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 16 Jul 2010 17:16:40 +0200 Subject: cttyhack: move build system bits into cttyhack.c, no code changes Signed-off-by: Denys Vlasenko --- include/applets.src.h | 1 - include/usage.src.h | 11 ----------- 2 files changed, 12 deletions(-) (limited to 'include') diff --git a/include/applets.src.h b/include/applets.src.h index 6ca0c3230..195598fee 100644 --- a/include/applets.src.h +++ b/include/applets.src.h @@ -104,7 +104,6 @@ IF_CPIO(APPLET(cpio, _BB_DIR_BIN, _BB_SUID_DROP)) IF_CROND(APPLET(crond, _BB_DIR_USR_SBIN, _BB_SUID_DROP)) IF_CRONTAB(APPLET(crontab, _BB_DIR_USR_BIN, _BB_SUID_REQUIRE)) IF_CRYPTPW(APPLET(cryptpw, _BB_DIR_USR_BIN, _BB_SUID_DROP)) -IF_CTTYHACK(APPLET(cttyhack, _BB_DIR_BIN, _BB_SUID_DROP)) IF_CUT(APPLET_NOEXEC(cut, cut, _BB_DIR_USR_BIN, _BB_SUID_DROP, cut)) IF_DATE(APPLET(date, _BB_DIR_BIN, _BB_SUID_DROP)) IF_DC(APPLET(dc, _BB_DIR_USR_BIN, _BB_SUID_DROP)) diff --git a/include/usage.src.h b/include/usage.src.h index 46d64c135..9b326eebb 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -678,17 +678,6 @@ INSERT "\n -S SALT" \ ) \ -#define cttyhack_trivial_usage \ - "PROG ARGS" -#define cttyhack_full_usage "\n\n" \ - "Give PROG a controlling tty if possible." \ - "\nExample for /etc/inittab (for busybox init):" \ - "\n ::respawn:/bin/cttyhack /bin/sh" \ - "\nGiving controlling tty to shell running with PID 1:" \ - "\n $ exec cttyhack sh" \ - "\nStarting interactive shell from boot shell script:" \ - "\n setsid cttyhack sh" \ - #define cut_trivial_usage \ "[OPTIONS] [FILE]..." #define cut_full_usage "\n\n" \ -- cgit v1.2.3-55-g6feb From 816ed971e4ce60564f7ecbdc016d268d8e936230 Mon Sep 17 00:00:00 2001 From: Jeremie Koenig Date: Thu, 27 May 2010 15:46:29 +0200 Subject: libbb.h: add device names for Hurd and FreeBSD Adapted from include.libbb.diff from the Debian kFreeBSD people: http://svn.debian.org/viewsvn/d-i/people/slackydeb/kfreebsd/busybox/1.14/debian Signed-off-by: Jeremie Koenig Signed-off-by: Denys Vlasenko --- include/libbb.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/libbb.h b/include/libbb.h index e2a8322b8..c043506b9 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1613,7 +1613,27 @@ extern const char bb_default_login_shell[]; /* "sh" */ #define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+6) -#if ENABLE_FEATURE_DEVFS +/* The following devices are the same on all systems. */ +#define CURRENT_TTY "/dev/tty" +#define DEV_CONSOLE "/dev/console" + +#if defined(__FreeBSD_kernel__) +# define CURRENT_VC CURRENT_TTY +# define VC_1 "/dev/ttyv0" +# define VC_2 "/dev/ttyv1" +# define VC_3 "/dev/ttyv2" +# define VC_4 "/dev/ttyv3" +# define VC_5 "/dev/ttyv4" +# define VC_FORMAT "/dev/ttyv%d" +#elif defined(__GNU__) +# define CURRENT_VC CURRENT_TTY +# define VC_1 "/dev/tty1" +# define VC_2 "/dev/tty2" +# define VC_3 "/dev/tty3" +# define VC_4 "/dev/tty4" +# define VC_5 "/dev/tty5" +# define VC_FORMAT "/dev/tty%d" +#elif ENABLE_FEATURE_DEVFS /* from now on, assume Linux naming */ # define CURRENT_VC "/dev/vc/0" # define VC_1 "/dev/vc/1" # define VC_2 "/dev/vc/2" @@ -1660,10 +1680,6 @@ extern const char bb_default_login_shell[]; # define FB_0 "/dev/fb0" #endif -/* The following devices are the same on devfs and non-devfs systems. */ -#define CURRENT_TTY "/dev/tty" -#define DEV_CONSOLE "/dev/console" - #define ARRAY_SIZE(x) ((unsigned)(sizeof(x) / sizeof((x)[0]))) -- cgit v1.2.3-55-g6feb From 7a07b0ee6a99a98ec1f144d5d06043fa0c03f451 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 29 Jul 2010 04:00:27 +0200 Subject: dc: make it use long longs for integer ops function old new delta print_base 176 238 +62 or 91 103 +12 eor 91 103 +12 and 91 103 +12 not 60 64 +4 mod 103 105 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 6/0 up/down: 104/0) Total: 104 bytes Signed-off-by: Denys Vlasenko --- include/usage.src.h | 22 ------------------ miscutils/dc.c | 65 +++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 51 insertions(+), 36 deletions(-) (limited to 'include') diff --git a/include/usage.src.h b/include/usage.src.h index 9b326eebb..0053a7c4b 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -736,28 +736,6 @@ INSERT "$ date\n" \ "Wed Apr 12 18:52:41 MDT 2000\n" -#define dc_trivial_usage \ - "expression..." -#define dc_full_usage "\n\n" \ - "Tiny RPN calculator. Operations:\n" \ - "+, add, -, sub, *, mul, /, div, %, mod, **, exp, and, or, not, eor,\n" \ - "p - print top of the stack (without altering the stack),\n" \ - "f - print entire stack, o - pop the value and set output radix\n" \ - "(value must be 10 or 16).\n" \ - "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16\n" \ - -#define dc_example_usage \ - "$ dc 2 2 + p\n" \ - "4\n" \ - "$ dc 8 8 \\* 2 2 + / p\n" \ - "16\n" \ - "$ dc 0 1 and p\n" \ - "0\n" \ - "$ dc 0 1 or p\n" \ - "1\n" \ - "$ echo 72 9 div 8 mul p | dc\n" \ - "64\n" - #define dd_trivial_usage \ "[if=FILE] [of=FILE] " IF_FEATURE_DD_IBS_OBS("[ibs=N] [obs=N] ") "[bs=N] [count=N] [skip=N]\n" \ " [seek=N]" IF_FEATURE_DD_IBS_OBS(" [conv=notrunc|noerror|sync|fsync]") diff --git a/miscutils/dc.c b/miscutils/dc.c index cb4b1e9b1..ebf357281 100644 --- a/miscutils/dc.c +++ b/miscutils/dc.c @@ -6,7 +6,39 @@ #include "libbb.h" #include -/* Tiny RPN calculator, because "expr" didn't give me bitwise operations. */ +//usage:#define dc_trivial_usage +//usage: "expression..." +//usage: +//usage:#define dc_full_usage "\n\n" +//usage: "Tiny RPN calculator. Operations:\n" +//usage: "+, add, -, sub, *, mul, /, div, %, mod, **, exp, and, or, not, eor,\n" +//usage: "p - print top of the stack (without popping),\n" +//usage: "f - print entire stack, o - pop the value and set output radix\n" +//usage: "(value must be 10, 16, 8 or 2).\n" +//usage: "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16\n" +//usage: +//usage:#define dc_example_usage +//usage: "$ dc 2 2 + p\n" +//usage: "4\n" +//usage: "$ dc 8 8 \\* 2 2 + / p\n" +//usage: "16\n" +//usage: "$ dc 0 1 and p\n" +//usage: "0\n" +//usage: "$ dc 0 1 or p\n" +//usage: "1\n" +//usage: "$ echo 72 9 div 8 mul p | dc\n" +//usage: "64\n" + +#if 0 +typedef unsigned data_t; +#define DATA_FMT "" +#elif 0 +typedef unsigned long data_t; +#define DATA_FMT "l" +#else +typedef unsigned long long data_t; +#define DATA_FMT "ll" +#endif struct globals { @@ -73,29 +105,29 @@ static void divide(void) static void mod(void) { - unsigned d = pop(); + data_t d = pop(); - push((unsigned) pop() % d); + push((data_t) pop() % d); } static void and(void) { - push((unsigned) pop() & (unsigned) pop()); + push((data_t) pop() & (data_t) pop()); } static void or(void) { - push((unsigned) pop() | (unsigned) pop()); + push((data_t) pop() | (data_t) pop()); } static void eor(void) { - push((unsigned) pop() ^ (unsigned) pop()); + push((data_t) pop() ^ (data_t) pop()); } static void not(void) { - push(~(unsigned) pop()); + push(~(data_t) pop()); } static void set_output_base(void) @@ -112,25 +144,30 @@ static void set_output_base(void) static void print_base(double print) { - unsigned x, i; + data_t x, i; + x = (data_t) print; if (base == 10) { - printf("%g\n", print); + if (x == print) /* exactly representable as unsigned integer */ + printf("%"DATA_FMT"u\n", x); + else + printf("%g\n", print); return; } - x = (unsigned)print; switch (base) { case 16: - printf("%x\n", x); + printf("%"DATA_FMT"x\n", x); break; case 8: - printf("%o\n", x); + printf("%"DATA_FMT"o\n", x); break; default: /* base 2 */ - i = (unsigned)INT_MAX + 1; + i = MAXINT(data_t) - (MAXINT(data_t) >> 1); + /* i is 100000...00000 */ do { - if (x & i) break; + if (x & i) + break; i >>= 1; } while (i > 1); do { -- cgit v1.2.3-55-g6feb