X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c566abe0330ef3264d289989982e29c96a1bde8e..177514bcd99af83ad6a01dda22b82e37f3a5cec1:/src/xbt/snprintf.c diff --git a/src/xbt/snprintf.c b/src/xbt/snprintf.c index afdc358967..6196c886f1 100644 --- a/src/xbt/snprintf.c +++ b/src/xbt/snprintf.c @@ -1,4 +1,3 @@ -#include "gras_config.h" /* * snprintf.c - a portable implementation of snprintf @@ -281,7 +280,6 @@ */ - /* ============================================= */ /* NO USER SERVICABLE PARTS FOLLOWING THIS POINT */ /* ============================================= */ @@ -323,9 +321,12 @@ #include #include #include -#include "gras_config.h" /* to get a working stdarg.h */ + +#include "portable.h" /* to get a working stdarg.h */ + #include #include +#include "xbt/str.h" #ifdef isdigit #undef isdigit @@ -379,12 +380,14 @@ /* prototypes */ + #if defined(NEED_ASPRINTF) int asprintf (char **ptr, const char *fmt, /*args*/ ...); #endif -#if defined(NEED_VASPRINTF) +#if defined(NEED_VASPRINTF) int vasprintf (char **ptr, const char *fmt, va_list ap); #endif + #if defined(NEED_ASNPRINTF) int asnprintf (char **ptr, size_t str_m, const char *fmt, /*args*/ ...); #endif @@ -714,7 +717,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { else if (precision == 0) str_arg_l = 0; else { /* memchr on HP does not like n > 2^31 !!! */ - const char *q = memchr(str_arg, '\0', + char *q = (char *) memchr(str_arg, '\0', precision <= 0x7fffffff ? precision : 0x7fffffff); str_arg_l = !q ? precision : (q-str_arg); } @@ -954,7 +957,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { int n = min_field_width - (str_arg_l+number_of_zeros_to_pad); if (n > 0) { if (str_l < str_m) { - size_t avail = str_m-str_l; + int avail = str_m-str_l; fast_memset(str+str_l, (zero_padding?'0':' '), (n>avail?avail:n)); } str_l += n; @@ -971,7 +974,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { int n = zero_padding_insertion_ind; if (n > 0) { if (str_l < str_m) { - size_t avail = str_m-str_l; + int avail = str_m-str_l; fast_memcpy(str+str_l, str_arg, (n>avail?avail:n)); } str_l += n; @@ -980,7 +983,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { n = number_of_zeros_to_pad; if (n > 0) { if (str_l < str_m) { - size_t avail = str_m-str_l; + int avail = str_m-str_l; fast_memset(str+str_l, '0', (n>avail?avail:n)); } str_l += n; @@ -991,7 +994,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { { int n = str_arg_l - zero_padding_insertion_ind; if (n > 0) { if (str_l < str_m) { - size_t avail = str_m-str_l; + int avail = str_m-str_l; fast_memcpy(str+str_l, str_arg+zero_padding_insertion_ind, (n>avail?avail:n)); } @@ -1003,7 +1006,7 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { int n = min_field_width - (str_arg_l+number_of_zeros_to_pad); if (n > 0) { if (str_l < str_m) { - size_t avail = str_m-str_l; + int avail = str_m-str_l; fast_memset(str+str_l, ' ', (n>avail?avail:n)); } str_l += n; @@ -1042,7 +1045,10 @@ char *bprintf(const char*fmt, ...) { char *res; va_start(ap, fmt); - vasprintf(&res,fmt,ap); + + + vasprintf(&res,fmt,ap); + va_end(ap); return res; }