dd: move suffix struct to xatonum.c

This way it can be used by other applets without duplication.

Signed-off-by: Ari Sundholm <ari@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
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 @@
 	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 @@
 #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 @@
 		}
 #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 c97df60..9550c05 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -862,6 +862,7 @@
 };
 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 @@
 	{ "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 }
+};