randomconfig fixes
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 5 Jul 2010 19:37:12 +0000 (21:37 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 5 Jul 2010 19:37:12 +0000 (21:37 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
14 files changed:
applets/applets.c
archival/bbunzip.c
archival/libunarchive/Kbuild.src
libbb/appletlib.c
shell/hush.c
testsuite/ash.tests
testsuite/cal.tests
testsuite/cpio.tests
testsuite/date/date-works-1
testsuite/expand.tests
testsuite/fold.tests
testsuite/ls.tests
testsuite/mount.tests
testsuite/unexpand.tests

index 133a21575c3c735d5ced03972dd60002c04b3a60..6a39962725f64300b392a5b1065713d9e0712ff3 100644 (file)
@@ -6,8 +6,6 @@
  *
  * Licensed under GPLv2, see file License in this tarball for details.
  */
-
-#include <assert.h>
 #include "busybox.h"
 
 #if ENABLE_BUILD_LIBBUSYBOX
index 832a7bbf3129194236d1787d3cf262567d87c9d3..c1259ac462b0569b3d27611813a948bab1fe295e 100644 (file)
@@ -387,7 +387,7 @@ IF_DESKTOP(long long) int FAST_FUNC unpack_unxz(unpack_info_t *info UNUSED_PARAM
 int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int unxz_main(int argc UNUSED_PARAM, char **argv)
 {
-       int opts = getopt32(argv, "cfvdt");
+       IF_XZ(int opts =) getopt32(argv, "cfvdt");
 # if ENABLE_XZ
        /* xz without -d or -t? */
        if (applet_name[2] == '\0' && !(opts & (OPT_DECOMPRESS|OPT_TEST)))
index 6ad1d7a6574bba3790a0b72f6eed4714c65d507b..a8549570efb91bc9049d1935bb13357b4337625a 100644 (file)
@@ -38,6 +38,7 @@ INSERT
 lib-$(CONFIG_AR)                        += get_header_ar.o unpack_ar_archive.o
 lib-$(CONFIG_BUNZIP2)                   += decompress_bunzip2.o
 lib-$(CONFIG_UNLZMA)                    += decompress_unlzma.o
+lib-$(CONFIG_UNXZ)                      += decompress_unxz.o
 lib-$(CONFIG_CPIO)                      += get_header_cpio.o
 lib-$(CONFIG_DPKG)                      += $(DPKG_FILES)
 lib-$(CONFIG_DPKG_DEB)                  += $(DPKG_FILES)
index 6f058bcc80f579990207dc8108354f1082780576..4924a97c14d620304fefb73020f69c74c32ada85 100644 (file)
@@ -195,7 +195,11 @@ void lbb_prepare(const char *applet
 #if ENABLE_FEATURE_INDIVIDUAL
        /* Redundant for busybox (run_applet_and_exit covers that case)
         * but needed for "individual applet" mode */
-       if (argv[1] && !argv[2] && strcmp(argv[1], "--help") == 0) {
+       if (argv[1]
+        && !argv[2]
+        && strcmp(argv[1], "--help") == 0
+        && strncmp(applet, "busybox", 7) != 0
+       ) {
                /* Special case. POSIX says "test --help"
                 * should be no different from e.g. "test --foo".  */
                if (!ENABLE_TEST || strcmp(applet_name, "test") != 0)
index 831443e2e2b88b6e37fd4f5cefbb9a28552147c7..31ca22a2edff2cb17c0061bec5a260e24f93cd47 100644 (file)
  * and therefore waitpid will return the same result as last time)
  */
 #define ENABLE_HUSH_FAST 0
+/* TODO: implement simplified code for users which do not need ${var%...} ops
+ * So far ${var%...} ops are always enabled:
+ */
+#define ENABLE_HUSH_DOLLAR_OPS 1
 
 
 #if BUILD_AS_NOMMU
@@ -2681,7 +2685,7 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg, char
                                                }
                                        }
                                } else if (exp_op == ':') {
-#if ENABLE_HUSH_BASH_COMPAT
+#if ENABLE_HUSH_BASH_COMPAT && ENABLE_SH_MATH_SUPPORT
        /* It's ${var:N[:M]} bashism.
         * Note that in encoded form it has TWO parts:
         * var:N<SPECIAL_VAR_SYMBOL>M<SPECIAL_VAR_SYMBOL>
@@ -5820,7 +5824,7 @@ static int parse_group(o_string *dest, struct parse_context *ctx,
        /* command remains "open", available for possible redirects */
 }
 
-#if ENABLE_HUSH_TICK || ENABLE_SH_MATH_SUPPORT
+#if ENABLE_HUSH_TICK || ENABLE_SH_MATH_SUPPORT || ENABLE_HUSH_DOLLAR_OPS
 /* Subroutines for copying $(...) and `...` things */
 static void add_till_backquote(o_string *dest, struct in_str *input);
 /* '...' */
@@ -5921,9 +5925,9 @@ static int add_till_closing_bracket(o_string *dest, struct in_str *input, unsign
 {
        int ch;
        char dbl = end_ch & DOUBLE_CLOSE_CHAR_FLAG;
-#if ENABLE_HUSH_BASH_COMPAT
+# if ENABLE_HUSH_BASH_COMPAT
        char end_char2 = end_ch >> 8;
-#endif
+# endif
        end_ch &= (DOUBLE_CLOSE_CHAR_FLAG - 1);
 
        while (1) {
@@ -5976,7 +5980,7 @@ static int add_till_closing_bracket(o_string *dest, struct in_str *input, unsign
        }
        return ch;
 }
-#endif /* ENABLE_HUSH_TICK || ENABLE_SH_MATH_SUPPORT */
+#endif /* ENABLE_HUSH_TICK || ENABLE_SH_MATH_SUPPORT || ENABLE_HUSH_DOLLAR_OPS */
 
 /* Return code: 0 for OK, 1 for syntax error */
 #if BB_MMU
@@ -6082,7 +6086,11 @@ static int parse_dollar(o_string *as_string,
  again:
                                if (!BB_MMU)
                                        pos = dest->length;
+#if ENABLE_HUSH_DOLLAR_OPS
                                last_ch = add_till_closing_bracket(dest, input, end_ch);
+#else
+#error Simple code to only allow ${var} is not implemented
+#endif
                                if (as_string) {
                                        o_addstr(as_string, dest->data + pos);
                                        o_addchr(as_string, last_ch);
index dd626e6d13d0a57b4f731b016f6ebaf7cea6f525..2eeb746e45730c25d04e84ca6b2202e94cc0686f 100755 (executable)
@@ -6,7 +6,6 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
-
 test -f "$bindir/.config" && . "$bindir/.config"
 
 test x"CONFIG_SCRIPT" = x"y" || exit 0
index 30985688b895c01b0f4050294f7b0a25bf61cee6..db693ee598396866df903dd90d94f762c46dedad 100755 (executable)
@@ -3,7 +3,6 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
-
 test -f "$bindir/.config" && . "$bindir/.config"
 
 # testing "test name" "command" "expected result" "file input" "stdin"
index 5b397b01cfcf521d281afd856e85ee1c2eff25a8..7aee774a1d7517d76c674faca302d42bc5a79ebf 100755 (executable)
@@ -99,7 +99,7 @@ SKIP=
 
 # chown on a link was affecting file, dropping its suid/sgid bits
 rm -rf cpio.testdir
-optional FEATURE_CPIO_O
+optional FEATURE_CPIO_O FEATURE_STAT_FORMAT
 mkdir cpio.testdir
 touch cpio.testdir/file
 chmod 6755 cpio.testdir/file  # sets suid/sgid bits
index 1b3e47ab0fbe3cd3ffb1da30638d508066f7c52d..e745d3841d4a84e8424151a305ccae9fc9b68e55 100644 (file)
@@ -1,3 +1,5 @@
+unset LANG
+
 dt=`busybox date -d 1:2 +%T`
 test x"$dt" = x"01:02:00"
 
index 357a9ad6b1bda4f5bc6015562f6dc95095017016..2d92344d4b230c69a4b02819cc73d249524e4fe7 100755 (executable)
@@ -3,6 +3,7 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
+test -f "$bindir/.config" && . "$bindir/.config"
 
 # testing "test name" "options" "expected result" "file input" "stdin"
 
@@ -12,13 +13,13 @@ testing "expand" \
        "" \
        "\t12345678\t12345678\n"
 
-optional UNICODE_SUPPORT
+test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
+&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
+&& test "$CONFIG_LAST_SUPPORTED_WCHAR" -gt "916" \
 testing "expand with unicode characher 0x394" \
        "expand" \
        "Δ       12345ΔΔΔ        12345678\n" \
        "" \
        "Δ\t12345ΔΔΔ\t12345678\n"
-SKIP=
-
 
 exit $FAILCOUNT
index 0197d024d8192ac0920b51fa9b3a26b0f2a0c85f..e5700cc2b894b9492594f9b5678f2dfa1b49fed9 100755 (executable)
@@ -3,6 +3,7 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
+test -f "$bindir/.config" && . "$bindir/.config"
 
 # testing "test name" "options" "expected result" "file input" "stdin"
 
@@ -28,9 +29,10 @@ be preserved
 is here:>\0< - they must be preserved
 " \
 
-optional UNICODE_SUPPORT
 # The text was taken from English and Ukrainian wikipedia pages
-testing "fold -sw66 with unicode input" "fold -sw66" \
+test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
+&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
+&& testing "fold -sw66 with unicode input" "fold -sw66" \
        "\
 The Andromeda Galaxy (pronounced /ænˈdrɒmədə/, also known as \n\
 Messier 31, M31, or NGC224; often referred to as the Great \n\
@@ -56,6 +58,5 @@ Way.
 спіральна галактика, що знаходиться на відстані приблизно у 2,5 \
 мільйони світлових років від нашої планети у сузір'ї Андромеди. \
 На початку ХХІ ст. в центрі галактики виявлено чорну дірку."
-SKIP=
 
 exit $FAILCOUNT
index 0680762fce1c9debaec168c340658033ab02f879..dc842123d0527682800ba5c280493a95154cabc7 100755 (executable)
@@ -3,10 +3,9 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
-
 test -f "$bindir/.config" && . "$bindir/.config"
 
-rm -rf ls.testdir >/dev/null
+rm -rf ls.testdir 2>/dev/null
 mkdir ls.testdir || exit 1
 
 # testing "test name" "command" "expected result" "file input" "stdin"
@@ -15,9 +14,10 @@ mkdir ls.testdir || exit 1
 # I suspect we might fail to skip exactly correct number of bytes
 # over broked unicode sequences.
 test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
-&& test x"$CONFIG_LOCALE_SUPPORT" != x"y" \
+&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
 && test x"$CONFIG_SUBST_WCHAR" = x"63" \
 && test x"$CONFIG_LAST_SUPPORTED_WCHAR" = x"767" \
+&& test x"$CONFIG_FEATURE_LS_SORTFILES" = x"y" \
 && testing "ls unicode test with codepoints limited to 767" \
 "(cd ls.testdir && sh ../ls.mk_uni_tests) && ls -1 ls.testdir" \
 '0001_1__Some_correct_UTF-8_text___________________________________________|
@@ -134,7 +134,7 @@ test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
 
 # Currently fails on "0080_4.2.2__U-000007FF_=_e0_9f_bf" line
 test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
-&& test x"$CONFIG_LOCALE_SUPPORT" != x"y" \
+&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
 && test x"$CONFIG_SUBST_WCHAR" = x"63" \
 && test x"$CONFIG_LAST_SUPPORTED_WCHAR" = x"0" \
 && testing "ls unicode test with unlimited codepoints" \
index 3c7405fbd531525a0f5e40831894366d0f56dd9c..ce1a6006b3a6a0083db7d25d5637738d98648b8f 100755 (executable)
@@ -3,7 +3,6 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
-
 test -f "$bindir/.config" && . "$bindir/.config"
 
 test "`id -u`" = 0 || {
index a48e3214e9703ddfb8744ede21964455d7dcfe67..0727884f7f93ae91d5e2d8b731d48418e7c49e0e 100755 (executable)
@@ -3,6 +3,7 @@
 # Licensed under GPL v2, see file LICENSE for details.
 
 . ./testing.sh
+test -f "$bindir/.config" && . "$bindir/.config"
 
 # testing "test name" "options" "expected result" "file input" "stdin"
 
@@ -30,9 +31,10 @@ testing "unexpand case 7" "unexpand" \
 testing "unexpand case 8" "unexpand" \
        "a b\n" "" "a b\n" \
 
-optional UNICODE_SUPPORT
+test x"$CONFIG_UNICODE_SUPPORT" = x"y" \
+&& test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \
+&& test "$CONFIG_LAST_SUPPORTED_WCHAR" -gt "916" \
 testing "unexpand with unicode characher 0x394" "unexpand" \
        "1ΔΔΔ5\t99999\n" "" "1ΔΔΔ5   99999\n"
-SKIP=
 
 exit $FAILCOUNT