return n;\r
}\r
\r
-\r
SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output)\r
{\r
const SQChar *format;\r
addlen = (sq_getsize(v,nparam)*sizeof(SQChar))+((w+1)*sizeof(SQChar));\r
valtype = 's';\r
break;\r
- case 'i': case 'd': case 'c':case 'o': case 'u': case 'x': case 'X':\r
+ case 'i': case 'd': case 'o': case 'u': case 'x': case 'X':\r
+#ifdef _SQ64\r
+ {\r
+ size_t flen = scstrlen(fmt);\r
+ SQInteger fpos = flen - 1;\r
+ SQChar f = fmt[fpos];\r
+ SQChar *prec = (SQChar *)_PRINT_INT_PREC;\r
+ while(*prec != _SC('\0')) {\r
+ fmt[fpos++] = *prec++;\r
+ }\r
+ fmt[fpos++] = f;\r
+ fmt[fpos++] = _SC('\0');\r
+ }\r
+#endif\r
+ case 'c':\r
if(SQ_FAILED(sq_getinteger(v,nparam,&ti))) \r
return sq_throwerror(v,_SC("integer expected for the specified format"));\r
addlen = (ADDITIONAL_FORMAT_SPACE)+((w+1)*sizeof(SQChar));\r
return;\r
}\r
const SQChar *t = &str[len-1];\r
- while(t != str && scisspace(*t)) { t--; }\r
- *end = t+1;\r
+ while(t >= str && scisspace(*t)) { t--; }\r
+ *end = t + 1;\r
}\r
\r
static SQInteger _string_strip(HSQUIRRELVM v)\r
_DECL_REX_FUNC(_typeof,1,_SC("x")),\r
{0,0}\r
};\r
+#undef _DECL_REX_FUNC\r
\r
#define _DECL_FUNC(name,nparams,pmask) {_SC(#name),_string_##name,nparams,pmask}\r
static SQRegFunction stringlib_funcs[]={\r
_DECL_FUNC(split,3,_SC(".ss")),\r
{0,0}\r
};\r
+#undef _DECL_FUNC\r
\r
\r
SQInteger sqstd_register_stringlib(HSQUIRRELVM v)\r
sq_newclosure(v,f.f,0);\r
sq_setparamscheck(v,f.nparamscheck,f.typemask);\r
sq_setnativeclosurename(v,-1,f.name);\r
- sq_createslot(v,-3);\r
+ sq_newslot(v,-3,SQFalse);\r
i++;\r
}\r
- sq_createslot(v,-3);\r
+ sq_newslot(v,-3,SQFalse);\r
\r
i = 0;\r
while(stringlib_funcs[i].name!=0)\r
sq_newclosure(v,stringlib_funcs[i].f,0);\r
sq_setparamscheck(v,stringlib_funcs[i].nparamscheck,stringlib_funcs[i].typemask);\r
sq_setnativeclosurename(v,-1,stringlib_funcs[i].name);\r
- sq_createslot(v,-3);\r
+ sq_newslot(v,-3,SQFalse);\r
i++;\r
}\r
return 1;\r