[Scummvm-git-logs] scummvm master -> 55d31b02601591c8b126b2115d91d3ad6fabc9c5
lephilousophe
noreply at scummvm.org
Sat Sep 24 08:16:28 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
55d31b0260 COMMON: Pass U32String format params by reference and fix warnings about passing a non-trivial class to va_start.
Commit: 55d31b02601591c8b126b2115d91d3ad6fabc9c5
https://github.com/scummvm/scummvm/commit/55d31b02601591c8b126b2115d91d3ad6fabc9c5
Author: elasota (ejlasota at gmail.com)
Date: 2022-09-24T10:16:24+02:00
Commit Message:
COMMON: Pass U32String format params by reference and fix warnings about passing a non-trivial class to va_start.
Changed paths:
common/ustr.cpp
common/ustr.h
diff --git a/common/ustr.cpp b/common/ustr.cpp
index ee7afeea83b..0ad2076a15d 100644
--- a/common/ustr.cpp
+++ b/common/ustr.cpp
@@ -145,12 +145,12 @@ void U32String::insertString(const String &s, uint32 p, CodePage page) {
insertString(U32String(s, page), p);
}
-U32String U32String::format(U32String fmt, ...) {
+U32String U32String::formatInternal(const U32String *fmt, ...) {
U32String output;
va_list va;
va_start(va, fmt);
- U32String::vformat(fmt.c_str(), fmt.c_str() + fmt.size(), output, va);
+ U32String::vformat(fmt->c_str(), fmt->c_str() + fmt->size(), output, va);
va_end(va);
return output;
diff --git a/common/ustr.h b/common/ustr.h
index 904a34cdcab..55a2ae66653 100644
--- a/common/ustr.h
+++ b/common/ustr.h
@@ -137,7 +137,8 @@ public:
* Similar to sprintf, except that it stores the result
* in a (variably sized) string instead of a fixed-size buffer.
*/
- static U32String format(U32String fmt, ...);
+ template<class... TParam>
+ static U32String format(const U32String &fmt, TParam... param);
/** @overload **/
static U32String format(const char *fmt, ...);
@@ -184,6 +185,8 @@ public:
uint16 *encodeUTF16Native(uint *len = nullptr) const;
private:
+ static U32String formatInternal(const U32String *fmt, ...);
+
void decodeInternal(const char *str, uint32 len, CodePage page);
void decodeOneByte(const char *str, uint32 len, CodePage page);
void decodeWindows932(const char *src, uint32 len);
@@ -195,6 +198,11 @@ private:
friend class String;
};
+template<class... TParam>
+inline U32String U32String::format(const U32String &fmt, TParam... param) {
+ return formatInternal(&fmt, param...);
+}
+
/** Concatenate strings @p x and @p y. */
U32String operator+(const U32String &x, const U32String &y);
More information about the Scummvm-git-logs
mailing list