1
0
forked from 0ad/0ad

more string drudgery

- sprintf, snprintf -> sprintf_s (ensures 0-termination of result)
- use %s instead of %hs with sprintf_s to avoid GCC warnings
- convert h_mgr's to_string to unicode

This was SVN commit r7170.
This commit is contained in:
janwas 2009-11-06 10:59:10 +00:00
parent 25717ef768
commit 9662666403
35 changed files with 125 additions and 131 deletions

View File

@ -35,7 +35,7 @@ void require_(int line, bool value, const char* type, const char* message)
{
if (value) return;
char linestr[16];
sprintf(linestr, "%d", line);
sprintf_s(linestr, sizeof(linestr)/sizeof(linestr[0]), "%d", line);
throw ColladaException(std::string(type) + " (line " + linestr + "): " + message);
}
@ -79,9 +79,9 @@ void FColladaErrorHandler::OnError(FUError::Level errorLevel, uint32 errorCode,
errorString = "Unknown error code";
if (errorLevel == FUError::DEBUG_LEVEL)
Log(LOG_INFO, "FCollada message %d: %hs", errorCode, errorString);
Log(LOG_INFO, "FCollada message %d: %s", errorCode, errorString);
else if (errorLevel == FUError::WARNING_LEVEL)
Log(LOG_WARNING, "FCollada warning %d: %hs", errorCode, errorString);
Log(LOG_WARNING, "FCollada warning %d: %s", errorCode, errorString);
else
throw ColladaException(errorString);
}
@ -97,7 +97,7 @@ void FColladaDocument::LoadFromText(const char *text)
size_t newTextSize = 0;
FixBrokenXML(text, &newText, &newTextSize);
// Log(LOG_INFO, "%hs", newText);
// Log(LOG_INFO, "%s", newText);
bool status = FCollada::LoadDocumentFromMemory("unknown.dae", document.get(), (void*)newText, newTextSize);
if (newText != text)
@ -143,7 +143,7 @@ CommonConvert::CommonConvert(const char* text, std::string& xmlErrors)
throw ColladaException("Couldn't find object to convert");
assert(m_Instance);
Log(LOG_INFO, "Converting '%hs'", m_Instance->GetEntity()->GetName().c_str());
Log(LOG_INFO, "Converting '%s'", m_Instance->GetEntity()->GetName().c_str());
m_IsXSI = false;
FCDAsset* asset = m_Doc.GetDocument()->GetAsset();
@ -254,7 +254,7 @@ static void FindInstances(FCDSceneNode* node, std::vector<FoundInstance>& instan
f.transform = transform * node->ToMatrix();
f.instance = node->GetInstance(i);
instances.push_back(f);
Log(LOG_INFO, "Found convertible object '%hs'", node->GetName().c_str());
Log(LOG_INFO, "Found convertible object '%s'", node->GetName().c_str());
}
}

View File

