Add a wrapper around vstr_add_fmt() to avoid having to link libcharon against libvstr
At least on Android the latter would be required.
This commit is contained in:
parent
21d8392041
commit
7ab348370c
|
@ -237,6 +237,21 @@ static inline Vstr_conf *get_vstr_conf()
|
|||
return conf;
|
||||
}
|
||||
|
||||
/**
|
||||
* Described in header
|
||||
*/
|
||||
size_t vstr_print_in_hook(struct Vstr_base *base, size_t pos, const char *fmt,
|
||||
...)
|
||||
{
|
||||
va_list args;
|
||||
int written;
|
||||
|
||||
va_start(args, fmt);
|
||||
written = vstr_add_vfmt(base, pos, fmt, args);
|
||||
va_end(args);
|
||||
return written;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper functions for printf and alike
|
||||
*/
|
||||
|
|
|
@ -61,7 +61,7 @@ struct printf_hook_data_t {
|
|||
* Helper macro to be used in printf hook callbacks.
|
||||
*/
|
||||
#define print_in_hook(data, fmt, ...) ({\
|
||||
int _written = fprintf(data->stream, fmt, ##__VA_ARGS__);\
|
||||
ssize_t _written = fprintf(data->stream, fmt, ##__VA_ARGS__);\
|
||||
if (_written < 0)\
|
||||
{\
|
||||
_written = 0;\
|
||||
|
@ -156,11 +156,25 @@ struct printf_hook_data_t {
|
|||
size_t pos;
|
||||
};
|
||||
|
||||
/**
|
||||
* Wrapper around vstr_add_vfmt(), avoids having to link all users of
|
||||
* print_in_hook() against libvstr.
|
||||
*
|
||||
* @param base Vstr_string to add string to
|
||||
* @param pos position to write to
|
||||
* @param fmt format string
|
||||
* @param ... arguments
|
||||
* @return number of characters written
|
||||
*/
|
||||
size_t vstr_print_in_hook(struct Vstr_base *base, size_t pos, const char *fmt,
|
||||
...);
|
||||
|
||||
/**
|
||||
* Helper macro to be used in printf hook callbacks.
|
||||
*/
|
||||
#define print_in_hook(data, fmt, ...) ({\
|
||||
int _written = vstr_add_fmt(data->base, data->pos, fmt, ##__VA_ARGS__);\
|
||||
size_t _written; \
|
||||
_written = vstr_print_in_hook(data->base, data->pos, fmt, ##__VA_ARGS__);\
|
||||
data->pos += _written;\
|
||||
_written;\
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue