From: Jim Meyering Date: Sat, 17 Mar 2001 08:50:51 +0000 (+0000) Subject: (INT_STRLEN_BOUND): New macro. X-Git-Tag: FILEUTILS-4_0_42~21 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=9f9610d9833dd394269443111e4e612c55cdd820;p=thirdparty%2Fcoreutils.git (INT_STRLEN_BOUND): New macro. --- diff --git a/src/sys2.h b/src/sys2.h index 2ed46b16b7..48af648c30 100644 --- a/src/sys2.h +++ b/src/sys2.h @@ -488,6 +488,11 @@ enum ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) #define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) +/* Upper bound on the string length of an integer converted to string. + 302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit; + add 1 for integer division truncation; add 1 more for a minus sign. */ +#define INT_STRLEN_BOUND(t) ((sizeof (t) * CHAR_BIT - 1) * 302 / 1000 + 2) + #ifndef CHAR_MIN # define CHAR_MIN TYPE_MINIMUM (char) #endif