hekate: update to ini_check_special_section

This commit is contained in:
CTCaer 2022-12-19 05:43:48 +02:00
parent 0b1bb521d8
commit f49aecad19

View file

@ -350,7 +350,7 @@ failed_sd_mount:
static void _launch_ini_list() static void _launch_ini_list()
{ {
u8 max_entries = 61; u8 max_entries = 61;
char *payload_path = NULL; char *special_path = NULL;
char *emummc_path = NULL; char *emummc_path = NULL;
ini_sec_t *cfg_sec = NULL; ini_sec_t *cfg_sec = NULL;
@ -404,9 +404,9 @@ static void _launch_ini_list()
cfg_sec = (ini_sec_t *)tui_do_menu(&menu); cfg_sec = (ini_sec_t *)tui_do_menu(&menu);
payload_path = ini_check_payload_section(cfg_sec); special_path = ini_check_special_section(cfg_sec);
if (cfg_sec && !payload_path) if (cfg_sec && !special_path)
{ {
LIST_FOREACH_ENTRY(ini_kv_t, kv, &cfg_sec->kvs, link) LIST_FOREACH_ENTRY(ini_kv_t, kv, &cfg_sec->kvs, link)
{ {
@ -438,10 +438,11 @@ parse_failed:
if (!cfg_sec) if (!cfg_sec)
goto out; goto out;
if (payload_path) if (special_path)
{ {
// Try to launch Payload. // Try to launch Payload or L4T.
_launch_payload(payload_path, false, true); if (special_path != (char *)-1)
_launch_payload(special_path, false, true);
} }
else if (!hos_launch(cfg_sec)) else if (!hos_launch(cfg_sec))
{ {
@ -461,7 +462,7 @@ out:
static void _launch_config() static void _launch_config()
{ {
u8 max_entries = 61; u8 max_entries = 61;
char *payload_path = NULL; char *special_path = NULL;
char *emummc_path = NULL; char *emummc_path = NULL;
ini_sec_t *cfg_sec = NULL; ini_sec_t *cfg_sec = NULL;
@ -534,9 +535,9 @@ static void _launch_config()
cfg_sec = (ini_sec_t *)tui_do_menu(&menu); cfg_sec = (ini_sec_t *)tui_do_menu(&menu);
payload_path = ini_check_payload_section(cfg_sec); special_path = ini_check_special_section(cfg_sec);
if (cfg_sec && !payload_path) if (cfg_sec && !special_path)
{ {
LIST_FOREACH_ENTRY(ini_kv_t, kv, &cfg_sec->kvs, link) LIST_FOREACH_ENTRY(ini_kv_t, kv, &cfg_sec->kvs, link)
{ {
@ -569,10 +570,11 @@ parse_failed:
goto out; goto out;
} }
if (payload_path) if (special_path)
{ {
// Try to launch Payload. // Try to launch Payload or L4T.
_launch_payload(payload_path, false, true); if (special_path != (char *)-1)
_launch_payload(special_path, false, true);
} }
else if (!hos_launch(cfg_sec)) else if (!hos_launch(cfg_sec))
{ {
@ -884,6 +886,9 @@ skip_list:
if (!cfg_sec) if (!cfg_sec)
goto out; // No configurations or auto boot is disabled. goto out; // No configurations or auto boot is disabled.
// Check if entry is payload or l4t special case.
char *special_path = ini_check_special_section(cfg_sec);
if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH) && h_cfg.bootwait) if (!(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH) && h_cfg.bootwait)
{ {
u32 fsize; u32 fsize;
@ -962,12 +967,11 @@ skip_list:
else if (btn_read_vol() == BTN_VOL_DOWN) // 0s bootwait VOL- check. else if (btn_read_vol() == BTN_VOL_DOWN) // 0s bootwait VOL- check.
goto out; goto out;
char *payload_path = ini_check_payload_section(cfg_sec); if (special_path)
if (payload_path)
{ {
// Try to launch Payload. // Try to launch Payload or L4T.
_launch_payload(payload_path, false, false); if (special_path != (char *)-1)
_launch_payload(special_path, false, false);
goto error; goto error;
} }
else else