-2010-10-22 Paul Eggert <eggert@cs.ucla.edu>
-
- inttostr: simplify by removing unnecessary redundancy
- * lib/anytostr.c: Don't include verify.h.
- (anytostr): Don't verify that TYPE_SIGNED (inttype) equals
- inttype_is_signed. Instead, use TYPE_SIGNED (inttype) directly.
- This removes the need for inttype_is_signed, which was put in to
- suppress some GCC warnings about conversions. This rewrite should
- also suppress those warnings.
- * lib/imaxtostr.c (inttype_is_signed): Remove; no longer needed.
- * lib/inttostr.c, lib/offtostr.c, lib/uinttostr.c, lib/umaxtostr.c:
- Likewise.
- * modules/inttostr (Depends-on): Remove 'verify'.
-
2010-10-21 Bruno Haible <bruno@clisp.org>
nl_langinfo test: Avoid test failure on NetBSD 5.
#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 * __attribute_warn_unused_result__
anytostr (inttype i, char *buf)
{
+ verify (TYPE_SIGNED (inttype) == inttype_is_signed);
char *p = buf + INT_STRLEN_BOUND (inttype);
*p = 0;
- if (TYPE_SIGNED (inttype) && i < 0)
+#if inttype_is_signed
+ if (i < 0)
{
do
*--p = '0' - i % 10;
*--p = '-';
}
else
+#endif
{
do
*--p = '0' + i % 10;
#define anytostr imaxtostr
#define inttype intmax_t
+#define inttype_is_signed 1
#include "anytostr.c"
#define anytostr inttostr
#define inttype int
+#define inttype_is_signed 1
#include "anytostr.c"
#define anytostr offtostr
#define inttype off_t
+#define inttype_is_signed 1
#include "anytostr.c"
#define anytostr uinttostr
#define inttype unsigned int
+#define inttype_is_signed 0
#include "anytostr.c"
#define anytostr umaxtostr
#define inttype uintmax_t
+#define inttype_is_signed 0
#include "anytostr.c"
Depends-on:
intprops
stdint
+verify
configure.ac:
gl_INTTOSTR