MCPcopy Create free account
hub / github.com/F-Stack/f-stack / xo_printf_v

Function xo_printf_v

tools/libxo/libxo/libxo.c:980–1011  ·  view source on GitHub ↗

* Print some data through the handle. */

Source from the content-addressed store, hash-verified

978 * Print some data through the handle.
979 */
980static ssize_t
981xo_printf_v (xo_handle_t *xop, const char *fmt, va_list vap)
982{
983 xo_buffer_t *xbp = &xop->xo_data;
984 ssize_t left = xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp);
985 ssize_t rc;
986 va_list va_local;
987
988 va_copy(va_local, vap);
989
990 rc = vsnprintf(xbp->xb_curp, left, fmt, va_local);
991
992 if (rc >= left) {
993 if (!xo_buf_has_room(xbp, rc)) {
994 va_end(va_local);
995 return -1;
996 }
997
998 va_end(va_local); /* Reset vap to the start */
999 va_copy(va_local, vap);
1000
1001 left = xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp);
1002 rc = vsnprintf(xbp->xb_curp, left, fmt, va_local);
1003 }
1004
1005 va_end(va_local);
1006
1007 if (rc > 0)
1008 xbp->xb_curp += rc;
1009
1010 return rc;
1011}
1012
1013static ssize_t
1014xo_printf (xo_handle_t *xop, const char *fmt, ...)

Callers 2

xo_printfFunction · 0.85
xo_message_hcvFunction · 0.85

Calls 2

vsnprintfFunction · 0.85
xo_buf_has_roomFunction · 0.85

Tested by

no test coverage detected