diff options
author | madmaxoft <github@xoft.cz> | 2013-08-08 12:14:47 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-08-08 12:14:47 +0200 |
commit | ae9334bd9323ec7b21a77e33517a87c4a8a80580 (patch) | |
tree | b91554553a2b5c674e87af5e812b99dcab222fa3 /squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp | |
parent | Merge pull request #50 from ravenscroftj/feature/drowning (diff) | |
parent | Removed squirrel mentions from makefile (diff) | |
download | cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar.gz cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar.bz2 cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar.lz cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar.xz cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.tar.zst cuberite-ae9334bd9323ec7b21a77e33517a87c4a8a80580.zip |
Diffstat (limited to 'squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp')
-rw-r--r-- | squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp b/squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp deleted file mode 100644 index 309139fec..000000000 --- a/squirrel_3_0_1_stable/sqstdlib/sqstdsystem.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* see copyright notice in squirrel.h */ -#include <squirrel.h> -#include <time.h> -#include <stdlib.h> -#include <stdio.h> -#include <sqstdsystem.h> - -#ifdef SQUNICODE -#include <wchar.h> -#define scgetenv _wgetenv -#define scsystem _wsystem -#define scasctime _wasctime -#define scremove _wremove -#define screname _wrename -#else -#define scgetenv getenv -#define scsystem system -#define scasctime asctime -#define scremove remove -#define screname rename -#endif - -static SQInteger _system_getenv(HSQUIRRELVM v) -{ - const SQChar *s; - if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){ - sq_pushstring(v,scgetenv(s),-1); - return 1; - } - return 0; -} - - -static SQInteger _system_system(HSQUIRRELVM v) -{ - const SQChar *s; - if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){ - sq_pushinteger(v,scsystem(s)); - return 1; - } - return sq_throwerror(v,_SC("wrong param")); -} - - -static SQInteger _system_clock(HSQUIRRELVM v) -{ - sq_pushfloat(v,((SQFloat)clock())/(SQFloat)CLOCKS_PER_SEC); - return 1; -} - -static SQInteger _system_time(HSQUIRRELVM v) -{ - time_t t; - time(&t); - sq_pushinteger(v,*((SQInteger *)&t)); - return 1; -} - -static SQInteger _system_remove(HSQUIRRELVM v) -{ - const SQChar *s; - sq_getstring(v,2,&s); - if(scremove(s)==-1) - return sq_throwerror(v,_SC("remove() failed")); - return 0; -} - -static SQInteger _system_rename(HSQUIRRELVM v) -{ - const SQChar *oldn,*newn; - sq_getstring(v,2,&oldn); - sq_getstring(v,3,&newn); - if(screname(oldn,newn)==-1) - return sq_throwerror(v,_SC("rename() failed")); - return 0; -} - -static void _set_integer_slot(HSQUIRRELVM v,const SQChar *name,SQInteger val) -{ - sq_pushstring(v,name,-1); - sq_pushinteger(v,val); - sq_rawset(v,-3); -} - -static SQInteger _system_date(HSQUIRRELVM v) -{ - time_t t; - SQInteger it; - SQInteger format = 'l'; - if(sq_gettop(v) > 1) { - sq_getinteger(v,2,&it); - t = it; - if(sq_gettop(v) > 2) { - sq_getinteger(v,3,(SQInteger*)&format); - } - } - else { - time(&t); - } - tm *date; - if(format == 'u') - date = gmtime(&t); - else - date = localtime(&t); - if(!date) - return sq_throwerror(v,_SC("crt api failure")); - sq_newtable(v); - _set_integer_slot(v, _SC("sec"), date->tm_sec); - _set_integer_slot(v, _SC("min"), date->tm_min); - _set_integer_slot(v, _SC("hour"), date->tm_hour); - _set_integer_slot(v, _SC("day"), date->tm_mday); - _set_integer_slot(v, _SC("month"), date->tm_mon); - _set_integer_slot(v, _SC("year"), date->tm_year+1900); - _set_integer_slot(v, _SC("wday"), date->tm_wday); - _set_integer_slot(v, _SC("yday"), date->tm_yday); - return 1; -} - - - -#define _DECL_FUNC(name,nparams,pmask) {_SC(#name),_system_##name,nparams,pmask} -static SQRegFunction systemlib_funcs[]={ - _DECL_FUNC(getenv,2,_SC(".s")), - _DECL_FUNC(system,2,_SC(".s")), - _DECL_FUNC(clock,0,NULL), - _DECL_FUNC(time,1,NULL), - _DECL_FUNC(date,-1,_SC(".nn")), - _DECL_FUNC(remove,2,_SC(".s")), - _DECL_FUNC(rename,3,_SC(".ss")), - {0,0} -}; -#undef _DECL_FUNC - -SQInteger sqstd_register_systemlib(HSQUIRRELVM v) -{ - SQInteger i=0; - while(systemlib_funcs[i].name!=0) - { - sq_pushstring(v,systemlib_funcs[i].name,-1); - sq_newclosure(v,systemlib_funcs[i].f,0); - sq_setparamscheck(v,systemlib_funcs[i].nparamscheck,systemlib_funcs[i].typemask); - sq_setnativeclosurename(v,-1,systemlib_funcs[i].name); - sq_newslot(v,-3,SQFalse); - i++; - } - return 1; -} |