summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rwxr-xr-xutils/ftoa.h1
-rwxr-xr-xutils/utoa.h11
2 files changed, 9 insertions, 3 deletions
diff --git a/utils/ftoa.h b/utils/ftoa.h
index 81a685ac..3dba528d 100755
--- a/utils/ftoa.h
+++ b/utils/ftoa.h
@@ -243,6 +243,7 @@ char *prepend_pos_nonsci(char *p,F f) {
*--p='0';
} else
p=utoa(p,u);
+ return p;
}
// modify p; return true if handled
diff --git a/utils/utoa.h b/utils/utoa.h
index 341965cc..5de490ba 100755
--- a/utils/utoa.h
+++ b/utils/utoa.h
@@ -136,6 +136,9 @@ char *utoa_drop_trailing_0(char *buf,Uint_ n_, unsigned &n_skipped) {
}
}
+//#include "warning_push.h"
+//#pragma GCC diagnostic ignore "-Wtype-limits" // because sign check on itoa<unsigned> is annoying
+
// desired feature: itoa(unsigned) = utoa(unsigned)
// positive sign: 0 -> +0, 1-> +1. obviously -n -> -n
template <class Int>
@@ -167,21 +170,23 @@ char * itoa_left_pad(char *buf,char *bufend,Int i,bool positive_sign=false,char
}
template <class Int>
-inline std::string itos(Int n) {
+inline std::string utos(Int n) {
char buf[signed_for_int<Int>::toa_bufsize];
char *end=buf+signed_for_int<Int>::toa_bufsize;
- char *p=itoa(end,n);
+ char *p=utoa(end,n);
return std::string(p,end);
}
template <class Int>
-inline std::string utos(Int n) {
+inline std::string itos(Int n) {
char buf[signed_for_int<Int>::toa_bufsize];
char *end=buf+signed_for_int<Int>::toa_bufsize;
char *p=itoa(end,n);
return std::string(p,end);
}
+//#include "warning_pop.h"
+
//returns position of '\0' terminating number written starting at to
template <class Int>
inline char* append_utoa(char *to,typename signed_for_int<Int>::unsigned_t n) {