mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
Introduce string_vprintf
This adds string_vprintf, a va_list variant of string_printf. This will be used in later patches. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * unittests/common-utils-selftests.c (format): New function. (string_vprintf_tests): New function. (_initialize_common_utils_selftests): Register new tests. * common/common-utils.c (string_vprintf): New function. * common/common-utils.h (string_vprintf): Declare.
This commit is contained in:
@ -174,6 +174,27 @@ string_printf (const char* fmt, ...)
|
||||
return str;
|
||||
}
|
||||
|
||||
/* See documentation in common-utils.h. */
|
||||
|
||||
std::string
|
||||
string_vprintf (const char* fmt, va_list args)
|
||||
{
|
||||
va_list vp;
|
||||
size_t size;
|
||||
|
||||
va_copy (vp, args);
|
||||
size = vsnprintf (NULL, 0, fmt, vp);
|
||||
va_end (vp);
|
||||
|
||||
std::string str (size, '\0');
|
||||
|
||||
/* C++11 and later guarantee std::string uses contiguous memory and
|
||||
always includes the terminating '\0'. */
|
||||
vsprintf (&str[0], fmt, args);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
char *
|
||||
savestring (const char *ptr, size_t len)
|
||||
{
|
||||
|
Reference in New Issue
Block a user