Some Linux wchar_t/jschar stuff.. JS uses UTF-16/UCS-2, so convert wchar strings before handing to JS unicode interfaces.

This was SVN commit r902.
This commit is contained in:
Simon Brenner 2004-08-05 12:04:20 +00:00
parent f01b1ebb58
commit b986ff832b
2 changed files with 5 additions and 3 deletions

View File

@ -115,7 +115,7 @@ void CBoundObjectProperty<CStrW>::set( const jsval value )
jsval CBoundObjectProperty<CStrW>::tojsval()
{
return( STRING_TO_JSVAL( JS_NewUCStringCopyZ( g_ScriptingHost.getContext(), m_String.c_str() ) ) );
return( STRING_TO_JSVAL( JS_NewUCStringCopyZ( g_ScriptingHost.getContext(), utf16().c_str() ) ) );
}
CBoundObjectProperty<CVector3D>::CBoundObjectProperty()

View File

@ -136,8 +136,10 @@ JSBool JSI_Entity::toString( JSContext* cx, JSObject* obj, uintN argc, jsval* ar
HEntity* e = (HEntity*)JS_GetPrivate( cx, obj );
wchar_t buffer[256];
_snwprintf( buffer, 256, L"[object Entity: \"%ls\" (%ls)]", (const wchar_t*)(*e)->m_name, (const wchar_t*)(*e)->m_base->m_name );
swprintf( buffer, 256, L"[object Entity: \"%ls\" (%ls)]", (*e)->m_name.c_str(), (*e)->m_base->m_name.c_str() );
buffer[255] = 0;
*rval = STRING_TO_JSVAL( JS_NewUCStringCopyZ( cx, buffer ) );
utf16_t utfbuf[256];
std::copy(buffer, buffer+256, utfbuf);
*rval = STRING_TO_JSVAL( JS_NewUCStringCopyZ( cx, utfbuf ) );
return( JS_TRUE );
}