fix name behavior on BB/GC lobby interactions

This commit is contained in:
Martin Michelsen
2023-09-10 09:27:56 -07:00
parent 7585eaeae5
commit 80f79aa13c
3 changed files with 32 additions and 11 deletions
+16
View File
@@ -515,6 +515,22 @@ std::basic_string<CharT> add_language_marker(
return ret;
}
template <typename CharT, size_t Count>
void add_language_marker_inplace(ptext<CharT, Count>& s, char16_t marker) {
static_assert(Count >= 2, "cannot use add_language_marker_inplace on ptext with fewer than 2 characters");
if ((s.items[0] == '\t') && (s.items[1] != 'C')) {
return;
}
size_t end_offset = std::min<size_t>(s.len() + 2, Count);
for (size_t z = end_offset; z > 2; z--) {
s[z - 1] = s[z - 3];
}
s[0] = '\t';
s[1] = marker;
}
template <typename CharT>
const CharT* remove_language_marker(const CharT* s) {
if ((s[0] != '\t') || (s[1] == 'C')) {