doc: use ASCII in .texi files where UTF-8 isn't needed
[gnulib.git] / lib / human.h
index 553d7ad..2cb1c9e 100644 (file)
@@ -1,12 +1,11 @@
 /* human.h -- print human readable file size
 
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2014 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.
 
    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.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* 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>
+# include <stdint.h>
+# include <unistd.h>
 
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-# if HAVE_UNISTD_H
-#  include <unistd.h>
-# endif
+# include <xstrtol.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) \
+  ((2 * sizeof (uintmax_t) * CHAR_BIT * 146 / 485 + 1) * (MB_LEN_MAX + 1) \
    - MB_LEN_MAX + 1 + 3)
 
 /* Options for human_readable.  */
@@ -61,7 +52,7 @@ enum
   /* Round to minus infinity.  */
   human_floor = 2,
 
-  /* Group digits together, e.g. `1,000,000'.  This uses the
+  /* Group digits together, e.g. "1,000,000".  This uses the
      locale-defined grouping; the traditional C locale does not group,
      so this has effect only if some other locale is in use.  */
   human_group_digits = 4,
@@ -87,6 +78,6 @@ enum
 
 char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t);
 
-int human_options (char const *, bool, uintmax_t *);
+enum strtol_error human_options (char const *, int *, uintmax_t *);
 
 #endif /* HUMAN_H_ */