//############################################################################## //# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # //############################################################################## xString xTime::format(xString format) { int formatBaseSize = 16; xchar* buffer; size_t bufferSize; for(int i = 1;;i++) { bufferSize = format.size() + (formatBaseSize * i); buffer = (xchar*) malloc(bufferSize * sizeof(xchar)); buffer[0] = _T('\1'); #ifndef XTK_UNICODE size_t ret = strftime(buffer,bufferSize,format.c_str(),&m_time); #else size_t ret = wcsftime(buffer,bufferSize,format.c_str(),&m_time); #endif if(((ret < bufferSize) && ret != 0) || (ret == 0 && buffer[0] == _T('\0'))) { xString s(buffer,ret); free((void*) buffer); return s; } } }