forked from alterware/iw6-mod
Added helper function to strip colors from strings.
This commit is contained in:
parent
adc33983a8
commit
e5a547650c
@ -140,6 +140,32 @@ namespace utils::string
|
|||||||
*out = '\0';
|
*out = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string strip(std::string_view sv, bool strip_default_color)
|
||||||
|
{
|
||||||
|
std::string in(sv);
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i + 1 < in.size();)
|
||||||
|
{
|
||||||
|
if (in[i] == '^' && static_cast<std::size_t>(in[i + 1] - '0') < 0xC)
|
||||||
|
{
|
||||||
|
if (in[i + 1] != '7' || strip_default_color)
|
||||||
|
{
|
||||||
|
in.erase(in.begin() + i, in.begin() + i + 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return in;
|
||||||
|
}
|
||||||
|
|
||||||
std::string convert(const std::wstring& wstr)
|
std::string convert(const std::wstring& wstr)
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "memory.hpp"
|
#include "memory.hpp"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include <span>
|
||||||
|
|
||||||
template <class Type, size_t n>
|
template <class Type, size_t n>
|
||||||
constexpr auto ARRAY_COUNT(Type(&)[n]) { return n; }
|
constexpr auto ARRAY_COUNT(Type(&)[n]) { return n; }
|
||||||
@ -91,6 +92,7 @@ namespace utils::string
|
|||||||
std::string get_clipboard_data();
|
std::string get_clipboard_data();
|
||||||
|
|
||||||
void strip(const char* in, char* out, size_t max);
|
void strip(const char* in, char* out, size_t max);
|
||||||
|
std::string strip(std::string_view sv, bool strip_default_color = false);
|
||||||
|
|
||||||
std::string convert(const std::wstring& wstr);
|
std::string convert(const std::wstring& wstr);
|
||||||
std::wstring convert(const std::string& str);
|
std::wstring convert(const std::string& str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user