|
@@ -399,6 +399,10 @@ SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror)
|
|
|
|
|
|
|
|
SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror)
|
|
SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror)
|
|
|
{
|
|
{
|
|
|
|
|
+ //at least one entry must exist in order for us to push it as the environment
|
|
|
|
|
+ if(sq_gettop(v) == 0)
|
|
|
|
|
+ return sq_throwerror(v,_SC("environment table expected"));
|
|
|
|
|
+
|
|
|
if(SQ_SUCCEEDED(sqstd_loadfile(v,filename,printerror))) {
|
|
if(SQ_SUCCEEDED(sqstd_loadfile(v,filename,printerror))) {
|
|
|
sq_push(v,-2);
|
|
sq_push(v,-2);
|
|
|
if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue))) {
|
|
if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue))) {
|
|
@@ -468,6 +472,8 @@ static const SQRegFunction iolib_funcs[]={
|
|
|
|
|
|
|
|
SQRESULT sqstd_register_iolib(HSQUIRRELVM v)
|
|
SQRESULT sqstd_register_iolib(HSQUIRRELVM v)
|
|
|
{
|
|
{
|
|
|
|
|
+ if(sq_gettype(v,-1) != OT_TABLE)
|
|
|
|
|
+ return sq_throwerror(v,_SC("table expected"));
|
|
|
SQInteger top = sq_gettop(v);
|
|
SQInteger top = sq_gettop(v);
|
|
|
//create delegate
|
|
//create delegate
|
|
|
declare_stream(v,_SC("file"),(SQUserPointer)SQSTD_FILE_TYPE_TAG,_SC("std_file"),_file_methods,iolib_funcs);
|
|
declare_stream(v,_SC("file"),(SQUserPointer)SQSTD_FILE_TYPE_TAG,_SC("std_file"),_file_methods,iolib_funcs);
|