X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=coreutils%2Fsplit.c;h=1e1673efbe2c4b9fa51611e13c25752488ad90c4;hb=d1ed3e68b8080161642cc106099c0a17ac7892e6;hp=db5a1727a501ef9f68c039d51547887d49f6e68c;hpb=7ff6836db383d74627b7e7a1bc222b4a80d3ce55;p=oweals%2Fbusybox.git diff --git a/coreutils/split.c b/coreutils/split.c index db5a1727a..1e1673efb 100644 --- a/coreutils/split.c +++ b/coreutils/split.c @@ -9,19 +9,29 @@ * SUSv3 requirements: * http://www.opengroup.org/onlinepubs/009695399/utilities/split.html */ + +//usage:#define split_trivial_usage +//usage: "[OPTIONS] [INPUT [PREFIX]]" +//usage:#define split_full_usage "\n\n" +//usage: " -b N[k|m] Split by N (kilo|mega)bytes" +//usage: "\n -l N Split by N lines" +//usage: "\n -a N Use N letters as suffix" +//usage: +//usage:#define split_example_usage +//usage: "$ split TODO foo\n" +//usage: "$ cat TODO | split -a 2 -l 2 TODO_\n" + #include "libbb.h" -static const struct suffix_mult split_suffices[] = { #if ENABLE_FEATURE_SPLIT_FANCY +static const struct suffix_mult split_suffixes[] = { { "b", 512 }, -#endif { "k", 1024 }, { "m", 1024*1024 }, -#if ENABLE_FEATURE_SPLIT_FANCY { "g", 1024*1024*1024 }, -#endif { "", 0 } }; +#endif /* Increment the suffix part of the filename. * Returns NULL if we are out of filenames. @@ -32,7 +42,7 @@ static char *next_file(char *old, unsigned suffix_len) unsigned i = 1; char *curr; - do { + while (1) { curr = old + end - i; if (*curr < 'z') { *curr += 1; @@ -43,7 +53,7 @@ static char *next_file(char *old, unsigned suffix_len) return NULL; } *curr = 'a'; - } while (1); + } return old; } @@ -74,7 +84,10 @@ int split_main(int argc UNUSED_PARAM, char **argv) if (opt & SPLIT_OPT_l) cnt = XATOOFF(count_p); if (opt & SPLIT_OPT_b) // FIXME: also needs XATOOFF - cnt = xatoull_sfx(count_p, split_suffices); + cnt = xatoull_sfx(count_p, + IF_FEATURE_SPLIT_FANCY(split_suffixes) + IF_NOT_FEATURE_SPLIT_FANCY(km_suffixes) + ); sfx = "x"; argv += optind;