- move additional fancy options not mandated by SUSv3 into a FANCY option
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 28 Mar 2007 16:48:40 +0000 (16:48 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 28 Mar 2007 16:48:40 +0000 (16:48 -0000)
coreutils/Config.in
coreutils/split.c
scripts/defconfig

index baac799db0666ca76a6ac603106f2c5b1e52a9a2..be5e9527bb97d7ed33c7aa87580074473fc101d9 100644 (file)
@@ -541,8 +541,15 @@ config SPLIT
        default n
        help
          split a file into pieces.
-         
-         http://www.opengroup.org/onlinepubs/007904975/utilities/split.html
+
+config FEATURE_SPLIT_FANCY
+       bool "fancy extensions"
+       default n
+       depends on SPLIT
+       help
+         Add support for features not required by SUSv3.
+         Supports additional suffixes 'b' for 512 bytes,
+         'g' for 1GiB for the -b option.
 
 config STAT
        bool "stat"
index 07eb97e0cc1c1d223b26de48e0487865e4e238b9..10035e9ab00b2890f099f866758042690c001739 100644 (file)
 #include "busybox.h"
 
 static const struct suffix_mult split_suffices[] = {
+#if ENABLE_FEATURE_SPLIT_FANCY
        { "b", 512 },
+#endif
        { "k", 1024 },
        { "m", 1024*1024 },
+#if ENABLE_FEATURE_SPLIT_FANCY
        { "g", 1024*1024*1024 },
+#endif
        { NULL, 0 }
 };
 
@@ -58,10 +62,10 @@ int split_main(int argc, char **argv)
        char *pfx;
        char *count_p;
        const char *sfx;
-       unsigned long cnt = 1000;
-       unsigned long remaining = 0;
+       off_t cnt = 1000;
+       off_t remaining = 0;
        unsigned opt;
-       int bytes_read, to_write;
+       ssize_t bytes_read, to_write;
        char *src;
 
        opt_complementary = "?2";
@@ -73,8 +77,9 @@ int split_main(int argc, char **argv)
                cnt = xatoul_sfx(count_p, split_suffices);
        if (opt & SPLIT_OPT_a)
                suffix_len = xatou(sfx);
-       argv += optind;
        sfx = "x";
+
+       argv += optind;
        if (argv[0]) {
                if (argv[1])
                        sfx = argv[1];
@@ -104,7 +109,7 @@ int split_main(int argc, char **argv)
                do {
                        if (!remaining) {
                                if (!pfx)
-                                       bb_error_msg_and_die("suffices exhausted");
+                                       bb_error_msg_and_die("suffixes exhausted");
                                xmove_fd(xopen(pfx, O_WRONLY | O_CREAT | O_TRUNC), 1);
                                pfx = next_file(pfx, suffix_len);
                                remaining = cnt;
index 6ca10b63d07d1ccebf432d733d607c2adeb63e55..5846b0cf747d49789ad3ad326ae04593d8dccaa6 100644 (file)
@@ -194,6 +194,7 @@ CONFIG_SHA1SUM=y
 CONFIG_SLEEP=y
 CONFIG_FEATURE_FANCY_SLEEP=y
 CONFIG_SPLIT=y
+# CONFIG_FEATURE_SPLIT_FANCY is not set
 CONFIG_SORT=y
 CONFIG_FEATURE_SORT_BIG=y
 CONFIG_STAT=y
@@ -272,6 +273,7 @@ CONFIG_READLINK=y
 CONFIG_FEATURE_READLINK_FOLLOW=y
 CONFIG_RUN_PARTS=y
 CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
 CONFIG_START_STOP_DAEMON=y
 CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
 CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y