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:
@@ -237,6 +237,21 @@ static inline Vstr_conf *get_vstr_conf()
|
|||||||
return 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
|
* Wrapper functions for printf and alike
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ struct printf_hook_data_t {
|
|||||||
* Helper macro to be used in printf hook callbacks.
|
* Helper macro to be used in printf hook callbacks.
|
||||||
*/
|
*/
|
||||||
#define print_in_hook(data, fmt, ...) ({\
|
#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)\
|
if (_written < 0)\
|
||||||
{\
|
{\
|
||||||
_written = 0;\
|
_written = 0;\
|
||||||
@@ -156,11 +156,25 @@ struct printf_hook_data_t {
|
|||||||
size_t pos;
|
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.
|
* Helper macro to be used in printf hook callbacks.
|
||||||
*/
|
*/
|
||||||
#define print_in_hook(data, fmt, ...) ({\
|
#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;\
|
data->pos += _written;\
|
||||||
_written;\
|
_written;\
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user