From 2024ef81ef9bae2dc81c07e813ab7f7f6f50ce9a Mon Sep 17 00:00:00 2001 From: flb Date: Sat, 30 Jan 2021 00:24:46 +0100 Subject: [PATCH] stat(path) before trying to launch a nro --- nx_main/loaders/builtin.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/nx_main/loaders/builtin.c b/nx_main/loaders/builtin.c index 666444b..97ca734 100644 --- a/nx_main/loaders/builtin.c +++ b/nx_main/loaders/builtin.c @@ -68,15 +68,26 @@ static void launchFile(const char* path, argData_s* args) init_args(argBuf, sizeof(argBuf)-1, args->buf, sizeof(args->buf)); - Result rc = envSetNextLoad(path, argBuf); - if(R_FAILED(rc)) { + struct stat st; + + if (stat(path, &st) == -1) { memset(msg, 0, sizeof(msg)); - snprintf(msg, sizeof(msg)-1, "%s\n2%03d-%04d", textGetString(StrId_AppLaunchError), R_MODULE(rc), R_DESCRIPTION(rc)); + snprintf(msg, sizeof(msg)-1, "Couldn't find executable: %s", path); menuCreateMsgBox(780, 300, msg); + menuScan("."); } else { - uiExitLoop(); + Result rc = envSetNextLoad(path, argBuf); + if(R_FAILED(rc)) { + memset(msg, 0, sizeof(msg)); + snprintf(msg, sizeof(msg)-1, "%s\n2%03d-%04d", textGetString(StrId_AppLaunchError), R_MODULE(rc), R_DESCRIPTION(rc)); + + menuCreateMsgBox(780, 300, msg); + } + else { + uiExitLoop(); + } } }