This commit is contained in:
2023-06-08 22:27:37 +00:00
parent 0c6929893b
commit 09b1d46986
4 changed files with 19 additions and 12 deletions

View File

@@ -1033,13 +1033,18 @@ JSValue duk_cmd(JSContext *js, JSValueConst this, int argc, JSValueConst *argv)
return str2js(tex_get_path(js2sprite(argv[1])->tex));
case 117:
str = JS_ToCString(js, argv[1]);
ret = JS_NewInt64(js, script_runfile(str));
ret = script_runfile(str);
break;
case 118:
str = JS_ToCString(js,argv[1]);
return bb2js(text_bb(str, js2number(argv[2]), js2number(argv[3]), 1.0));
break;
case 119:
str = JS_ToCString(js, argv[1]);
ret = JS_NewInt64(js, file_mod_secs(str));
break;
}
if (str)

View File

@@ -131,15 +131,18 @@ int script_dofile(const char *file) {
return file_mod_secs(file);
}
int script_runfile(const char *file)
JSValue script_runfile(const char *file)
{
const char *script = slurp_text(file);
int bufsize = strlen(script)+50;
char scriptbuffer[bufsize];
snprintf(scriptbuffer,bufsize, "(function(){%s})()", script);
script_run(scriptbuffer,file);
JSValue obj = JS_Eval(js, script, strlen(script), file, JS_EVAL_FLAGS);
js_print_exception(obj);
free(script);
return file_mod_secs(file);
return obj;
}
/* env is an object in the scripting environment;

View File

@@ -20,7 +20,7 @@ void script_startup();
void script_init();
void script_run(const char *script, const char *file);
int script_dofile(const char *file);
int script_runfile(const char *file);
JSValue script_runfile(const char *file);
void script_update(double dt);
void script_draw();