+2009-10-31 Jim Meyering <meyering@redhat.com>
+
+ inttostr: aesthetics and improved (compile-time) safety
+ Define inttype_is_signed rather than inttype_is_unsigned,
+ since the sole use is via "#if inttype_is_signed".
+ * lib/imaxtostr.c (inttype_is_signed): Define this, rather than
+ inttype_is_unsigned.
+ * lib/offtostr.c (inttype_is_signed): Likewise.
+ * lib/uinttostr.c (inttype_is_signed): Likewise.
+ * lib/umaxtostr.c (inttype_is_signed): Likewise.
+ * lib/inttostr.c (inttostr): Use verify to cross-check the
+ inttype_is_signed value and the signedness of the actual type.
+ * modules/inttostr (Depends-on): Add verify.
+
2009-10-30 Eric Blake <ebb9@byu.net>
build: avoid compiler warnings
#include <config.h>
#include "inttostr.h"
+#include "verify.h"
/* Convert I to a printable string in BUF, which must be at least
INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the
char *p = buf + INT_STRLEN_BOUND (inttype);
*p = 0;
-#ifndef inttype_is_unsigned
+ verify (TYPE_SIGNED (inttype) == inttype_is_signed);
+#if inttype_is_signed
if (i < 0)
{
do
#define inttostr uinttostr
#define inttype unsigned int
-#define inttype_is_unsigned
+#define inttype_is_signed 0
#include "inttostr.c"
#define inttostr umaxtostr
#define inttype uintmax_t
-#define inttype_is_unsigned
+#define inttype_is_signed 0
#include "inttostr.c"