Path: blob/master/waterbox/libc/functions/stdio/_cbprintf.c
2 views
/* _cbprintf( void *, size_t (*)( void *, const char *, size_t ), const char *, ... )12This file is part of the Public Domain C Library (PDCLib).3Permission is granted to use, modify, and / or redistribute at will.4*/56#include <stdio.h>7#include <stdint.h>8#include <stdarg.h>910#ifndef REGTEST1112int _cbprintf(13void * p,14size_t (*cb)( void*, const char*, size_t ),15const char * _PDCLIB_restrict format,16...)17{18int rc;19va_list ap;20va_start( ap, format );21rc = _vcbprintf( p, cb, format, ap );22va_end( ap );23return rc;24}2526#endif2728#ifdef TEST29#define _PDCLIB_FILEID "stdio/sprintf.c"30#define _PDCLIB_STRINGIO31#include <stddef.h>3233#include "_PDCLIB_test.h"3435static char * bufptr;36static size_t testcb( void *p, const char *buf, size_t size )37{38memcpy(bufptr, buf, size);39bufptr += size;40*bufptr = '\0';41return size;42}4344#define testprintf( s, ... ) _cbprintf( bufptr = s, testcb, __VA_ARGS__ )4546int main( void )47{48#ifndef REGTEST49char target[100];50#include "printf_testcases.h"51#endif52return TEST_RESULTS;53}5455#endif565758