(gl_MACROS): Require gl_ULLONG_MAX.
[gnulib.git] / lib / human.h
index b67ba4e..553d7ad 100644 (file)
    302 / 1000 is ceil (log10 (2.0)).  Add 1 for integer division truncation.
    Also, the output can have a thousands separator between every digit,
    so multiply by MB_LEN_MAX + 1 and then subtract MB_LEN_MAX.
+   Append 1 for a space before the suffix.
    Finally, append 3, the maximum length of a suffix.  */
 # define LONGEST_HUMAN_READABLE \
   ((2 * sizeof (uintmax_t) * CHAR_BIT * 302 / 1000 + 1) * (MB_LEN_MAX + 1) \
-   - MB_LEN_MAX + 3)
+   - MB_LEN_MAX + 1 + 3)
 
 /* Options for human_readable.  */
 enum
@@ -74,11 +75,14 @@ enum
   /* Prefer base 1024 to base 1000.  */
   human_base_1024 = 32,
 
+  /* Prepend " " before unit symbol.  */
+  human_space_before_unit = 64,
+
   /* Append SI prefix, e.g. "k" or "M".  */
-  human_SI = 64,
+  human_SI = 128,
 
   /* Append "B" (if base 1000) or "iB" (if base 1024) to SI prefix.  */
-  human_B = 128
+  human_B = 256
 };
 
 char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t);