fix(ui): keep pre-release suffix in splash-screen firmware version

All three UI variants stripped the displayed version at the FIRST
dash, assuming it was always the commit-hash separator build.sh
appends. A tag containing its own dash (e.g. v1.21-rc1) has that
dash earlier, so the splash screen silently dropped "-rc1" and
showed just "v1.21" — no way to tell an RC from the final release
on-device.

Strip at the LAST dash instead, since build.sh always appends the
commit hash as the final segment regardless of how many dashes the
tag itself has.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MarekZegare4
2026-06-25 19:01:24 +02:00
co-authored by Claude Opus 4.8
parent 362d4e9baa
commit bd048d9e25
3 changed files with 13 additions and 8 deletions
+5 -2
View File
@@ -54,9 +54,12 @@ public:
strncpy(_version_info, MESHCORE_VERSION, sizeof(_version_info) - 1);
_version_info[sizeof(_version_info) - 1] = '\0';
// Solo firmware version: strip commit hash suffix (v1.15-solo.1-abcdef -> v1.15)
// Solo firmware version: strip the commit-hash suffix build.sh always
// appends as the LAST dash-segment (v1.15-solo.1-abcdef -> v1.15-solo.1).
// Must be the last dash, not the first: a tag like v1.21-rc1 has a dash
// of its own before the commit hash gets appended.
const char *ver = FIRMWARE_VERSION;
const char *dash = strchr(ver, '-');
const char *dash = strrchr(ver, '-');
int plen = dash ? (int)(dash - ver) : (int)strlen(ver);
if (plen >= (int)sizeof(_solo_ver)) plen = sizeof(_solo_ver) - 1;
memcpy(_solo_ver, ver, plen);