Add std::string format functions

desync-debugging
Jonathan G Rennison 5 years ago
parent d76bc330be
commit 816d0fe723

@ -161,6 +161,28 @@ char *CDECL str_fmt(const char *str, ...)
return p;
}
std::string stdstr_vfmt(const char *str, va_list va)
{
char buf[4096];
int len = vseprintf(buf, lastof(buf), str, va);
return std::string(buf, len);
}
/**
* Format, "printf", into a std::string.
* @param str The formatting string.
* @return The formatted string.
*/
std::string CDECL stdstr_fmt(const char *str, ...)
{
va_list va;
va_start(va, str);
std::string output = stdstr_vfmt(str, va);
va_end(va);
return output;
}
/**
* Scan the string for old values of SCC_ENCODED and fix it to
* it's new, static value.

@ -38,6 +38,8 @@ int CDECL seprintf(char *str, const char *last, const char *format, ...) WARN_FO
int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap);
char *CDECL str_fmt(const char *str, ...) WARN_FORMAT(1, 2);
std::string CDECL stdstr_fmt(const char *str, ...) WARN_FORMAT(1, 2);
std::string stdstr_vfmt(const char *str, va_list va);
void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
std::string str_validate(const std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);

Loading…
Cancel
Save