summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1997-11-30 11:10:24 +0000
committerJim Meyering <jim@meyering.net>1997-11-30 11:10:24 +0000
commit00c42a8936dcb36d1372a56ca61ea0ea845ab60d (patch)
tree95b8cc4f402bf9bf5b17eab010362f0045255ed5 /lib
parent5320bf5037397245ae335c83ef5d22aac5ff5907 (diff)
downloadcoreutils-00c42a8936dcb36d1372a56ca61ea0ea845ab60d.tar.xz
(human_readable): Convert to ANSI-style definition.
[lint]: Define `power'.
Diffstat (limited to 'lib')
-rw-r--r--lib/human.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/lib/human.c b/lib/human.c
index b647649d5..ddd4b4aef 100644
--- a/lib/human.c
+++ b/lib/human.c
@@ -32,12 +32,12 @@
#endif
#ifndef CHAR_BIT
-#define CHAR_BIT 8
+# define CHAR_BIT 8
#endif
#include "human.h"
-static const char suffixes[] =
+static const char suffixes[] =
{
0, /* not used */
'k', /* kilo */
@@ -51,11 +51,11 @@ static const char suffixes[] =
};
/* Convert N to a human readable format in BUF.
-
+
N is expressed in units of FROM_UNITS; use units of TO_UNITS in the
output number. FROM_UNITS and TO_UNITS must be positive, and one must
be a multiple of the other.
-
+
If BASE is nonzero, use a format like "127k" if possible,
using powers of BASE; otherwise, use ordinary decimal format.
Normally BASE is either 1000 or 1024; it must be at least 2.
@@ -68,12 +68,7 @@ static const char suffixes[] =
than BASE aren't modified. */
char *
-human_readable (n, buf, from_units, to_units, base)
- uintmax_t n;
- char *buf;
- int from_units;
- int to_units;
- int base;
+human_readable (uintmax_t n, char *buf, int from_units, int to_units, int base)
{
uintmax_t amt;
int tenths;
@@ -88,10 +83,14 @@ human_readable (n, buf, from_units, to_units, base)
p = buf + LONGEST_HUMAN_READABLE;
*p = '\0';
-
+
+#ifdef lint
+ /* Suppress `used before initialized' warning. */
+ power = 0;
+#endif
/* Adjust AMT out of FROM_UNITS units and into TO_UNITS units. */
-
+
if (to_units <= from_units)
{
int multiplier = from_units / to_units;
@@ -142,7 +141,7 @@ human_readable (n, buf, from_units, to_units, base)
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);
}
-
+
/* Use power of BASE notation if adjusted AMT is large enough. */
if (base && base <= amt)
@@ -182,7 +181,7 @@ human_readable (n, buf, from_units, to_units, base)
}
}
}
-
+
if (5 < tenths + (2 < rounding + (amt & 1)))
{
amt++;