@ -27,7 +27,7 @@
void default_logger(int severity, const char* message)
{
fprintf(stderr, "[%d] %hs\n", severity, message);
fprintf(stderr, "[%d] %s\n", severity, message);
}
static LogFn g_Logger = &default_logger;
@ -111,9 +111,9 @@ int convert_dae_to_whatever(const char* dae, OutputFn writer, void* cb_data, voi
catch (const ColladaException& e)
{
if (! xmlErrors.empty())
Log(LOG_ERROR, "%hs", xmlErrors.c_str());
Log(LOG_ERROR, "%s", xmlErrors.c_str());
Log(LOG_ERROR, "%hs", e.what());
Log(LOG_ERROR, "%s", e.what());
FCollada::Release();
@ -124,7 +124,7 @@ int convert_dae_to_whatever(const char* dae, OutputFn writer, void* cb_data, voi
if (! xmlErrors.empty())
{
Log(LOG_ERROR, "%hs", xmlErrors.c_str());
Log(LOG_ERROR, "%s", xmlErrors.c_str());
return -1;
}
@ -152,9 +152,9 @@ EXPORT int set_skeleton_definitions(const char* xml, int length)
catch (const ColladaException& e)
{
if (! xmlErrors.empty())
Log(LOG_ERROR, "%hs", xmlErrors.c_str());
Log(LOG_ERROR, "%s", xmlErrors.c_str());
Log(LOG_ERROR, "%hs", e.what());
Log(LOG_ERROR, "%s", e.what());
return -1;
}

View File

@ -152,9 +152,9 @@ public:
Log(LOG_WARNING, "Mismatched bone counts (skin has %d, skeleton has %d)",
skin->GetJointCount(), controllerInstance.GetJointCount());
for (size_t i = 0; i < skin->GetJointCount(); ++i)
Log(LOG_INFO, "Skin joint %d: %hs", i, skin->GetJoint(i)->GetId().c_str());
Log(LOG_INFO, "Skin joint %d: %s", i, skin->GetJoint(i)->GetId().c_str());
for (size_t i = 0; i < controllerInstance.GetJointCount(); ++i)
Log(LOG_INFO, "Skeleton joint %d: %hs", i, controllerInstance.GetJoint(i)->GetName().c_str());
Log(LOG_INFO, "Skeleton joint %d: %s", i, controllerInstance.GetJoint(i)->GetName().c_str());
}
// Get the skinned mesh for this entity
@ -212,7 +212,7 @@ public:
{
// The relevant joint does exist, but it's not a recognised
// bone in our chosen skeleton structure
Log(LOG_ERROR, "Vertex influenced by unrecognised bone '%hs'", joint->GetName().c_str());
Log(LOG_ERROR, "Vertex influenced by unrecognised bone '%s'", joint->GetName().c_str());
continue;
}
@ -287,7 +287,7 @@ public:
// Strip off the "prop-" from the name
std::string propPointName (child->GetName().substr(5));
Log(LOG_INFO, "Adding prop point %hs", propPointName.c_str());
Log(LOG_INFO, "Adding prop point %s", propPointName.c_str());
// Get translation and orientation of local transform

View File

@ -154,7 +154,7 @@ static bool processDocument(xmlNode* root)
if (! authoring_tool_text) return false;
if (authoring_tool_text->type != XML_TEXT_NODE) return false;
xmlChar* toolname = authoring_tool_text->content;
Log(LOG_INFO, "Authoring tool: %hs", toolname);
Log(LOG_INFO, "Authoring tool: %s", toolname);
if (strcmp((const char*)toolname, "FBX COLLADA exporter") == 0)
return applyFBXFixes(root);
else

View File

@ -448,7 +448,7 @@ void IGUIObject::RegisterScriptHandler(const CStr& Action, const CStr& Code, CGU
// Generate a unique name
static int x=0;
char buf[64];
sprintf(buf, "__eventhandler%d", x++);
sprintf_s(buf, ARRAY_SIZE(buf), "__eventhandler%d", x++);
JSFunction* func = JS_CompileFunction(g_ScriptingHost.getContext(), pGUI->m_ScriptObject,
buf, paramCount, paramNames, (const char*)Code, Code.length(), CodeName, 0);
@ -511,7 +511,7 @@ void IGUIObject::ScriptEvent(const CStr& Action)
JSBool ok = JS_CallFunctionValue(g_ScriptingHost.getContext(), jsGuiObject, OBJECT_TO_JSVAL(*it->second), 1, paramData, &result);
if (!ok)
{
JS_ReportError(g_ScriptingHost.getContext(), "Errors executing script action \"%hs\"", Action.c_str());
JS_ReportError(g_ScriptingHost.getContext(), "Errors executing script action \"%s\"", Action.c_str());
}
// Allow the temporary parameters to be garbage-collected

View File

@ -111,7 +111,7 @@ JSBool JSI_IGUIObject::getProperty(JSContext* cx, JSObject* obj, jsval id, jsval
EGUISettingType Type;
if (e->GetSettingType(propName, Type) != PSRETURN_OK)
{
JS_ReportError(cx, "Invalid GUIObject property '%hs'", propName.c_str());
JS_ReportError(cx, "Invalid GUIObject property '%s'", propName.c_str());
return JS_FALSE;
}
@ -273,7 +273,7 @@ JSBool JSI_IGUIObject::getProperty(JSContext* cx, JSObject* obj, jsval id, jsval
}
default:
JS_ReportError(cx, "Setting '%hs' uses an unimplemented type", propName.c_str());
JS_ReportError(cx, "Setting '%s' uses an unimplemented type", propName.c_str());
debug_assert(0);
return JS_FALSE;
}
@ -313,7 +313,7 @@ JSBool JSI_IGUIObject::setProperty(JSContext* cx, JSObject* obj, jsval id, jsval
EGUISettingType Type;
if (e->GetSettingType(propName, Type) != PSRETURN_OK)
{
JS_ReportError(cx, "Invalid setting '%hs'", propName.c_str());
JS_ReportError(cx, "Invalid setting '%s'", propName.c_str());
return JS_TRUE;
}
@ -429,7 +429,7 @@ JSBool JSI_IGUIObject::setProperty(JSContext* cx, JSObject* obj, jsval id, jsval
{
if (e->SetSetting(propName, JS_GetStringBytes(JS_ValueToString(cx, *vp))) != PSRETURN_OK)
{
JS_ReportError(cx, "Invalid value for setting '%hs'", propName.c_str());
JS_ReportError(cx, "Invalid value for setting '%s'", propName.c_str());
return JS_FALSE;
}
}
@ -466,7 +466,7 @@ JSBool JSI_IGUIObject::setProperty(JSContext* cx, JSObject* obj, jsval id, jsval
{
if (e->SetSetting(propName, JS_GetStringBytes(JS_ValueToString(cx, *vp))) != PSRETURN_OK)
{
JS_ReportError(cx, "Invalid value for setting '%hs'", propName.c_str());
JS_ReportError(cx, "Invalid value for setting '%s'", propName.c_str());
return JS_FALSE;
}
}
@ -531,7 +531,7 @@ JSBool JSI_IGUIObject::setProperty(JSContext* cx, JSObject* obj, jsval id, jsval
// TODO Gee: (2004-09-01) EAlign and EVAlign too.
default:
JS_ReportError(cx, "Setting '%hs' uses an unimplemented type", propName.c_str());
JS_ReportError(cx, "Setting '%s' uses an unimplemented type", propName.c_str());
break;
}
@ -587,7 +587,7 @@ JSBool JSI_IGUIObject::toString(JSContext* cx, JSObject* obj, uintN UNUSED(argc)
IGUIObject* e = (IGUIObject*)JS_GetPrivate( cx, obj );
char buffer[256];
snprintf(buffer, 256, "[GUIObject: %hs]", e->GetName().c_str());
snprintf(buffer, 256, "[GUIObject: %s]", e->GetName().c_str());
buffer[255] = 0;
*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, buffer));
return JS_TRUE;

View File

@ -532,7 +532,7 @@ ErrorReaction debug_OnError(LibError err, u8* suppress, const wchar_t* file, int
const wchar_t* lastFuncToSkip = L"debug_OnError";
wchar_t buf[400];
wchar_t err_buf[200]; error_description_r(err, err_buf, ARRAY_SIZE(err_buf));
swprintf_s(buf, ARRAY_SIZE(buf), L"Function call failed: return value was %d (%ls)", err, err_buf);
swprintf_s(buf, ARRAY_SIZE(buf), L"Function call failed: return value was %ld (%ls)", err, err_buf);
return debug_DisplayError(buf, DE_MANUAL_BREAK, context, lastFuncToSkip, file,line,func, suppress);
}

View File

@ -243,30 +243,30 @@ static LibError Cursor_validate(const Cursor* c)
return INFO::OK;
}
static LibError Cursor_to_string(const Cursor* c, char* buf)
static LibError Cursor_to_string(const Cursor* c, wchar_t* buf)
{
const char* type;
const wchar_t* type;
switch(c->kind)
{
case CK_Default:
type = "default";
type = L"default";
break;
case CK_System:
type = "sys";
type = L"sys";
break;
case CK_OpenGL:
type = "gl";
type = L"gl";
break;
default:
debug_assert(0);
type = "?";
type = L"?";
break;
}
snprintf(buf, H_STRING_LEN, "cursor (%hs)", type);
swprintf_s(buf, H_STRING_LEN, L"cursor (%ls)", type);
return INFO::OK;
}

View File

@ -46,18 +46,18 @@ ERROR_ASSOCIATE(ERR::SHDR_NO_PROGRAM, L"Invalid shader program reference", -1);
// Convert a shader object type into a descriptive string.
// If the type enum is not known, the given buffer is used as scratch space
// to format the type number. If buf is null, a generic string is returned.
static const char* shader_type_to_string(GLenum type, char* buf, size_t buflen)
static const wchar_t* shader_type_to_string(GLenum type, wchar_t* buf, size_t buflen)
{
switch(type)
{
case GL_VERTEX_SHADER_ARB: return "VERTEX_SHADER";
case GL_FRAGMENT_SHADER_ARB: return "FRAGMENT_SHADER";
case GL_VERTEX_SHADER_ARB: return L"VERTEX_SHADER";
case GL_FRAGMENT_SHADER_ARB: return L"FRAGMENT_SHADER";
}
if (!buf)
return "unknown type enum";
return L"unknown type enum";
snprintf(buf, buflen, "%u", type);
swprintf_s(buf, buflen, L"%u", type);
return buf;
}
@ -141,7 +141,7 @@ static LibError Ogl_Shader_reload(Ogl_Shader* shdr, const VfsPath& pathname, Han
}
{
char typenamebuf[32];
wchar_t typenamebuf[32];
CStrW type(shader_type_to_string(shdr->type, typenamebuf, ARRAY_SIZE(typenamebuf)));
GLint log_length;
@ -198,9 +198,9 @@ static LibError Ogl_Shader_validate(const Ogl_Shader* UNUSED(shdr))
return INFO::OK;
}
static LibError Ogl_Shader_to_string(const Ogl_Shader* UNUSED(shdr), char* buf)
static LibError Ogl_Shader_to_string(const Ogl_Shader* shdr, wchar_t* buf)
{
snprintf(buf, H_STRING_LEN, "-");
swprintf_s(buf, H_STRING_LEN, L"Ogl_Shader %p", shdr);
return INFO::OK;
}
@ -416,9 +416,9 @@ static LibError Ogl_Program_validate(const Ogl_Program* UNUSED(p))
return INFO::OK;
}
static LibError Ogl_Program_to_string(const Ogl_Program* UNUSED(p), char* buf)
static LibError Ogl_Program_to_string(const Ogl_Program* p, wchar_t* buf)
{
snprintf(buf, H_STRING_LEN, "-");
swprintf_s(buf, H_STRING_LEN, L"Ogl_Program %p", p);
return INFO::OK;
}

View File

@ -483,9 +483,9 @@ static LibError OglTex_validate(const OglTex* ot)
return INFO::OK;
}
static LibError OglTex_to_string(const OglTex* ot, char* buf)
static LibError OglTex_to_string(const OglTex* ot, wchar_t* buf)
{
snprintf(buf, H_STRING_LEN, "OglTex id=%d flags=%x", ot->id, ot->flags);
swprintf_s(buf, H_STRING_LEN, L"OglTex id=%d flags=%x", ot->id, ot->flags);
return INFO::OK;
}

View File

@ -191,15 +191,15 @@ static LibError UniFont_validate(const UniFont* f)
return INFO::OK;
}
static LibError UniFont_to_string(const UniFont* f, char* buf)
static LibError UniFont_to_string(const UniFont* f, wchar_t* buf)
{
if (f->ht) // not true if this is called after dtor (which it is)
{
const VfsPath& path = h_filename(f->ht);
snprintf(buf, H_STRING_LEN, "Font %ls", path.string().c_str());
swprintf_s(buf, H_STRING_LEN, L"Font %ls", path.string().c_str());
}
else
snprintf(buf, H_STRING_LEN, "Font");
swprintf_s(buf, H_STRING_LEN, L"Font");
return INFO::OK;
}

View File

@ -611,10 +611,10 @@ static LibError h_free_idx(ssize_t idx, HDATA* hd)
// to_string is slow for some handles, so avoid calling it if unnecessary
if(debug_filter_allows(L"H_MGR|"))
{
char buf[H_STRING_LEN];
wchar_t buf[H_STRING_LEN];
if(vtbl->to_string(hd->user, buf) < 0)
strcpy(buf, "(error)"); // safe
debug_printf(L"H_MGR| free %ls %ls accesses=%lu %hs\n", hd->type->name, hd->pathname.string().c_str(), (unsigned long)hd->num_derefs, buf);
SAFE_WCSCPY(buf, L"(error)");
debug_printf(L"H_MGR| free %ls %ls accesses=%lu %ls\n", hd->type->name, hd->pathname.string().c_str(), (unsigned long)hd->num_derefs, buf);
}
#endif

View File

@ -292,7 +292,7 @@ struct H_VTbl
LibError (*reload)(void* user, const VfsPath& pathname, Handle);
void (*dtor)(void* user);
LibError (*validate)(const void* user);
LibError (*to_string)(const void* user, char* buf);
LibError (*to_string)(const void* user, wchar_t* buf);
size_t user_size;
const wchar_t* name;
};
@ -305,14 +305,14 @@ typedef H_VTbl* H_Type;
static LibError type##_reload(type*, const VfsPath&, Handle);\
static void type##_dtor(type*);\
static LibError type##_validate(const type*);\
static LibError type##_to_string(const type*, char* buf);\
static LibError type##_to_string(const type*, wchar_t* buf);\
static H_VTbl V_##type =\
{\
(void (*)(void*, va_list))type##_init,\
(LibError (*)(void*, const VfsPath&, Handle))type##_reload,\
(void (*)(void*))type##_dtor,\
(LibError (*)(const void*))type##_validate,\
(LibError (*)(const void*, char*))type##_to_string,\
(LibError (*)(const void*, wchar_t*))type##_to_string,\
sizeof(type), /* control block size */\
WIDEN(#type) /* name */\
};\

View File

@ -275,7 +275,7 @@ static LibError alc_init()
// (e.g. DS3D, native, MMSYSTEM) - needed when reporting OpenAL bugs.
const char* dev_name = (const char*)alcGetString(alc_dev, ALC_DEVICE_SPECIFIER);
wchar_t buf[200];
swprintf_s(buf, ARRAY_SIZE(buf), L"SND| alc_init: success, using %hs\n", dev_name);
swprintf_s(buf, ARRAY_SIZE(buf), L"SND| alc_init: success, using %s\n", dev_name);
ah_log(buf);
#if WIN_LOADLIBRARY_HACK
@ -838,10 +838,10 @@ static LibError SndData_validate(const SndData * sd)
return INFO::OK;
}
static LibError SndData_to_string(const SndData* sd, char* buf)
static LibError SndData_to_string(const SndData* sd, wchar_t* buf)
{
const char* type = "clip";
snprintf(buf, H_STRING_LEN, "%hs; al_buf=%d", type, sd->al_buf);
const wchar_t* type = L"clip";
swprintf_s(buf, H_STRING_LEN, L"%ls; al_buf=%d", type, sd->al_buf);
return INFO::OK;
}
@ -1267,9 +1267,9 @@ static LibError VSrc_validate(const VSrc* vs)
return INFO::OK;
}
static LibError VSrc_to_string(const VSrc* vs, char* buf)
static LibError VSrc_to_string(const VSrc* vs, wchar_t* buf)
{
snprintf(buf, H_STRING_LEN, "al_src = %d", vs->al_src);
swprintf_s(buf, H_STRING_LEN, L"al_src = %d", vs->al_src);
return INFO::OK;
}

