@@ -208,22 +208,26 @@ String str_format(const char *p_format, ...) {
208
208
#endif
209
209
210
210
#if defined(MINGW_ENABLED) || defined(_MSC_VER) && _MSC_VER < 1900
211
- #define vsnprintf (m_buffer, m_count, m_format, m_argptr ) vsnprintf_s(m_buffer, m_count, _TRUNCATE, m_format, m_argptr)
211
+ #define gd_vsnprintf (m_buffer, m_count, m_format, m_args_copy ) vsnprintf_s(m_buffer, m_count, _TRUNCATE, m_format, m_args_copy)
212
+ #define gd_vscprintf (m_format, m_args_copy ) _vscprintf(m_format, m_args_copy)
213
+ #else
214
+ #define gd_vsnprintf (m_buffer, m_count, m_format, m_args_copy ) vsnprintf(m_buffer, m_count, m_format, m_args_copy)
215
+ #define gd_vscprintf (m_format, m_args_copy ) vsnprintf(NULL , 0 , p_format, m_args_copy)
212
216
#endif
213
217
214
218
String str_format (const char *p_format, va_list p_list) {
215
219
va_list list;
216
220
217
221
va_copy (list, p_list);
218
- int len = vsnprintf ( NULL , 0 , p_format, list);
222
+ int len = gd_vscprintf ( p_format, list);
219
223
va_end (list);
220
224
221
225
len += 1 ; // for the trailing '/0'
222
226
223
227
char *buffer (memnew_arr (char , len));
224
228
225
229
va_copy (list, p_list);
226
- vsnprintf (buffer, len, p_format, list);
230
+ gd_vsnprintf (buffer, len, p_format, list);
227
231
va_end (list);
228
232
229
233
String res (buffer);
0 commit comments