Mercurial > hg > octave-max
diff src/cutils.c @ 3620:0886bbb236cb
[project @ 2000-03-23 05:17:23 by jwe]
author | jwe |
---|---|
date | Thu, 23 Mar 2000 05:17:25 +0000 |
parents | 729ad2b6a052 |
children | 35070534ea95 |
line wrap: on
line diff
--- a/src/cutils.c +++ b/src/cutils.c @@ -39,6 +39,9 @@ #include <sys/poll.h> #endif +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> #include <string.h> static void @@ -92,6 +95,46 @@ return strncasecmp (s1, s2, n); } +char * +octave_vsnprintf (size_t n, const char *fmt, va_list args) +{ +#if defined (HAVE_VSNPRINTF) + size_t size = 100; + + char *buf = malloc (size); + + while (1) + { + int nchars = vsnprintf (buf, size, fmt, args); + + if (nchars > -1) + return buf; + else + { + size *= 2; + buf = realloc (buf, size); + } + } +#else + return 0; +#endif +} + +char * +octave_snprintf (size_t n, const char *fmt, ...) +{ + char *retval = 0; + + va_list args; + va_start (args, fmt); + + retval = octave_vsnprintf (n, fmt, args); + + va_end (args); + + return retval; +} + /* ;;; Local Variables: *** ;;; mode: C++ ***