Mercurial > hg > octave-lyh
diff src/cutils.c @ 4302:ebc2d8e4968b
[project @ 2003-01-22 22:02:23 by jwe]
author | jwe |
---|---|
date | Wed, 22 Jan 2003 22:02:23 +0000 |
parents | 5b075bd78a91 |
children | f99c430316cd |
line wrap: on
line diff
--- a/src/cutils.c +++ b/src/cutils.c @@ -119,80 +119,10 @@ return strncasecmp (s1, s2, n); } -/* XXX FIXME XXX -- we really need a configure test for this. */ - -#if defined __GNUC__ && __GNUC__ >= 3 -#define HAVE_C99_VSNPRINTF 1 -#endif - -/* We manage storage. User should not free it, and its contents are - only valid until next call to vsnprintf. */ - -char * -octave_vsnprintf (const char *fmt, va_list args) +int +octave_raw_vsnprintf (char *buf, size_t n, const char *fmt, va_list args) { - static size_t size = 100; - - static char *buf = 0; - - int nchars; - - if (! buf) - buf = malloc (size); - - if (! buf) - return 0; - -#if defined (HAVE_C99_VSNPRINTF) - - nchars = vsnprintf (buf, size, fmt, args); - - if (nchars >= size) - { - size = nchars + 1; - buf = realloc (buf, size); - - if (buf) - vsnprintf (buf, size, fmt, args); - } - -#else - - while (1) - { - nchars = vsnprintf (buf, size, fmt, args); - - if (nchars > -1) - return buf; - else - { - size *= 2; - - buf = realloc (buf, size); - - if (! buf) - return 0; - } - } - -#endif - - return buf; -} - -char * -octave_snprintf (const char *fmt, ...) -{ - char *retval = 0; - - va_list args; - va_start (args, fmt); - - retval = octave_vsnprintf (fmt, args); - - va_end (args); - - return retval; + return vsnprintf (buf, n, fmt, args); } /*