View File

@ -56,7 +56,7 @@ void gfx_detect()
// it's too risky, there are too many different strings)
#define SHORTEN(what, chars_to_keep)\
if(!wcsncmp(gfx_card, what, ARRAY_SIZE(what)-1))\
memmove(gfx_card+chars_to_keep, gfx_card+ARRAY_SIZE(what)-1, wcslen(gfx_card)-(ARRAY_SIZE(what)-1)+1);
memmove(gfx_card+chars_to_keep, gfx_card+ARRAY_SIZE(what)-1, (wcslen(gfx_card)-(ARRAY_SIZE(what)-1)+1)*sizeof(wchar_t));
SHORTEN(L"ATI Technologies Inc.", 3);
SHORTEN(L"NVIDIA Corporation", 6);
SHORTEN(L"S3 Graphics", 2); // returned by EnumDisplayDevices

View File

@ -295,7 +295,7 @@ DIR* opendir(const char* path)
// information about that directory; trailing slashes aren't allowed.
// for dir entries to be returned, we have to append "\\*".
char search_path[PATH_MAX];
sprintf_s(search_path, ARRAY_SIZE(search_path), "%hs\\*", path);
sprintf_s(search_path, ARRAY_SIZE(search_path), "%s\\*", path);
// note: we could store search_path and defer FindFirstFile until
// readdir. this way is a bit more complex but required for

