[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: [PATCH 1/2] dd: move suffix struct to xatonum.c
From:       Ari Sundholm <ari () tuxera ! com>
Date:       2015-03-19 13:26:46
Message-ID: 1426771606.22694.1.camel () ari-macbook
[Download RAW message or body]

Any comments to this patch? It doesn't cause any bloat and allows for
sharing the struct among applets.

On Wed, 2015-03-04 at 18:46 +0200, Ari Sundholm wrote:
> From: Ari Sundholm <ari@tuxera.com>
> 
> This way it can be used by other applets without duplication.
> 
> Signed-off-by: Ari Sundholm <ari@tuxera.com>
> ---
>  coreutils/dd.c  | 31 ++++++-------------------------
>  include/libbb.h |  1 +
>  libbb/xatonum.c | 19 +++++++++++++++++++
>  3 files changed, 26 insertions(+), 25 deletions(-)
> 
> diff --git a/coreutils/dd.c b/coreutils/dd.c
> index 3024970..53a843c 100644
> --- a/coreutils/dd.c
> +++ b/coreutils/dd.c
> @@ -99,25 +99,6 @@ enum {
>  	ofd = STDOUT_FILENO,
>  };
>  
> -static const struct suffix_mult dd_suffixes[] = {
> -	{ "c", 1 },
> -	{ "w", 2 },
> -	{ "b", 512 },
> -	{ "kB", 1000 },
> -	{ "kD", 1000 },
> -	{ "k", 1024 },
> -	{ "K", 1024 },  /* compat with coreutils dd (it also accepts KB and KD, TODO?) */
> -	{ "MB", 1000000 },
> -	{ "MD", 1000000 },
> -	{ "M", 1024*1024 },
> -	{ "GB", 1000000000 },
> -	{ "GD", 1000000000 },
> -	{ "G", 1024*1024*1024 },
> -	/* "D" suffix for decimal is not in coreutils manpage, looks like it's deprecated */
> -	/* coreutils also understands TPEZY suffixes for tera- and so on, with B suffix for decimal */
> -	{ "", 0 }
> -};
> -
>  struct globals {
>  	off_t out_full, out_part, in_full, in_part;
>  #if ENABLE_FEATURE_DD_THIRD_STATUS_LINE
> @@ -326,11 +307,11 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
>  #if ENABLE_FEATURE_DD_IBS_OBS
>  		if (what == OP_ibs) {
>  			/* Must fit into positive ssize_t */
> -			ibs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, dd_suffixes);
> +			ibs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, cwbkMG_suffixes);
>  			/*continue;*/
>  		}
>  		if (what == OP_obs) {
> -			obs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, dd_suffixes);
> +			obs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, cwbkMG_suffixes);
>  			/*continue;*/
>  		}
>  		if (what == OP_conv) {
> @@ -356,22 +337,22 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
>  		}
>  #endif
>  		if (what == OP_bs) {
> -			ibs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, dd_suffixes);
> +			ibs = xatoul_range_sfx(val, 1, ((size_t)-1L)/2, cwbkMG_suffixes);
>  			obs = ibs;
>  			/*continue;*/
>  		}
>  		/* These can be large: */
>  		if (what == OP_count) {
>  			G.flags |= FLAG_COUNT;
> -			count = XATOU_SFX(val, dd_suffixes);
> +			count = XATOU_SFX(val, cwbkMG_suffixes);
>  			/*continue;*/
>  		}
>  		if (what == OP_seek) {
> -			seek = XATOU_SFX(val, dd_suffixes);
> +			seek = XATOU_SFX(val, cwbkMG_suffixes);
>  			/*continue;*/
>  		}
>  		if (what == OP_skip) {
> -			skip = XATOU_SFX(val, dd_suffixes);
> +			skip = XATOU_SFX(val, cwbkMG_suffixes);
>  			/*continue;*/
>  		}
>  		if (what == OP_if) {
> diff --git a/include/libbb.h b/include/libbb.h
> index be792d6..e4fcf7c 100644
> --- a/include/libbb.h
> +++ b/include/libbb.h
> @@ -861,6 +861,7 @@ struct suffix_mult {
>  };
>  extern const struct suffix_mult bkm_suffixes[];
>  #define km_suffixes (bkm_suffixes + 1)
> +extern const struct suffix_mult cwbkMG_suffixes[];
>  
>  #include "xatonum.h"
>  /* Specialized: */
> diff --git a/libbb/xatonum.c b/libbb/xatonum.c
> index 6f4e023..19b54fb 100644
> --- a/libbb/xatonum.c
> +++ b/libbb/xatonum.c
> @@ -75,3 +75,22 @@ const struct suffix_mult bkm_suffixes[] = {
>  	{ "m", 1024*1024 },
>  	{ "", 0 }
>  };
> +
> +const struct suffix_mult cwbkMG_suffixes[] = {
> +	{ "c", 1 },
> +	{ "w", 2 },
> +	{ "b", 512 },
> +	{ "kB", 1000 },
> +	{ "kD", 1000 },
> +	{ "k", 1024 },
> +	{ "K", 1024 },  /* compat with coreutils dd (it also accepts KB and KD, TODO?) */
> +	{ "MB", 1000000 },
> +	{ "MD", 1000000 },
> +	{ "M", 1024*1024 },
> +	{ "GB", 1000000000 },
> +	{ "GD", 1000000000 },
> +	{ "G", 1024*1024*1024 },
> +	/* "D" suffix for decimal is not in coreutils manpage, looks like it's deprecated */
> +	/* coreutils also understands TPEZY suffixes for tera- and so on, with B suffix for decimal */
> +	{ "", 0 }
> +};


_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic