Mercurial > hg > octave-kai > gnulib-hg
changeset 1142:ff40370aead6
(human_readable): Convert to ANSI-style definition.
[lint]: Define `power'.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sun, 30 Nov 1997 11:10:24 +0000 |
parents | 8b39b9c51414 |
children | dc2ce1a86276 |
files | lib/human.c |
diffstat | 1 files changed, 13 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ }; /* 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 @@ 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 @@ 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 @@ 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 @@ } } } - + if (5 < tenths + (2 < rounding + (amt & 1))) { amt++;