]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_io: refactor numlen into a library function
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 21 Jun 2017 22:14:29 +0000 (17:14 -0500)
committerEric Sandeen <sandeen@redhat.com>
Wed, 21 Jun 2017 22:14:29 +0000 (17:14 -0500)
Refactor the competing numlen implementations into a single library function.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
include/input.h
io/bmap.c
io/fiemap.c
libxcmd/input.c

index 221678e055ef43a40e0f0ba990a720aadd0cd131..82cd2f400402b6e6b588ef48a293be92b6da34a4 100644 (file)
@@ -28,6 +28,7 @@ extern char   **breakline(char *input, int *count);
 extern void    doneline(char *input, char **vec);
 extern char    *fetchline(void);
 
+extern size_t numlen(uint64_t val, size_t base);
 extern long long cvtnum(size_t blocksize, size_t sectorsize, char *s);
 extern void    cvtstr(double value, char *str, size_t sz);
 extern unsigned long cvttime(char *s);
index 233324441fe2ab1353469ac80be1e3a8423f09af..2e4ff7b2343219028a218a4e6bf22f5a12573139 100644 (file)
--- a/io/bmap.c
+++ b/io/bmap.c
@@ -18,6 +18,7 @@
 
 #include "platform_defs.h"
 #include "command.h"
+#include "input.h"
 #include "init.h"
 #include "io.h"
 
@@ -53,18 +54,6 @@ bmap_help(void)
 "\n"));
 }
 
-static int
-numlen(
-       off64_t val)
-{
-       off64_t tmp;
-       int     len;
-
-       for (len = 0, tmp = val; tmp > 0; tmp = tmp/10)
-               len++;
-       return (len == 0 ? 1 : len);
-}
-
 int
 bmap_f(
        int                     argc,
@@ -323,7 +312,7 @@ bmap_f(
                        if (map[i + 1].bmv_block == -1) {
                                foff_w = max(foff_w, strlen(rbuf));
                                tot_w = max(tot_w,
-                                       numlen(map[i+1].bmv_length));
+                                       numlen(map[i+1].bmv_length, 10));
                        } else {
                                snprintf(bbuf, sizeof(bbuf), "%lld..%lld",
                                        (long long) map[i + 1].bmv_block,
@@ -344,10 +333,10 @@ bmap_f(
                                        aoff_w = 0;
                                foff_w = max(foff_w, strlen(rbuf));
                                tot_w = max(tot_w,
-                                       numlen(map[i+1].bmv_length));
+                                       numlen(map[i+1].bmv_length, 10));
                        }
                }
-               agno_w = is_rt ? 0 : max(MINAG_WIDTH, numlen(fsgeo.agcount));
+               agno_w = is_rt ? 0 : max(MINAG_WIDTH, numlen(fsgeo.agcount, 10));
                printf("%4s: %-*s %-*s %*s %-*s %*s%s\n",
                        _("EXT"),
                        foff_w, _("FILE-OFFSET"),
index bcbae49fe004f6bd5d4daf47d60d4defcfef0849..75e882057362457713ce89e17d4f2ba0bdfe0edf 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "platform_defs.h"
 #include "command.h"
+#include "input.h"
 #include <linux/fiemap.h>
 #include "init.h"
 #include "io.h"
@@ -48,19 +49,6 @@ fiemap_help(void)
 "\n"));
 }
 
-static int
-numlen(
-       __u64   val,
-       int     base)
-{
-       __u64   tmp;
-       int     len;
-
-       for (len = 0, tmp = val; tmp > 0; tmp = tmp/base)
-               len++;
-       return (len == 0 ? 1 : len);
-}
-
 static void
 print_verbose(
        struct fiemap_extent    *extent,
index 8aeb3b022ce365f1519a33546c2fff033c373d8a..9437be37a6ced1cfe56ecc7aeaaa2fb9c5136ac6 100644 (file)
@@ -136,6 +136,19 @@ doneline(
        free(vec);
 }
 
+size_t
+numlen(
+       uint64_t        val,
+       size_t          base)
+{
+       uint64_t        tmp;
+       size_t          len;
+
+       for (len = 0, tmp = val; tmp > 0; tmp = tmp / base)
+               len++;
+       return len == 0 ? 1 : len;
+}
+
 #define EXABYTES(x)    ((long long)(x) << 60)
 #define PETABYTES(x)   ((long long)(x) << 50)
 #define TERABYTES(x)   ((long long)(x) << 40)