#ifndef HUMAN_H_
# define HUMAN_H_ 1
+# if HAVE_CONFIG_H
+# include <config.h>
+# endif
+
+# if HAVE_INTTYPES_H
+# include <inttypes.h>
+# endif
+
/* A conservative bound on the maximum length of a human-readable string.
The output can be the product of the largest uintmax_t and the largest int,
so add their sizes before converting to a bound on digits. */
-#define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) * CHAR_BIT / 3)
+# define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) \
+ * CHAR_BIT / 3)
+
+# ifndef PARAMS
+# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+# endif
+
+enum human_inexact_style
+{
+ human_floor = -1,
+ human_round_to_even = 0,
+ human_ceiling = 1
+};
-#ifndef __P
-# if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
-# define __P(args) args
-# else
-# define __P(args) ()
-# endif /* GCC. */
-#endif /* Not __P. */
+char *human_readable PARAMS ((uintmax_t, char *, int, int));
+char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
+ enum human_inexact_style));
-char *human_readable __P ((uintmax_t, char *, int, int, int));
+void human_block_size PARAMS ((char const *, int, int *));
#endif /* HUMAN_H_ */