Use GL_LINK_WARNING in the generated inttypes.h.
[gnulib.git] / lib / human.h
index 604fec1..44b8b36 100644 (file)
@@ -1,7 +1,7 @@
 /* human.h -- print human readable file size
 
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free
-   Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+   2005, 2006 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* Written by Paul Eggert and Larry McVoy.  */
 
 #ifndef HUMAN_H_
 # define HUMAN_H_ 1
 
-# if HAVE_CONFIG_H
-#  include <config.h>
-# endif
-
 # include <limits.h>
 # include <stdbool.h>
-
-# if HAVE_INTTYPES_H
-#  include <inttypes.h>
-# else
-#  if HAVE_STDINT_H
-#   include <stdint.h>
-#  endif
-# endif
+# include <stdint.h>
+# include <unistd.h>
 
 /* A conservative bound on the maximum length of a human-readable string.
    The output can be the square of the largest uintmax_t, so double
    its size before converting to a bound.
-   302 / 1000 is ceil (log10 (2.0)).  Add 1 for integer division truncation.
+   log10 (2.0) < 146/485.  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)
+  ((2 * sizeof (uintmax_t) * CHAR_BIT * 146 / 485 + 1) * (MB_LEN_MAX + 1) \
+   - MB_LEN_MAX + 1 + 3)
 
 /* Options for human_readable.  */
 enum
@@ -75,11 +66,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);