| 123456789101112131415161718192021222324252627282930313233343536 |
- #include "ft_printf_internal.h"
- int ft_aprintf(char** output, char* format, ...)
- {
- va_list args;
- int result;
- va_start(args, format);
- result = ft_vaprintf(output, format, args);
- va_end(args);
- return result;
- }
- int ft_vaprintf(char** output, char* format, va_list args)
- {
- struct printf_data params;
- params.fd = -1;
- params.written = 0;
- params.inputBuffer = format;
- params.outputBuffer = NULL;
- params.bufferMaxSize = 0;
- params.realloc = 1;
- params.fdBuffer = NULL;
- params.bufferPos = 0;
- while (*params.inputBuffer)
- {
- if (doPrintf(¶ms, args) < 0)
- return -1;
- }
- flushBuffer(¶ms);
- *output = params.outputBuffer;
- return params.written;
- }
|