diff --git a/src/common/str_utils.cpp b/src/common/str_utils.cpp index b80f2788ec..3950faafae 100644 --- a/src/common/str_utils.cpp +++ b/src/common/str_utils.cpp @@ -261,6 +261,23 @@ void StringBuilder::append_string(const char *str) { *current_pos_ = '\0'; } +void StringBuilder::append_string_view(string_view_utf8 str) { + + while (true) { + if (is_problem()) { + return; + } + + char b; + str.copyToRAM(&b, 1); + if (b == '\0') { + return; + } + + append_char(b); + } +} + void StringBuilder::append_printf(const char *fmt, ...) { va_list args; va_start(args, fmt); diff --git a/src/common/str_utils.hpp b/src/common/str_utils.hpp index aa981061cb..b4847f0847 100644 --- a/src/common/str_utils.hpp +++ b/src/common/str_utils.hpp @@ -384,6 +384,8 @@ class StringBuilder { void append_string(const char *str); + void append_string_view(string_view_utf8 str); + /// Appends text to the builder, using vsnprintf under the hood. void append_printf(const char *fmt, ...); diff --git a/src/gui/MItem_menus.cpp b/src/gui/MItem_menus.cpp index c0928a2bdf..bf9ca23968 100644 --- a/src/gui/MItem_menus.cpp +++ b/src/gui/MItem_menus.cpp @@ -1,5 +1,6 @@ #include "MItem_menus.hpp" #include "ScreenHandler.hpp" +#include "str_utils.hpp" #include