Commonalize typical [b,]k,m suffix struct

function                                             old     new   delta
bkm_suffixes                                           -      32     +32
static.km_suffixes                                    24       -     -24
suffixes                                              32       -     -32
static.bkm                                            32       -     -32
head_tail_suffixes                                    32       -     -32
------------------------------------------------------------------------------
(add/remove: 2/6 grow/shrink: 0/0 up/down: 72/-160)           Total: -88 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-07-13 23:49:45 +02:00
parent 0dacb68e1a
commit c72b43c2f0
11 changed files with 22 additions and 58 deletions

View file

@ -23,17 +23,15 @@
#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.
@ -86,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;