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 <[email protected]>
> 
> This way it can be used by other applets without duplication.
> 
> Signed-off-by: Ari Sundholm <[email protected]>
> ---
>  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
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to