231{
233
234#if defined(__DCL_COMPILE_UNICODE__) && defined(_MSC_VER)
235 String format;
236 if (
STRSTR(_format, L
"%s")) {
237 __DCL_TRACE3(L
"Warning!! vformat _format [%ls] included [%ls]. replaced to [%ls]\n",
238 _format, L"%s", L"%hs");
239 format.assign(_format);
240 format = format.replace(L"%s", L"%hs");
241 _format = format;
242 }
243#endif
244
245#define __EXTENDED_MAX 1024 * 1024
246#define __EXTEND_MIN 32
247 int n = 0;
253 }
254
255 va_list arglist;
256 va_copy(arglist, _arglist);
260 _format,
261 arglist
262 );
263 va_end(arglist);
264
265
266
267
271 return n;
272 }
273
274 extend *= 2;
275 if (n > 0) {
276 extend =
__MAX(extend, n);
277 }
278 extended += extend;
279 __DCL_TRACE2(
__T(
"VSNPRINTF Failed(%d) extend[%zd] and Retry\n"), n, extend);
280 }
281
282
283
284 __DCL_TRACE2(
__T(
"Warning!! VSNPRINTF Failed(%d) extend[%zd]\n"), n, extend);
285 return n;
286}
#define VSNPRINTF(buf, len, fmt, args)
#define __DCL_TRACE3(fmt, arg1, arg2, arg3)
#define __DCL_TRACE2(fmt, arg1, arg2)
size_t __MAX(size_t x, size_t y)
static void extend(BUFFER_T *&_buf, size_t _len)