40 lines
958 B
C
40 lines
958 B
C
|
#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)
|
||
|
|
||
|
# 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
|
||
|
};
|
||
|
|
||
|
char *human_readable PARAMS ((uintmax_t, char *, int, int));
|
||
|
char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
|
||
|
enum human_inexact_style));
|
||
|
|
||
|
void human_block_size PARAMS ((char const *, int, int *));
|
||
|
|
||
|
#endif /* HUMAN_H_ */
|