Browse Source

Add a string method to read unsigned shorts form it.

mingodad 8 năm trước cách đây
mục cha
commit
95d5c02a69
1 tập tin đã thay đổi với 13 bổ sung0 xóa
  1. 13 0
      SquiLu/squirrel/sqbaselib.cpp

+ 13 - 0
SquiLu/squirrel/sqbaselib.cpp

@@ -2119,6 +2119,18 @@ static SQRESULT string_uchar(HSQUIRRELVM v)
 	return 1;
 	return 1;
 }
 }
 
 
+static SQRESULT string_ushort(HSQUIRRELVM v)
+{
+    SQ_FUNC_VARS_NO_TOP(v);
+    SQ_GET_STRING(v, 1, str);
+    SQ_GET_INTEGER(v, 2, char_idx);
+    if(((char_idx*((SQInteger)sizeof(SQUnsignedInt16))) >= str_size) || (char_idx < 0))
+    {
+        return sq_throwerror(v, _SC("index out of range"));
+    }
+	sq_pushinteger(v, (((SQUnsignedInt16*)str)[char_idx]));
+	return 1;
+}
 
 
 #define MMIN(a,b) (((a)<(b))?(a):(b))
 #define MMIN(a,b) (((a)<(b))?(a):(b))
 static SQRESULT string_edit_distance (HSQUIRRELVM v) {
 static SQRESULT string_edit_distance (HSQUIRRELVM v) {
@@ -2366,6 +2378,7 @@ SQRegFunction SQSharedState::_string_default_delegate_funcz[]={
 	{_SC("isxdigit"),string_isxdigit,2, _SC("si")},
 	{_SC("isxdigit"),string_isxdigit,2, _SC("si")},
 	{_SC("count_char"),string_count_char,2, _SC("si")},
 	{_SC("count_char"),string_count_char,2, _SC("si")},
 	{_SC("uchar"),string_uchar,2, _SC("si")},
 	{_SC("uchar"),string_uchar,2, _SC("si")},
+	{_SC("ushort"),string_ushort,2, _SC("si")},
 	{_SC("edit_distance"),string_edit_distance,-2, _SC("ssi")},
 	{_SC("edit_distance"),string_edit_distance,-2, _SC("ssi")},
 	{_SC("mod_97_10"),string_mod_97_10,1, _SC("s")},
 	{_SC("mod_97_10"),string_mod_97_10,1, _SC("s")},
 	{_SC("iso88959_to_utf8"),string_iso88959_to_utf8,1, _SC("s")},
 	{_SC("iso88959_to_utf8"),string_iso88959_to_utf8,1, _SC("s")},