[git commit] bc: rename config options

Denys Vlasenko vda.linux at googlemail.com
Fri Dec 28 12:32:04 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=1476760600eff7c51c78b0ba02f1b08558178289
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 miscutils/bc.c        | 63 +++++++++++++++++++++------------------------------
 testsuite/dc.tests    |  3 +++
 testsuite/head.tests  |  2 ++
 testsuite/unzip.tests |  4 ++--
 4 files changed, 33 insertions(+), 39 deletions(-)

diff --git a/miscutils/bc.c b/miscutils/bc.c
index 7179811fe..6463817bb 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -27,19 +27,6 @@
 //config:	     easier.
 //config:	  5) "read()" accepts expressions, not only numeric literals.
 //config:
-//config:	Options:
-//config:	  -i  --interactive  force interactive mode
-//config:	  -q  --quiet        don't print version and copyright
-//config:	  -s  --standard     error if any non-POSIX extensions are used
-//config:	  -w  --warn         warn if any non-POSIX extensions are used
-//config:	  -l  --mathlib      use predefined math routines:
-//config:		s(expr) sine in radians
-//config:		c(expr) cosine in radians
-//config:		a(expr) arctangent, returning radians
-//config:		l(expr) natural log
-//config:		e(expr) raises e to the power of expr
-//config:		j(n, x) Bessel function of integer order n of x
-//config:
 //config:config DC
 //config:	bool "dc (36 kb)"
 //config:	default y
@@ -60,31 +47,32 @@
 //config:	     whitespace where a register should be, it skips the whitespace.
 //config:	     If the character following is not a lowercase letter, an error
 //config:	     is issued. Otherwise, the register name is parsed by the
-//config:	     following regex:
-//config:		[a-z][a-z0-9_]*
+//config:	     following regex: [a-z][a-z0-9_]*
 //config:	     This generally means that register names will be surrounded by
 //config:	     whitespace. Examples:
 //config:		l idx s temp L index S temp2 < do_thing
 //config:	     Also note that, like the FreeBSD dc, extended registers are not
 //config:	     allowed unless the "-x" option is given.
 //config:
-//config:config FEATURE_DC_SMALL
-//config:	bool "Minimal dc implementation (4.2 kb), not using bc code base"
+//config:if BC || DC  # for menuconfig indenting
+//config:
+//config:config FEATURE_DC_BIG
+//config:	bool "Use bc code base for dc (larger, more features)"
 //config:	depends on DC && !BC
-//config:	default n
+//config:	default y
 //config:
 //config:config FEATURE_DC_LIBM
 //config:	bool "Enable power and exp functions (requires libm)"
 //config:	default y
-//config:	depends on FEATURE_DC_SMALL
+//config:	depends on DC && !BC && !FEATURE_DC_BIG
 //config:	help
 //config:	Enable power and exp functions.
 //config:	NOTE: This will require libm to be present for linking.
 //config:
-//config:config FEATURE_BC_SIGNALS
+//config:config FEATURE_BC_INTERACTIVE
 //config:	bool "Interactive mode (+4kb)"
 //config:	default y
-//config:	depends on (BC || DC) && !FEATURE_DC_SMALL
+//config:	depends on BC || (DC && FEATURE_DC_BIG)
 //config:	help
 //config:	Enable interactive mode: when started on a tty,
 //config:	^C interrupts execution and returns to command line,
@@ -99,9 +87,9 @@
 //config:config FEATURE_BC_LONG_OPTIONS
 //config:	bool "Enable bc/dc long options"
 //config:	default y
-//config:	depends on (BC || DC) && !FEATURE_DC_SMALL
-//config:	help
-//config:	Enable long options for bc and dc.
+//config:	depends on BC || (DC && FEATURE_DC_BIG)
+//config:
+//config:endif
 
 //applet:IF_BC(APPLET(bc, BB_DIR_USR_BIN, BB_SUID_DROP))
 //applet:IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -137,11 +125,11 @@
 //usage:       "obase = A\n"
 //usage:
 //usage:#define dc_trivial_usage
-//usage:       IF_NOT_FEATURE_DC_SMALL("[-x] ")"[-eSCRIPT]... [-fFILE]... [FILE]..."
+//usage:       IF_FEATURE_DC_BIG("[-x] ")"[-eSCRIPT]... [-fFILE]... [FILE]..."
 //usage:
 //usage:#define dc_full_usage "\n"
 //usage:     "\nTiny RPN calculator. Operations:"
-//usage:     "\n+, -, *, /, %, ~, ^," IF_NOT_FEATURE_DC_SMALL(" |,")
+//usage:     "\n+, -, *, /, %, ~, ^," IF_FEATURE_DC_BIG(" |,")
 //usage:     "\np - print top of the stack without popping"
 //usage:     "\nf - print entire stack"
 //usage:     "\nk - pop the value and set the precision"
@@ -164,7 +152,7 @@
 #include "libbb.h"
 #include "common_bufsiz.h"
 
-#if ENABLE_FEATURE_DC_SMALL
+#if !ENABLE_BC && !ENABLE_FEATURE_DC_BIG
 # include "dc.c"
 #else
 
