MCPcopy Index your code
hub / github.com/MapServer/MapServer / msIO_printf

Function msIO_printf

mapio.c:312–364  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310/************************************************************************/
311
312int msIO_printf( const char *format, ... )
313
314{
315 va_list args, args_copy;
316 int return_val;
317 msIOContext *context;
318 char workBuf[8000], *largerBuf = NULL;
319
320 va_start( args, format );
321
322#if !defined(HAVE_VSNPRINTF)
323 return_val = vsprintf( workBuf, format, args);
324
325 if( return_val < 0 || return_val >= sizeof(workBuf) )
326 {
327 va_end( args );
328 msSetError(MS_MISCERR, "Possible buffer overrun.", "msIO_printf()");
329 return -1;
330 }
331
332#else
333
334#ifdef va_copy
335 va_copy( args_copy, args );
336#else
337 args_copy = args;
338#endif /* va_copy */
339
340 return_val = vsnprintf( workBuf, sizeof(workBuf), format, args );
341 if (return_val == -1 || return_val >= sizeof(workBuf)-1)
342 {
343 return_val = _ms_vsprintf(&largerBuf, format, args_copy );
344 }
345 va_end(args_copy);
346
347#endif /* HAVE_VSNPRINTF */
348
349 va_end( args );
350
351 if (return_val < 0)
352 return -1;
353
354 context = msIO_getHandler( stdout );
355 if( context == NULL )
356 return -1;
357
358 return_val = msIO_contextWrite( context,
359 largerBuf?largerBuf:workBuf,
360 return_val );
361 msFree(largerBuf);
362
363 return return_val;
364}
365
366/************************************************************************/
367/* msIO_fprintf() */

Calls 5

msSetErrorFunction · 0.85
_ms_vsprintfFunction · 0.85
msIO_getHandlerFunction · 0.85
msIO_contextWriteFunction · 0.85
msFreeFunction · 0.85

Tested by

no test coverage detected