forked from mirrors/0ad
refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of strings/paths; allows safe+easy join via operator/ and convenient case-insensitive comparison via operator==, avoids NativePathFromString, similar to boost::filesystem) - NativePath -> OsPath - add hash and To/FromJSVal for Path - add TS_ASSERT_PATH_EQUALS - replace _wfopen_s with sys_OpenFile - remove obsolete SortFiles/Directories This was SVN commit r9107.
This commit is contained in:
@@ -120,6 +120,15 @@ template<> bool ScriptInterface::FromJSVal<std::wstring>(JSContext* cx, jsval v,
|
||||
return true;
|
||||
}
|
||||
|
||||
template<> bool ScriptInterface::FromJSVal<Path>(JSContext* cx, jsval v, Path& out)
|
||||
{
|
||||
std::wstring string;
|
||||
if(!FromJSVal(cx, v, string))
|
||||
return false;
|
||||
out = string;
|
||||
return true;
|
||||
}
|
||||
|
||||
template<> bool ScriptInterface::FromJSVal<std::string>(JSContext* cx, jsval v, std::string& out)
|
||||
{
|
||||
WARN_IF_NOT(JSVAL_IS_STRING(v) || JSVAL_IS_NUMBER(v), v); // allow implicit number conversions
|
||||
@@ -242,6 +251,11 @@ template<> jsval ScriptInterface::ToJSVal<std::wstring>(JSContext* cx, const std
|
||||
return JSVAL_VOID;
|
||||
}
|
||||
|
||||
template<> jsval ScriptInterface::ToJSVal<Path>(JSContext* cx, const Path& val)
|
||||
{
|
||||
return ToJSVal(cx, val.string());
|
||||
}
|
||||
|
||||
template<> jsval ScriptInterface::ToJSVal<std::string>(JSContext* cx, const std::string& val)
|
||||
{
|
||||
JSString* str = JS_NewStringCopyN(cx, val.c_str(), val.length());
|
||||
|
||||
Reference in New Issue
Block a user