@@ -765,7 +753,7 @@ struct globals {
 
 	BcVec input_buffer;
 
-	IF_FEATURE_BC_SIGNALS(smallint ttyin;)
+	IF_FEATURE_BC_INTERACTIVE(smallint ttyin;)
 	IF_FEATURE_CLEAN_UP(smallint exiting;)
 
 	BcProgram prog;
@@ -788,7 +776,7 @@ struct globals {
 #define G_posix (ENABLE_BC && (option_mask32 & BC_FLAG_S))
 #define G_warn  (ENABLE_BC && (option_mask32 & BC_FLAG_W))
 #define G_exreg (ENABLE_DC && (option_mask32 & DC_FLAG_X))
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 # define G_interrupt bb_got_signal
 # define G_ttyin     G.ttyin
 #else
@@ -876,7 +864,7 @@ struct globals {
 // To make code more readable, each such function has a "z"
 // ("always returning zero") prefix, i.e. zbc_foo or zdc_foo.
 //
-#if ENABLE_FEATURE_BC_SIGNALS || ENABLE_FEATURE_CLEAN_UP
+#if ENABLE_FEATURE_BC_INTERACTIVE || ENABLE_FEATURE_CLEAN_UP
 # define ERRORS_ARE_FATAL 0
 # define ERRORFUNC        /*nothing*/
 # define IF_ERROR_RETURN_POSSIBLE(a)  a
@@ -906,7 +894,7 @@ static void fflush_and_check(void)
 #if ENABLE_FEATURE_CLEAN_UP
 #define QUIT_OR_RETURN_TO_MAIN \
 do { \
-	IF_FEATURE_BC_SIGNALS(G_ttyin = 0;) /* do not loop in main loop anymore */ \
+	IF_FEATURE_BC_INTERACTIVE(G_ttyin = 0;) /* do not loop in main loop anymore */ \
 	G_exiting = 1; \
 	return BC_STATUS_FAILURE; \
 } while (0)
@@ -1834,7 +1822,7 @@ static FAST_FUNC BC_STATUS zbc_num_k(BcNum *restrict a, BcNum *restrict b,
 			c->num[i + j] += (BcDig) carry;
 			len = BC_MAX(len, i + j + !!carry);
 
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 			// a=2^1000000
 			// a*a <- without check below, this will not be interruptible
 			if (G_interrupt) return BC_STATUS_FAILURE;
@@ -2001,7 +1989,7 @@ static FAST_FUNC BC_STATUS zbc_num_d(BcNum *a, BcNum *b, BcNum *restrict c, size
 		for (q = 0; n[len] != 0 || bc_num_compare(n, b->num, len) >= 0; ++q)
 			bc_num_subArrays(n, b->num, len);
 		c->num[i] = q;
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 		// a=2^100000
 		// scale=40000
 		// 1/a <- without check below, this will not be interruptible
@@ -2486,7 +2474,7 @@ static void xc_read_line(BcVec *vec, FILE *fp)
 	bc_vec_pop_all(vec);
 	fflush_and_check();
 
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 	if (G_interrupt) { // ^C was pressed
  intr:
 		if (fp != stdin) {
@@ -2533,7 +2521,7 @@ static void xc_read_line(BcVec *vec, FILE *fp)
 		bool bad_chars = 0;
 
 		do {
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 			if (G_interrupt) {
 				// ^C was pressed: ignore entire line, get another one
 				bc_vec_pop_all(vec);
@@ -7223,7 +7211,7 @@ static int xc_vm_init(const char *env_len)
 //TODO: in GNU bc, the check is (isatty(0) && isatty(1)),
 //-i option unconditionally enables this regardless of isatty():
 	if (isatty(0)) {
-#if ENABLE_FEATURE_BC_SIGNALS
+#if ENABLE_FEATURE_BC_INTERACTIVE
 		G_ttyin = 1;
 		// With SA_RESTART, most system calls will restart
 		// (IOW: they won't fail with EINTR).
@@ -7342,4 +7330,5 @@ int dc_main(int argc UNUSED_PARAM, char **argv)
 }
 #endif
 
-#endif // not DC_SMALL
+#endif // DC_BIG
+
diff --git a/testsuite/dc.tests b/testsuite/dc.tests
index 2756608f7..29b413cad 100755
--- a/testsuite/dc.tests
+++ b/testsuite/dc.tests
@@ -41,6 +41,9 @@ testing "dc complex without spaces (multiple args)" \
 	"16\n" \
 	"" ""
 
+optional FEATURE_DC_BIG
+# All tests below depend on FEATURE_DC_BIG
+
 testing "dc '>a' (conditional execute string) 1" \
 	"dc" \
 	"1\n9\n" \
diff --git a/testsuite/head.tests b/testsuite/head.tests
index 50660d267..97bf889d8 100755
--- a/testsuite/head.tests
+++ b/testsuite/head.tests
@@ -31,10 +31,12 @@ testing "head -n <positive number>" \
 	"line 1\nline 2\n" \
 	"" ""
 
+optional FEATURE_FANCY_HEAD
 testing "head -n <negative number>" \
 	"head -n -9 head.input" \
 	"line 1\nline 2\nline 3\n" \
 	"" ""
+SKIP=
 
 rm head.input
 
diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
index af53de9df..e198dfc4b 100755
--- a/testsuite/unzip.tests
+++ b/testsuite/unzip.tests
@@ -31,10 +31,10 @@ rmdir foo
 rm foo.zip
 
 # File containing some damaged encrypted stream
-optional FEATURE_UNZIP_CDF
+optional FEATURE_UNZIP_CDF CONFIG_UNICODE_SUPPORT
 testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
 "Archive:  bad.zip
-  inflating: ]3j½r«IK-%Ix
+  inflating: ]3j½r«I??K-%Ix
 unzip: corrupted data
 unzip: inflate error
 1


More information about the busybox-cvs mailing list