From 7b0ac33694003a54d2b370f11b17248060e3ed17 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 22 Oct 2010 12:42:17 -0700 Subject: [PATCH] inttostr: revert most-recent change --- ChangeLog | 14 -------------- lib/anytostr.c | 6 +++++- lib/imaxtostr.c | 1 + lib/inttostr.c | 1 + lib/offtostr.c | 1 + lib/uinttostr.c | 1 + lib/umaxtostr.c | 1 + modules/inttostr | 1 + 8 files changed, 11 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5015e22fa..1239a1092 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,17 +1,3 @@ -2010-10-22 Paul Eggert - - 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 nl_langinfo test: Avoid test failure on NetBSD 5. diff --git a/lib/anytostr.c b/lib/anytostr.c index a64011f5e..27ad98502 100644 --- a/lib/anytostr.c +++ b/lib/anytostr.c @@ -20,6 +20,7 @@ #include #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 @@ -28,10 +29,12 @@ 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; @@ -40,6 +43,7 @@ anytostr (inttype i, char *buf) *--p = '-'; } else +#endif { do *--p = '0' + i % 10; diff --git a/lib/imaxtostr.c b/lib/imaxtostr.c index b91ac98c4..d2a0429b0 100644 --- a/lib/imaxtostr.c +++ b/lib/imaxtostr.c @@ -1,3 +1,4 @@ #define anytostr imaxtostr #define inttype intmax_t +#define inttype_is_signed 1 #include "anytostr.c" diff --git a/lib/inttostr.c b/lib/inttostr.c index c96b5ca39..14db9b8c1 100644 --- a/lib/inttostr.c +++ b/lib/inttostr.c @@ -1,3 +1,4 @@ #define anytostr inttostr #define inttype int +#define inttype_is_signed 1 #include "anytostr.c" diff --git a/lib/offtostr.c b/lib/offtostr.c index 96082aafc..68f2b695b 100644 --- a/lib/offtostr.c +++ b/lib/offtostr.c @@ -1,3 +1,4 @@ #define anytostr offtostr #define inttype off_t +#define inttype_is_signed 1 #include "anytostr.c" diff --git a/lib/uinttostr.c b/lib/uinttostr.c index 48fd98f21..21fa3761a 100644 --- a/lib/uinttostr.c +++ b/lib/uinttostr.c @@ -1,3 +1,4 @@ #define anytostr uinttostr #define inttype unsigned int +#define inttype_is_signed 0 #include "anytostr.c" diff --git a/lib/umaxtostr.c b/lib/umaxtostr.c index f95bfc3ee..7fd995084 100644 --- a/lib/umaxtostr.c +++ b/lib/umaxtostr.c @@ -1,3 +1,4 @@ #define anytostr umaxtostr #define inttype uintmax_t +#define inttype_is_signed 0 #include "anytostr.c" diff --git a/modules/inttostr b/modules/inttostr index 6bbec2895..495ef25cf 100644 --- a/modules/inttostr +++ b/modules/inttostr @@ -14,6 +14,7 @@ m4/inttostr.m4 Depends-on: intprops stdint +verify configure.ac: gl_INTTOSTR -- 2.11.0