1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-11-08 13:11:54 +00:00

remove memory(), add cwd(), #REQUIRE SD

This commit is contained in:
suchmememanyskill 2021-07-27 21:05:32 +02:00
parent 40d8bb8ba4
commit 797a5f95b5
6 changed files with 23 additions and 20 deletions

View file

@ -1,4 +1,5 @@
#REQUIRE KEYS
#REQUIRE SD
p=println
pe={pause() exit()}
fwstr={fw=maj.str()+"."+min.str()+"."+pat.str()}

View file

@ -73,6 +73,7 @@ void DeleteFile(char *path, FSEntry_t entry){
}
void RunScriptString(char *str, u32 size){
TConf.scriptCWD = "sd:/";
gfx_clearscreen();
ParserRet_t ret = parseScript(str, size);
setStaticVars(&ret.staticVarHolder);
@ -89,7 +90,8 @@ void RunScript(char *path, FSEntry_t entry){
char *thing = CombinePaths(path, entry.name);
u32 size;
char *script = sd_file_read(thing, &size);
free(thing);
TConf.scriptCWD = thing;
if (!script)
return;
@ -97,19 +99,6 @@ void RunScript(char *path, FSEntry_t entry){
return;
gfx_clearscreen();
/*
scriptCtx_t ctx = createScriptCtx();
ctx.script = runLexer(script, size);
free(script);
dictVectorAdd(&ctx.varDict, newDict(CpyStr("_CWD"), (newVar(StringType, 0, .stringType = path))));
dictVectorAdd(&ctx.varDict, newDict(CpyStr("_EMU"), (newVar(IntType, 0, emu_cfg.enabled))));
printError(mainLoop(&ctx));
freeDictVector(&ctx.varDict);
lexarVectorClear(&ctx.script);
*/
ParserRet_t ret = parseScript(script, size);
free(script);
@ -121,6 +110,7 @@ void RunScript(char *path, FSEntry_t entry){
exitFunction(ret.main.operations.data, ret.main.operations.count);
vecFree(ret.staticVarHolder);
vecFree(ret.main.operations);
free(thing);
}
void RenameFile(char *path, FSEntry_t entry){

View file

@ -15,6 +15,7 @@
#ifndef WIN32
#include "../tegraexplorer/tconf.h"
#include <storage/nx_sd.h>
#endif
static inline int isValidWord(char c) {
@ -123,6 +124,17 @@ u8 nextToken(char** inPtr, void** val) {
return Token_Fatal_Err;
}
}
else if (!memcmp(in + 9, "SD", 2)) {
#ifdef WIN32
u8 gotSd = 0;
#else
u8 gotSd = sd_mount();
#endif
if (!gotSd){
printScriptError(SCRIPT_LEXER_FATAL, "Sd required.");
return Token_Fatal_Err;
}
}
}
while (*in && *in != '\n')

View file

@ -453,6 +453,10 @@ ClassFunction(stdEscPaths){
return newStringVariablePtr(EscapeFolder(args[0]->string.value), 0, 1);
}
ClassFunction(stdGetCwd){
return newStringVariablePtr(CpyStr(TConf.scriptCWD), 0, 1);
}
#else
#define STUBBED(name) ClassFunction(name) { return newIntVariablePtr(0); }
@ -529,9 +533,9 @@ ClassFunctionTableEntry_t standardFunctionDefenitions[] = {
{"setpixel", stdSetPixel, 3, threeIntsStd},
{"setpixels", stdSetPixels, 5, threeIntsStd},
{"emu", stdHasEmu, 0, 0},
{"cwd", stdGetCwd, 0, 0},
{"clear", stdClear, 0, 0},
{"timer", stdGetMs, 0, 0},
{"memory", stdGetMemUsage, 0, 0},
{"pause", stdPauseMask, 1, threeIntsStd},
{"pause", stdPause, 0, 0},
{"color", stdColor, 1, threeIntsStd},

View file

@ -126,11 +126,6 @@ void ViewCredits(){
if (hidRead()->r)
gfx_printf("%k\"I'm not even sure if it works\" - meme", COLOR_ORANGE);
heap_monitor_t a = {0};
heap_monitor(&a, false);
gfx_printf("\nUsed: %d\nTotal: %d\n", a.used, a.total);
hidWait();
}

View file

@ -34,6 +34,7 @@ typedef struct {
};
const char *pkg1ID;
u8 pkg1ver;
char *scriptCWD;
} TConf_t;
extern TConf_t TConf;