From 32b7218723a1b769411e6b645071da869734f12b Mon Sep 17 00:00:00 2001 From: philmoz Date: Wed, 22 Oct 2025 11:45:24 +1100 Subject: [PATCH] fix(firmware): apps / tools list may show duplicate entries (#6703) --- radio/src/gui/colorlcd/radio/radio_tools.cpp | 6 ++++++ radio/src/gui/common/stdlcd/radio_tools.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/radio/src/gui/colorlcd/radio/radio_tools.cpp b/radio/src/gui/colorlcd/radio/radio_tools.cpp index bb5dd6922..41fbfa667 100644 --- a/radio/src/gui/colorlcd/radio/radio_tools.cpp +++ b/radio/src/gui/colorlcd/radio/radio_tools.cpp @@ -126,6 +126,12 @@ static void scanLuaTools(std::list& scripts) char path[FF_MAX_LFN + 1] = SCRIPTS_TOOLS_PATH "/"; strcat(path, fno.fname); if (inFolder) { + // check if .lua with same name exists - skip folder to avoid duplicate entries + auto plen = strlen(path); + strcat(path, ".lua"); + if (f_stat(path, nullptr) == FR_OK) + continue; + path[plen] = 0; strcat(path, "/main.lua"); if (f_stat(path, nullptr) != FR_OK) continue; diff --git a/radio/src/gui/common/stdlcd/radio_tools.cpp b/radio/src/gui/common/stdlcd/radio_tools.cpp index 108f41ced..9ffbc85dc 100644 --- a/radio/src/gui/common/stdlcd/radio_tools.cpp +++ b/radio/src/gui/common/stdlcd/radio_tools.cpp @@ -147,6 +147,12 @@ void menuRadioTools(event_t event) char path[FF_MAX_LFN + 1] = SCRIPTS_TOOLS_PATH "/"; strcat(path, fno.fname); if (inFolder) { + // check if .lua with same name exists - skip folder to avoid duplicate entries + auto plen = strlen(path); + strcat(path, ".lua"); + if (f_stat(path, nullptr) == FR_OK) + continue; + path[plen] = 0; strcat(path, "/main.lua"); if (f_stat(path, nullptr) != FR_OK) continue;