View File

@ -36,10 +36,10 @@ int uname(struct utsname* un)
const char* vs = vi.szCSDVersion;
int sp;
if(sscanf(vs, "Service Pack %d", &sp) == 1)
sprintf(un->release, "SP %d", sp);
sprintf_s(un->release, ARRAY_SIZE(un->release), "SP %d", sp);
// version
sprintf(un->version, "%hs.%lu", wutil_WindowsVersionString(), vi.dwBuildNumber & 0xFFFF);
sprintf_s(un->version, ARRAY_SIZE(un->version), "%s.%lu", wutil_WindowsVersionString(), vi.dwBuildNumber & 0xFFFF);
// node name
DWORD buf_size = sizeof(un->nodename);

View File

@ -104,7 +104,7 @@ public:
if (! tmpdir) tmpdir = P_tmpdir;
char root[PATH_MAX];
sprintf_s(root, PATH_MAX, "%hs/pyrogenesis-test-sysdep-XXXXXX", tmpdir);
sprintf_s(root, ARRAY_SIZE(root), "%s/pyrogenesis-test-sysdep-XXXXXX", tmpdir);
TS_ASSERT(mkdtemp(root));
std::string rootstr(root);

View File

@ -212,8 +212,7 @@ JSBool JSI_Vector3D::toString( JSContext* cx, JSObject* obj,
if( vectorInfo->owner && vectorInfo->freshenFn ) ( (vectorInfo->owner)->*(vectorInfo->freshenFn) )();
CVector3D* vectorData = vectorInfo->vector;
snprintf( buffer, 256, "[object Vector3D: ( %f, %f, %f )]", vectorData->X, vectorData->Y, vectorData->Z );
buffer[255] = 0;
sprintf_s( buffer, ARRAY_SIZE(buffer), "[object Vector3D: ( %f, %f, %f )]", vectorData->X, vectorData->Y, vectorData->Z );
*rval = STRING_TO_JSVAL( JS_NewStringCopyZ( cx, buffer ) );
return( JS_TRUE );
}

View File

