X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8d40d39f472cecd6791a4149b5e89d6d3a17d24d..a2a1aee909cfa9076f9dbe34778140af74dfebd3:/src/xbt/snprintf.c diff --git a/src/xbt/snprintf.c b/src/xbt/snprintf.c index b6f7b75c90..8ce12fe163 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 @@ -323,7 +322,9 @@ #include #include #include -#include "gras_config.h" /* to get a working stdarg.h */ + +#include "portable.h" /* to get a working stdarg.h */ + #include #include @@ -417,6 +418,12 @@ static char credits[] = "\n\ @(#)snprintf.c, v2.2: Copyright 1999, Mark Martinec. Frontier Artistic License applies.\n\ @(#)snprintf.c, v2.2: http://www.ijs.si/software/snprintf/\n"; +static void __foo__(void) +{ + printf("%s",credits); + __foo__(); +} + #if defined(NEED_ASPRINTF) int asprintf(char **ptr, const char *fmt, /*args*/ ...) { va_list ap; @@ -708,7 +715,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); } @@ -948,7 +955,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; @@ -965,7 +972,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; @@ -974,7 +981,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; @@ -985,7 +992,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)); } @@ -997,7 +1004,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; @@ -1026,3 +1033,17 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) { return (int) str_l; } #endif + + +/* FIXME: better place */ +#include "xbt/sysdep.h" + +char *bprintf(const char*fmt, ...) { + va_list ap; + char *res; + + va_start(ap, fmt); + vasprintf(&res,fmt,ap); + va_end(ap); + return res; +}