#ifndef __XPRINTF_H
#define __XPRINTF_H

#include "config.h"
#include <printf.h>

#define XPRINTF_INSPECT_SPEC	'J'
#define XPRINTF_BIN_SPEC	'K'

#if HAVE_REGISTER_PRINTF_SPECIFIER
int print_buffer_inspect_arginfo(const struct printf_info *info, size_t n, int *argtypes, int *size);
#else
int print_buffer_inspect_arginfo(const struct printf_info *info, size_t n, int *argtypes);
#endif
int print_buffer_inspect(FILE *stream, const struct printf_info *info, const void *const *args);

#if HAVE_REGISTER_PRINTF_SPECIFIER
int print_buffer_bin_arginfo(const struct printf_info *info, size_t n, int *argtypes, int *size);
#else
int print_buffer_bin_arginfo(const struct printf_info *info, size_t n, int *argtypes);
#endif
int print_buffer_bin(FILE *stream, const struct printf_info *info, const void *const *args);

int xprintf_init(void);

#endif /* ~__XPRINTF_H */