@ -1059,7 +1059,7 @@ void CNetLogger::GetStringTimeStamp( CStr& str )
{
char buffer[ 128 ] = { 0 };
double timestamp = timer_Time();
sprintf( buffer, "[%3u.%03u]", ( unsigned )timestamp, ( ( unsigned )( timestamp * 1000 ) % 1000 ) );
sprintf_s( buffer, ARRAY_SIZE(buffer), "[%3u.%03u]", ( unsigned )timestamp, ( ( unsigned )( timestamp * 1000 ) % 1000 ) );
str = buffer;
}

View File

@ -159,7 +159,7 @@ bool CNetHost::Connect( const CStr& host, uint port )
if ( !SetupSession( pNewSession ) ) return false;
NET_LOG3( "Successfully connected to server %hs:%d succeeded", host.c_str(), port );
NET_LOG3( "Successfully connected to server %s:%d succeeded", host.c_str(), port );
// Successfully handled?
if ( !HandleConnect( pNewSession ) )
@ -177,7 +177,7 @@ bool CNetHost::Connect( const CStr& host, uint port )
return true;
}
NET_LOG3( "Connection to server %hs:%d failed", host.c_str(), port );
NET_LOG3( "Connection to server %s:%d failed", host.c_str(), port );
// 3 seconds are up or a host was disconnected
enet_peer_reset( pPeer );
@ -420,7 +420,7 @@ bool CNetHost::Poll( void )
CNetMessage* pNewMessage = CNetMessageFactory::CreateMessage( event.packet->data, event.packet->dataLength );
if ( !pNewMessage ) return false;
NET_LOG4( "Message %hs of size %lu was received from %p", pNewMessage->ToString().c_str(), (unsigned long)pNewMessage->GetSerializedLength(), event.peer->data );
NET_LOG4( "Message %s of size %lu was received from %p", pNewMessage->ToString().c_str(), (unsigned long)pNewMessage->GetSerializedLength(), event.peer->data );
// Successfully handled?
if ( !HandleMessageReceive( pNewMessage, it->pSession ) ) {
@ -526,7 +526,7 @@ bool CNetHost::SendMessage(
}
else
{
NET_LOG4( "Message %hs of size %lu was sent to %p",
NET_LOG4( "Message %s of size %lu was sent to %p",
pMessage->ToString().c_str(), (unsigned long)pMessage->GetSerializedLength(), pSession->m_Peer->data );
}

View File

@ -139,7 +139,7 @@ CStr CCloseRequestMessage::ToString( void ) const
void CMessageSocket::Push(CNetMessage *msg)
{
NET_LOG2( "CMessageSocket::Push(): %hs", msg->ToString().c_str() );
NET_LOG2( "CMessageSocket::Push(): %s", msg->ToString().c_str() );
m_OutQ.Lock();
m_OutQ.push_back(msg);
@ -222,7 +222,7 @@ void CMessageSocket::StartWriteNextMessage()
PS_RESULT res=Write(m_pWrBuffer, hdr.m_MsgLength+HEADER_LENGTH);
if (res != PS_OK)
{
NET_LOG2( "CMessageSocket::StartWriteNextMessage(): %hs", res );
NET_LOG2( "CMessageSocket::StartWriteNextMessage(): %s", res );
// Queue Error Message
m_InQ.Lock();
@ -246,7 +246,7 @@ void CMessageSocket::StartWriteNextMessage()
void CMessageSocket::WriteComplete(PS_RESULT ec)
{
NET_LOG2( "CMessageSocket::WriteComplete(): %hs", ec );
NET_LOG2( "CMessageSocket::WriteComplete(): %s", ec );
if (ec == PS_OK)
{
@ -285,7 +285,7 @@ void CMessageSocket::StartReadHeader()
PS_RESULT res=Read(m_pRdBuffer, HEADER_LENGTH);
if (res != PS_OK)
{
NET_LOG2( "CMessageSocket::StartReadHeader(): %hs", res );
NET_LOG2( "CMessageSocket::StartReadHeader(): %s", res );
// Push an error message
CScopeLock scopeLock(m_InQ.m_Mutex);
@ -319,7 +319,7 @@ void CMessageSocket::StartReadMessage()
PS_RESULT res=Read(m_pRdBuffer+HEADER_LENGTH, hdr.m_MsgLength);
if (res != PS_OK)
{
NET_LOG2( "CMessageSocket::StartReadMessage(): %hs", res );
NET_LOG2( "CMessageSocket::StartReadMessage(): %s", res );
// Queue an error message
CScopeLock scopeLock(m_InQ);
@ -330,7 +330,7 @@ void CMessageSocket::StartReadMessage()
void CMessageSocket::ReadComplete(PS_RESULT ec)
{
NET_LOG3( "CMessageSocket::ReadComplete(%ls): %hs", m_ReadingData ? L"data":L"header", ec );
NET_LOG3( "CMessageSocket::ReadComplete(%ls): %s", m_ReadingData ? L"data":L"header", ec );
// Check if we were reading header or message
// If header:
@ -368,7 +368,7 @@ void CMessageSocket::OnMessage(CNetMessage *pMsg)
{
m_InQ.Lock();
m_InQ.push_back(pMsg);
NET_LOG2( "CMessageSocket::OnMessage(): %hs", pMsg->ToString().c_str() );
NET_LOG2( "CMessageSocket::OnMessage(): %s", pMsg->ToString().c_str() );
NET_LOG2( "CMessageSocket::OnMessage(): Queue size now %lu", (unsigned long)m_InQ.size() );
m_InQ.Unlock();
}

View File

@ -37,7 +37,7 @@ void CServerSocket::OnRead()
{
// All errors are non-critical, so no need to do anything special besides
// not calling OnAccept [ shouldn't be, that is ;-) ]
NET_LOG2( "CServerSocket::OnRead(): PreAccept returned an error: %hs", res );
NET_LOG2( "CServerSocket::OnRead(): PreAccept returned an error: %s", res );
}
}

View File

@ -160,7 +160,7 @@ CStr CSocketAddress::GetString() const
if (m_Union.m_Family == IPv4)
{
sprintf(convBuf, "%d.%d.%d.%d",
sprintf_s(convBuf, ARRAY_SIZE(convBuf), "%d.%d.%d.%d",
m_Union.m_IPv4.sin_addr.s_addr&0xff,
(m_Union.m_IPv4.sin_addr.s_addr>>8)&0xff,
(m_Union.m_IPv4.sin_addr.s_addr>>16)&0xff,
@ -369,7 +369,7 @@ PS_RESULT CSocketBase::Read(void *buf, size_t len, size_t *bytesRead)
case ETIMEDOUT:*/
default:
Network_GetErrorString(error, errbuf, sizeof(errbuf));
NET_LOG3("Read error %hs [%d]", errbuf, error);
NET_LOG3("Read error %s [%d]", errbuf, error);
m_State=SS_UNCONNECTED;
m_Error=GetPS_RESULT(error);
return m_Error;
@ -420,7 +420,7 @@ PS_RESULT CSocketBase::Write(void *buf, size_t len, size_t *bytesWritten)
case EHOSTUNREACH:*/
default:
Network_GetErrorString(err, errbuf, sizeof(errbuf));
NET_LOG3("Write error %hs [%d]", errbuf, err);
NET_LOG3("Write error %s [%d]", errbuf, err);
m_State=SS_UNCONNECTED;
return CONNECTION_BROKEN;
}
@ -579,7 +579,7 @@ bool CSocketBase::ConnectError(CSocketBase *pSocket)
{
pSocket->m_State=SS_UNCONNECTED;
PS_RESULT connErr=GetPS_RESULT(errno);
NET_LOG4("Connect error: %hs [%d:%hs]", connErr, errno, strerror(errno));
NET_LOG4("Connect error: %s [%d:%s]", connErr, errno, strerror(errno));
pSocket->m_Error=connErr;
return true;
}
@ -644,7 +644,7 @@ void CSocketBase::SocketReadable(CSocketBase *pSock)
// success, nRead != 0 means alive stream socket
if (res == -1 && errno != EINVAL)
{
NET_LOG3("RunWaitLoop:ioctl: Connection broken [%d:%hs]", errno, strerror(errno));
NET_LOG3("RunWaitLoop:ioctl: Connection broken [%d:%s]", errno, strerror(errno));
// Don't use API function - we both hold a lock and
// it is unnecessary to SendWaitLoopUpdate at this
// stage
@ -880,7 +880,7 @@ void CSocketBase::RunWaitLoop()
{
ret=GetLastError();
Network_GetErrorString(ret, (LPSTR)&errBuf, 256);
NET_LOG3("RegisterClass: %hs [%d]", errBuf, ret);
NET_LOG3("RegisterClass: %s [%d]", errBuf, ret);
return;
}
@ -891,7 +891,7 @@ void CSocketBase::RunWaitLoop()
{
ret=GetLastError();
Network_GetErrorString(ret, errBuf, sizeof(errBuf));
NET_LOG3("CreateWindowEx: %hs [%d]", errBuf, ret);
NET_LOG3("CreateWindowEx: %s [%d]", errBuf, ret);
return;
}
@ -915,7 +915,7 @@ void CSocketBase::RunWaitLoop()
{
ret=GetLastError();
Network_GetErrorString(ret, errBuf, sizeof(errBuf));
NET_LOG3("GetMessage: %hs [%d]", errBuf, ret);
NET_LOG3("GetMessage: %s [%d]", errBuf, ret);
}
{
TranslateMessage(&msg);

View File

@ -42,7 +42,7 @@ void *CStreamSocket_ConnectThread(void *data)
CSocketAddress addr;
res=CSocketAddress::Resolve(pSock->m_pConnectHost, pSock->m_ConnectPort, addr);
NET_LOG4("CStreamSocket_ConnectThread: Resolve: %hs -> %hs [%hs]", pSock->m_pConnectHost, addr.GetString().c_str(), res);
NET_LOG4("CStreamSocket_ConnectThread: Resolve: %s -> %s [%s]", pSock->m_pConnectHost, addr.GetString().c_str(), res);
if (res == PS_OK)
{
pSock->Initialize();
@ -53,7 +53,7 @@ void *CStreamSocket_ConnectThread(void *data)
pSock->SetOpMask(0);
pSock->SetNonBlocking(false);
res=pSock->Connect(addr);
NET_LOG2("CStreamSocket_ConnectThread: Connect: %hs", res);
NET_LOG2("CStreamSocket_ConnectThread: Connect: %s", res);
}
if (res == PS_OK)
@ -128,7 +128,7 @@ PS_RESULT CStreamSocket::Write(void *buf, size_t len)
}
#define MakeDefaultCallback(_nm) void CStreamSocket::_nm(PS_RESULT error) \
{ NET_LOG2("CStreamSocket::"#_nm"(): %hs", error); }
{ NET_LOG2("CStreamSocket::"#_nm"(): %s", error); }
MakeDefaultCallback(OnClose)
MakeDefaultCallback(ConnectComplete)
@ -173,7 +173,7 @@ void CStreamSocket::OnRead()
((u8 *)m_ReadContext.m_pBuffer)+m_ReadContext.m_Completed,
m_ReadContext.m_Length-m_ReadContext.m_Completed,
&bytes);
NET_LOG4("CStreamSocket::OnRead(): %hs, %lu bytes read of %lu",
NET_LOG4("CStreamSocket::OnRead(): %s, %lu bytes read of %lu",
res, (unsigned long)bytes,
(unsigned long)(m_ReadContext.m_Length-m_ReadContext.m_Completed));
if (res != PS_OK)

View File

@ -30,7 +30,7 @@ Examples:
The following shows several examples of traditional ANSI vs UNICODE.
// ANSI
LPCSTR str = "PI";
printf( "%hs = %fn", str, 3.1459f );
printf( "%s = %fn", str, 3.1459f );
// UNICODE
LPCWSTR str = L"PI";

View File

@ -355,7 +355,7 @@ bool CConfigDB::WriteFile(EConfigNamespace ns, bool useVFS, const CStrW& path)
TConfigMap &map=m_Map[ns];
for(TConfigMap::const_iterator it = map.begin(); it != map.end(); ++it)
{
pos += sprintf(pos, "%hs = \"%hs\"\n", it->first.c_str(), it->second[0].m_String.c_str());
pos += sprintf(pos, "%s = \"%s\"\n", it->first.c_str(), it->second[0].m_String.c_str());
}
const size_t len = pos - (char*)buf.get();

View File

@ -110,10 +110,7 @@ CStr CProfileNodeTable::GetName()
CStr CProfileNodeTable::GetTitle()
{
char buf[512];
snprintf(buf, sizeof(buf), "Profiling Information for: %hs (Time in node: %.3f msec/frame)", node->GetName(), node->GetFrameTime() * 1000.0f );
buf[sizeof(buf)-1] = '\0';
sprintf_s(buf, ARRAY_SIZE(buf), "Profiling Information for: %s (Time in node: %.3f msec/frame)", node->GetName(), node->GetFrameTime() * 1000.0f );
return buf;
}
@ -167,14 +164,13 @@ CStr CProfileNodeTable::GetCellText(size_t row, size_t col)
}
if (col == 2)
snprintf(buf, sizeof(buf), "%.3f", unlogged * 1000.0f);
sprintf_s(buf, sizeof(buf), "%.3f", unlogged * 1000.0f);
else if (col == 3)
snprintf(buf, sizeof(buf), "%.1f", unlogged / g_Profiler.GetRoot()->GetFrameTime());
sprintf_s(buf, sizeof(buf), "%.1f", unlogged / g_Profiler.GetRoot()->GetFrameTime());
else if (col == 4)
snprintf(buf, sizeof(buf), "%.1f", unlogged * 100.0f / g_Profiler.GetRoot()->GetFrameTime());
sprintf_s(buf, sizeof(buf), "%.1f", unlogged * 100.0f / g_Profiler.GetRoot()->GetFrameTime());
else if (col == 5)
snprintf(buf, sizeof(buf), "%ld", unlogged_mallocs);
buf[sizeof(buf)-1] = '\0';
sprintf_s(buf, sizeof(buf), "%ld", unlogged_mallocs);
return CStr(buf);
}
@ -187,25 +183,24 @@ CStr CProfileNodeTable::GetCellText(size_t row, size_t col)
case 1:
#ifdef PROFILE_AMORTIZE
snprintf(buf, sizeof(buf), "%.3f", child->GetFrameCalls());
sprintf_s(buf, ARRAY_SIZE(buf), "%.3f", child->GetFrameCalls());
#else
snprintf(buf, sizeof(buf), "%d", child->GetFrameCalls());
sprintf_s(buf, sizeof(buf), "%d", child->GetFrameCalls());
#endif
break;
case 2:
snprintf(buf, sizeof(buf), "%.3f", child->GetFrameTime() * 1000.0f);
sprintf_s(buf, ARRAY_SIZE(buf), "%.3f", child->GetFrameTime() * 1000.0f);
break;
case 3:
snprintf(buf, sizeof(buf), "%.1f", child->GetFrameTime() * 100.0 / g_Profiler.GetRoot()->GetFrameTime());
sprintf_s(buf, ARRAY_SIZE(buf), "%.1f", child->GetFrameTime() * 100.0 / g_Profiler.GetRoot()->GetFrameTime());
break;
case 4:
snprintf(buf, sizeof(buf), "%.1f", child->GetFrameTime() * 100.0 / node->GetFrameTime());
sprintf_s(buf, ARRAY_SIZE(buf), "%.1f", child->GetFrameTime() * 100.0 / node->GetFrameTime());
break;
case 5:
snprintf(buf, sizeof(buf), "%ld", child->GetFrameMallocs());
sprintf_s(buf, ARRAY_SIZE(buf), "%ld", child->GetFrameMallocs());
break;
}
buf[sizeof(buf)-1] = '\0';
return CStr(buf);
}

View File

@ -90,11 +90,11 @@ void WriteSystemInfo()
}
// OS
fprintf(f, "OS : %hs %hs (%hs)\n", un.sysname, un.release, un.version);
fprintf(f, "OS : %s %s (%s)\n", un.sysname, un.release, un.version);
// CPU
const CpuTopology* topology = cpu_topology_Detect();
fprintf(f, "CPU : %hs, %hs (%dx%dx%d)", un.machine, cpu_IdentifierString(), (int)cpu_topology_NumPackages(topology), (int)cpu_topology_CoresPerPackage(topology), (int)cpu_topology_LogicalPerCore(topology));
fprintf(f, "CPU : %s, %s (%dx%dx%d)", un.machine, cpu_IdentifierString(), (int)cpu_topology_NumPackages(topology), (int)cpu_topology_CoresPerPackage(topology), (int)cpu_topology_LogicalPerCore(topology));
const double cpu_freq = os_cpu_ClockFrequency();
if(cpu_freq != 0.0f)
{
@ -111,7 +111,7 @@ void WriteSystemInfo()
// graphics
fprintf(f, "Graphics Card : %ls\n", gfx_card);
fprintf(f, "OpenGL Drivers : %hs; %ls\n", glGetString(GL_VERSION), gfx_drv_ver);
fprintf(f, "OpenGL Drivers : %s; %ls\n", glGetString(GL_VERSION), gfx_drv_ver);
fprintf(f, "Video Mode : %dx%d:%d@%d\n", g_xres, g_yres, g_bpp, g_freq);
// sound
@ -129,7 +129,7 @@ void WriteSystemInfo()
(void)gethostname(hostname, sizeof(hostname)-1);
// -1 makes sure it's 0-terminated. if the function fails,
// we display "(unknown)" and will skip IP output below.
fprintf(f, "Network Name : %hs", hostname);
fprintf(f, "Network Name : %s", hostname);
{
// ignore exception here - see https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=114032
@ -147,7 +147,7 @@ void WriteSystemInfo()
// separate entries but avoid trailing comma
if(i != 0)
fprintf(f, ", ");
fprintf(f, "%hs", inet_ntoa(*ips[i]));
fprintf(f, "%s", inet_ntoa(*ips[i]));
}
fprintf(f, ")");
}
@ -159,7 +159,7 @@ no_ip:
// OpenGL extensions (write them last, since it's a lot of text)
const char* exts = ogl_ExtensionString();
if (!exts) exts = "{unknown}";
fprintf(f, "\nOpenGL Extensions: \n%hs\n", SplitExts(exts).c_str());
fprintf(f, "\nOpenGL Extensions: \n%s\n", SplitExts(exts).c_str());
fclose(f);
f = 0;

View File

@ -249,7 +249,7 @@ template<typename T, JSClass* ScriptType> bool CJSCollection<T, ScriptType>::Get
if( ToPrimitive( g_ScriptingHost.GetContext(), m, Storage ) )
return( true );
JS_ReportError( g_ScriptingHost.GetContext(), "Only objects of type %hs can be stored in this collection.", ScriptType->name );
JS_ReportError( g_ScriptingHost.GetContext(), "Only objects of type %s can be stored in this collection.", ScriptType->name );
return( false );
}
@ -263,7 +263,7 @@ template<typename T, JSClass* ScriptType> JSBool CJSCollection<T, ScriptType>::T
return( JS_FALSE ); // That's odd; we've lost the pointer.
wchar_t buffer[256];
int len = swprintf_s( buffer, ARRAY_SIZE(buffer), L"[object Collection: %hs: %d members]", ScriptType->name, set->size() );
int len = swprintf_s( buffer, ARRAY_SIZE(buffer), L"[object Collection: %s: %d members]", ScriptType->name, set->size() );
buffer[255] = 0;
if (len < 0 || len > 255) len=255;
utf16string u16str(buffer, buffer+len);

View File

@ -149,31 +149,31 @@ CStr CRendererStatsTable::GetCellText(size_t row, size_t col)
case Row_Counter:
if (col == 0)
return "counter";
snprintf(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_Counter);
sprintf_s(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_Counter);
return buf;
case Row_DrawCalls:
if (col == 0)
return "# draw calls";
snprintf(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_DrawCalls);
sprintf_s(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_DrawCalls);
return buf;
case Row_TerrainTris:
if (col == 0)
return "# terrain tris";
snprintf(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_TerrainTris);
sprintf_s(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_TerrainTris);
return buf;
case Row_ModelTris:
if (col == 0)
return "# model tris";
snprintf(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_ModelTris);
sprintf_s(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_ModelTris);
return buf;
case Row_BlendSplats:
if (col == 0)
return "# blend splats";
snprintf(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_BlendSplats);
sprintf_s(buf, sizeof(buf), "%lu", (unsigned long)Stats.m_BlendSplats);
return buf;
default:

View File

@ -187,7 +187,7 @@ JSBool GetEntityTemplate( JSContext* cx, JSObject*, uintN argc, jsval* argv, jsv
CEntityTemplate* v = g_EntityTemplateCollection.GetTemplate( templateName, player );
if( !v )
{
JS_ReportError( cx, "No such template: %hs", CStr(templateName).c_str() );
JS_ReportError( cx, "No such template: %s", CStr(templateName).c_str() );
return( JS_TRUE );
}
@ -1064,13 +1064,13 @@ JSBool GetBuildTimestamp( JSContext* cx, JSObject*, uintN argc, jsval* argv, jsv
switch(mode)
{
case -1:
sprintf_s(buf, ARRAY_SIZE(buf), "%hs %hs (%ls)", __DATE__, __TIME__, svn_revision);
sprintf_s(buf, ARRAY_SIZE(buf), "%s %s (%ls)", __DATE__, __TIME__, svn_revision);
break;
case 0:
sprintf_s(buf, ARRAY_SIZE(buf), "%hs", __DATE__);
sprintf_s(buf, ARRAY_SIZE(buf), "%s", __DATE__);
break;
case 1:
sprintf_s(buf, ARRAY_SIZE(buf), "%hs", __TIME__);
sprintf_s(buf, ARRAY_SIZE(buf), "%s", __TIME__);
break;
case 2:
sprintf_s(buf, ARRAY_SIZE(buf), "%ls", svn_revision);

View File

@ -146,7 +146,7 @@ const u8* HEntity::Deserialize(const u8* buffer, const u8* UNUSED(end))
HEntity::operator CStr() const
{
char buf[16];
sprintf(buf, "Entity#%04x", m_handle);
sprintf_s(buf, ARRAY_SIZE(buf), "Entity#%04x", m_handle);
return CStr(buf);
}

View File

@ -183,7 +183,7 @@ JSBool CEntity::Construct( JSContext* cx, JSObject* UNUSED(obj), uintN argc, jsv
if( !baseEntity )
{
*rval = JSVAL_NULL;
JS_ReportError( cx, "No such template: %hs", CStr8(templateName).c_str() );
JS_ReportError( cx, "No such template: %s", CStr8(templateName).c_str() );
return( JS_TRUE );
}

View File

@ -35,7 +35,7 @@ MessagePasserImpl::MessagePasserImpl()
while (tries++ < 16) // some arbitrary cut-off point to avoid infinite loops
{
static char name[64];
sprintf(name, "/wfg-atlas-msgpass-%d-%d",
sprintf_s(name, ARRAY_SIZE(name), "/wfg-atlas-msgpass-%d-%d",
(int)rand(1, 1000), (int)(time(0)%1000));
sem_t* sem = sem_open(name, O_CREAT | O_EXCL, 0700, 0);