mirror of https://github.com/OpenTTD/OpenTTD
Codechange: use const for std::string_view where appropriate
parent
78250c3bba
commit
af25eecc15
|
@ -308,7 +308,7 @@ SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
|
||||||
const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
|
const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
|
||||||
const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
||||||
SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err, SQInteger len = -1);
|
SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err, SQInteger len = -1);
|
||||||
inline SQRESULT sq_throwerror(HSQUIRRELVM v, const std::string_view err) { return sq_throwerror(v, err.data(), err.size()); }
|
inline SQRESULT sq_throwerror(HSQUIRRELVM v, std::string_view err) { return sq_throwerror(v, err.data(), err.size()); }
|
||||||
void sq_reseterror(HSQUIRRELVM v);
|
void sq_reseterror(HSQUIRRELVM v);
|
||||||
void sq_getlasterror(HSQUIRRELVM v);
|
void sq_getlasterror(HSQUIRRELVM v);
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ public:
|
||||||
* @param name the blitter to select.
|
* @param name the blitter to select.
|
||||||
* @post Sets the blitter so GetCurrentBlitter() returns it too.
|
* @post Sets the blitter so GetCurrentBlitter() returns it too.
|
||||||
*/
|
*/
|
||||||
static Blitter *SelectBlitter(const std::string_view name)
|
static Blitter *SelectBlitter(std::string_view name)
|
||||||
{
|
{
|
||||||
BlitterFactory *b = GetBlitterFactory(name);
|
BlitterFactory *b = GetBlitterFactory(name);
|
||||||
if (b == nullptr) return nullptr;
|
if (b == nullptr) return nullptr;
|
||||||
|
@ -109,17 +109,17 @@ public:
|
||||||
* @param name the blitter factory to select.
|
* @param name the blitter factory to select.
|
||||||
* @return The blitter factory, or nullptr when there isn't one with the wanted name.
|
* @return The blitter factory, or nullptr when there isn't one with the wanted name.
|
||||||
*/
|
*/
|
||||||
static BlitterFactory *GetBlitterFactory(const std::string_view name)
|
static BlitterFactory *GetBlitterFactory(std::string_view name)
|
||||||
{
|
{
|
||||||
#if defined(DEDICATED)
|
#if defined(DEDICATED)
|
||||||
const std::string_view default_blitter = "null";
|
static const std::string_view default_blitter = "null";
|
||||||
#elif defined(WITH_COCOA)
|
#elif defined(WITH_COCOA)
|
||||||
const std::string_view default_blitter = "32bpp-anim";
|
static const std::string_view default_blitter = "32bpp-anim";
|
||||||
#else
|
#else
|
||||||
const std::string_view default_blitter = "8bpp-optimized";
|
static const std::string_view default_blitter = "8bpp-optimized";
|
||||||
#endif
|
#endif
|
||||||
if (GetBlitters().empty()) return nullptr;
|
if (GetBlitters().empty()) return nullptr;
|
||||||
const std::string_view bname = name.empty() ? default_blitter : name;
|
std::string_view bname = name.empty() ? default_blitter : name;
|
||||||
|
|
||||||
for (auto &it : GetBlitters()) {
|
for (auto &it : GetBlitters()) {
|
||||||
BlitterFactory *b = it.second;
|
BlitterFactory *b = it.second;
|
||||||
|
|
|
@ -684,7 +684,7 @@ static bool ConClearBuffer(std::span<std::string_view> argv)
|
||||||
* Network Core Console Commands
|
* Network Core Console Commands
|
||||||
**********************************/
|
**********************************/
|
||||||
|
|
||||||
static bool ConKickOrBan(std::string_view arg, bool ban, const std::string_view reason)
|
static bool ConKickOrBan(std::string_view arg, bool ban, std::string_view reason)
|
||||||
{
|
{
|
||||||
uint n;
|
uint n;
|
||||||
|
|
||||||
|
@ -1241,7 +1241,7 @@ static bool ConSchedule(std::span<std::string_view> argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We only support a single script scheduled, so we tell the user what's happening if there was already one. */
|
/* We only support a single script scheduled, so we tell the user what's happening if there was already one. */
|
||||||
const std::string_view filename = std::string_view(argv[2]);
|
std::string_view filename = std::string_view(argv[2]);
|
||||||
if (!_scheduled_monthly_script.empty() && filename == _scheduled_monthly_script) {
|
if (!_scheduled_monthly_script.empty() && filename == _scheduled_monthly_script) {
|
||||||
IConsolePrint(CC_INFO, "Script file '{}' was already scheduled to execute at the start of next calendar month.", filename);
|
IConsolePrint(CC_INFO, "Script file '{}' was already scheduled to execute at the start of next calendar month.", filename);
|
||||||
} else if (!_scheduled_monthly_script.empty() && filename != _scheduled_monthly_script) {
|
} else if (!_scheduled_monthly_script.empty() && filename != _scheduled_monthly_script) {
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
|
|
||||||
#include "../safeguards.h"
|
#include "../safeguards.h"
|
||||||
|
|
||||||
const std::string_view StringConsumer::WHITESPACE_NO_NEWLINE = "\t\v\f\r ";
|
/* static */ const std::string_view StringConsumer::WHITESPACE_NO_NEWLINE = "\t\v\f\r ";
|
||||||
const std::string_view StringConsumer::WHITESPACE_OR_NEWLINE = "\t\n\v\f\r ";
|
/* static */ const std::string_view StringConsumer::WHITESPACE_OR_NEWLINE = "\t\n\v\f\r ";
|
||||||
|
|
||||||
/* static */ void StringConsumer::LogError(std::string &&msg)
|
/* static */ void StringConsumer::LogError(std::string &&msg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1152,7 +1152,7 @@ uint FileScanner::Scan(std::string_view extension, Subdirectory sd, bool tars, b
|
||||||
* @return the number of found files, i.e. the number of times that
|
* @return the number of found files, i.e. the number of times that
|
||||||
* AddFile returned true.
|
* AddFile returned true.
|
||||||
*/
|
*/
|
||||||
uint FileScanner::Scan(const std::string_view extension, const std::string &directory, bool recursive)
|
uint FileScanner::Scan(std::string_view extension, const std::string &directory, bool recursive)
|
||||||
{
|
{
|
||||||
std::string path(directory);
|
std::string path(directory);
|
||||||
AppendPathSeparator(path);
|
AppendPathSeparator(path);
|
||||||
|
|
14
src/fios.cpp
14
src/fios.cpp
|
@ -100,7 +100,7 @@ void FileList::BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperati
|
||||||
* or a numbered entry into the filename list.
|
* or a numbered entry into the filename list.
|
||||||
* @return The information on the file, or \c nullptr if the file is not available.
|
* @return The information on the file, or \c nullptr if the file is not available.
|
||||||
*/
|
*/
|
||||||
const FiosItem *FileList::FindItem(const std::string_view file)
|
const FiosItem *FileList::FindItem(std::string_view file)
|
||||||
{
|
{
|
||||||
for (const auto &it : *this) {
|
for (const auto &it : *this) {
|
||||||
const FiosItem *item = ⁢
|
const FiosItem *item = ⁢
|
||||||
|
@ -240,7 +240,7 @@ bool FiosDelete(std::string_view name)
|
||||||
return FioRemove(FiosMakeSavegameName(name));
|
return FioRemove(FiosMakeSavegameName(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef std::tuple<FiosType, std::string> FiosGetTypeAndNameProc(SaveLoadOperation fop, const std::string &filename, const std::string_view ext);
|
typedef std::tuple<FiosType, std::string> FiosGetTypeAndNameProc(SaveLoadOperation fop, const std::string &filename, std::string_view ext);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scanner to scan for a particular type of FIOS file.
|
* Scanner to scan for a particular type of FIOS file.
|
||||||
|
@ -398,7 +398,7 @@ static std::string GetFileTitle(const std::string &file, Subdirectory subdir)
|
||||||
* @see FiosGetFileList
|
* @see FiosGetFileList
|
||||||
* @see FiosGetSavegameList
|
* @see FiosGetSavegameList
|
||||||
*/
|
*/
|
||||||
std::tuple<FiosType, std::string> FiosGetSavegameListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext)
|
std::tuple<FiosType, std::string> FiosGetSavegameListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext)
|
||||||
{
|
{
|
||||||
/* Show savegame files
|
/* Show savegame files
|
||||||
* .SAV OpenTTD saved game
|
* .SAV OpenTTD saved game
|
||||||
|
@ -447,7 +447,7 @@ void FiosGetSavegameList(SaveLoadOperation fop, bool show_dirs, FileList &file_l
|
||||||
* @see FiosGetFileList
|
* @see FiosGetFileList
|
||||||
* @see FiosGetScenarioList
|
* @see FiosGetScenarioList
|
||||||
*/
|
*/
|
||||||
std::tuple<FiosType, std::string> FiosGetScenarioListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext)
|
std::tuple<FiosType, std::string> FiosGetScenarioListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext)
|
||||||
{
|
{
|
||||||
/* Show scenario files
|
/* Show scenario files
|
||||||
* .SCN OpenTTD style scenario file
|
* .SCN OpenTTD style scenario file
|
||||||
|
@ -488,7 +488,7 @@ void FiosGetScenarioList(SaveLoadOperation fop, bool show_dirs, FileList &file_l
|
||||||
FiosGetFileList(fop, show_dirs, &FiosGetScenarioListCallback, subdir, file_list);
|
FiosGetFileList(fop, show_dirs, &FiosGetScenarioListCallback, subdir, file_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<FiosType, std::string> FiosGetHeightmapListCallback(SaveLoadOperation, const std::string &file, const std::string_view ext)
|
std::tuple<FiosType, std::string> FiosGetHeightmapListCallback(SaveLoadOperation, const std::string &file, std::string_view ext)
|
||||||
{
|
{
|
||||||
/* Show heightmap files
|
/* Show heightmap files
|
||||||
* .PNG PNG Based heightmap files
|
* .PNG PNG Based heightmap files
|
||||||
|
@ -553,7 +553,7 @@ void FiosGetHeightmapList(SaveLoadOperation fop, bool show_dirs, FileList &file_
|
||||||
* @param file Name of the file to check.
|
* @param file Name of the file to check.
|
||||||
* @return a FIOS_TYPE_JSON type of the found file, FIOS_TYPE_INVALID if not a valid JSON file, and the title of the file (if any).
|
* @return a FIOS_TYPE_JSON type of the found file, FIOS_TYPE_INVALID if not a valid JSON file, and the title of the file (if any).
|
||||||
*/
|
*/
|
||||||
static std::tuple<FiosType, std::string> FiosGetTownDataListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext)
|
static std::tuple<FiosType, std::string> FiosGetTownDataListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext)
|
||||||
{
|
{
|
||||||
if (fop == SLO_LOAD) {
|
if (fop == SLO_LOAD) {
|
||||||
if (StrEqualsIgnoreCase(ext, ".json")) {
|
if (StrEqualsIgnoreCase(ext, ".json")) {
|
||||||
|
@ -715,7 +715,7 @@ FiosNumberedSaveName::FiosNumberedSaveName(const std::string &prefix) : prefix(p
|
||||||
static std::string _prefix; ///< Static as the lambda needs access to it.
|
static std::string _prefix; ///< Static as the lambda needs access to it.
|
||||||
|
|
||||||
/* Callback for FiosFileScanner. */
|
/* Callback for FiosFileScanner. */
|
||||||
static FiosGetTypeAndNameProc *proc = [](SaveLoadOperation, const std::string &file, const std::string_view ext) {
|
static FiosGetTypeAndNameProc *proc = [](SaveLoadOperation, const std::string &file, std::string_view ext) {
|
||||||
if (StrEqualsIgnoreCase(ext, ".sav") && file.starts_with(_prefix)) return std::tuple(FIOS_TYPE_FILE, std::string{});
|
if (StrEqualsIgnoreCase(ext, ".sav") && file.starts_with(_prefix)) return std::tuple(FIOS_TYPE_FILE, std::string{});
|
||||||
return std::tuple(FIOS_TYPE_INVALID, std::string{});
|
return std::tuple(FIOS_TYPE_INVALID, std::string{});
|
||||||
};
|
};
|
||||||
|
|
|
@ -87,7 +87,7 @@ struct FiosItem {
|
||||||
class FileList : public std::vector<FiosItem> {
|
class FileList : public std::vector<FiosItem> {
|
||||||
public:
|
public:
|
||||||
void BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop, bool show_dirs);
|
void BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop, bool show_dirs);
|
||||||
const FiosItem *FindItem(const std::string_view file);
|
const FiosItem *FindItem(std::string_view file);
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SortingBits : uint8_t {
|
enum SortingBits : uint8_t {
|
||||||
|
@ -116,9 +116,9 @@ bool FiosDelete(std::string_view name);
|
||||||
std::string FiosMakeHeightmapName(std::string_view name);
|
std::string FiosMakeHeightmapName(std::string_view name);
|
||||||
std::string FiosMakeSavegameName(std::string_view name);
|
std::string FiosMakeSavegameName(std::string_view name);
|
||||||
|
|
||||||
std::tuple<FiosType, std::string> FiosGetSavegameListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext);
|
std::tuple<FiosType, std::string> FiosGetSavegameListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext);
|
||||||
std::tuple<FiosType, std::string> FiosGetScenarioListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext);
|
std::tuple<FiosType, std::string> FiosGetScenarioListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext);
|
||||||
std::tuple<FiosType, std::string> FiosGetHeightmapListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext);
|
std::tuple<FiosType, std::string> FiosGetHeightmapListCallback(SaveLoadOperation fop, const std::string &file, std::string_view ext);
|
||||||
|
|
||||||
void ScanScenarios();
|
void ScanScenarios();
|
||||||
std::optional<std::string_view> FindScenario(const ContentInfo &ci, bool md5sum);
|
std::optional<std::string_view> FindScenario(const ContentInfo &ci, bool md5sum);
|
||||||
|
|
|
@ -228,9 +228,9 @@ static void LoadSpriteTables()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void RealChangeBlitter(const std::string_view repl_blitter)
|
static void RealChangeBlitter(std::string_view repl_blitter)
|
||||||
{
|
{
|
||||||
const std::string_view cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
|
std::string_view cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
|
||||||
if (cur_blitter == repl_blitter) return;
|
if (cur_blitter == repl_blitter) return;
|
||||||
|
|
||||||
Debug(driver, 1, "Switching blitter from '{}' to '{}'... ", cur_blitter, repl_blitter);
|
Debug(driver, 1, "Switching blitter from '{}' to '{}'... ", cur_blitter, repl_blitter);
|
||||||
|
@ -299,7 +299,7 @@ static bool SwitchNewGRFBlitter()
|
||||||
};
|
};
|
||||||
|
|
||||||
const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION);
|
const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION);
|
||||||
const std::string_view cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
|
std::string_view cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
|
||||||
|
|
||||||
for (const auto &replacement_blitter : replacement_blitters) {
|
for (const auto &replacement_blitter : replacement_blitters) {
|
||||||
if (animation_wanted && (replacement_blitter.animation == 0)) continue;
|
if (animation_wanted && (replacement_blitter.animation == 0)) continue;
|
||||||
|
|
|
@ -169,7 +169,7 @@ void Packet::Send_uint64(uint64_t data)
|
||||||
* the string + '\0'. No size-byte or something.
|
* the string + '\0'. No size-byte or something.
|
||||||
* @param data The string to send
|
* @param data The string to send
|
||||||
*/
|
*/
|
||||||
void Packet::Send_string(const std::string_view data)
|
void Packet::Send_string(std::string_view data)
|
||||||
{
|
{
|
||||||
assert(this->CanWriteToPacket(data.size() + 1));
|
assert(this->CanWriteToPacket(data.size() + 1));
|
||||||
this->buffer.insert(this->buffer.end(), data.begin(), data.end());
|
this->buffer.insert(this->buffer.end(), data.begin(), data.end());
|
||||||
|
|
|
@ -68,7 +68,7 @@ public:
|
||||||
void Send_uint16(uint16_t data);
|
void Send_uint16(uint16_t data);
|
||||||
void Send_uint32(uint32_t data);
|
void Send_uint32(uint32_t data);
|
||||||
void Send_uint64(uint64_t data);
|
void Send_uint64(uint64_t data);
|
||||||
void Send_string(const std::string_view data);
|
void Send_string(std::string_view data);
|
||||||
void Send_buffer(const std::vector<uint8_t> &data);
|
void Send_buffer(const std::vector<uint8_t> &data);
|
||||||
std::span<const uint8_t> Send_bytes(const std::span<const uint8_t> span);
|
std::span<const uint8_t> Send_bytes(const std::span<const uint8_t> span);
|
||||||
|
|
||||||
|
|
|
@ -458,7 +458,7 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendChat(NetworkAction action
|
||||||
* Send a notification indicating the rcon command has completed.
|
* Send a notification indicating the rcon command has completed.
|
||||||
* @param command The original command sent.
|
* @param command The original command sent.
|
||||||
*/
|
*/
|
||||||
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRconEnd(const std::string_view command)
|
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRconEnd(std::string_view command)
|
||||||
{
|
{
|
||||||
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_RCON_END);
|
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_RCON_END);
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRconEnd(const std::string
|
||||||
* @param colour The colour of the text.
|
* @param colour The colour of the text.
|
||||||
* @param result The result of the command.
|
* @param result The result of the command.
|
||||||
*/
|
*/
|
||||||
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRcon(uint16_t colour, const std::string_view result)
|
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRcon(uint16_t colour, std::string_view result)
|
||||||
{
|
{
|
||||||
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_RCON);
|
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_RCON);
|
||||||
|
|
||||||
|
@ -526,7 +526,7 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_PING(Packet &p)
|
||||||
* @param origin The origin of the string.
|
* @param origin The origin of the string.
|
||||||
* @param string The string that's put on the console.
|
* @param string The string that's put on the console.
|
||||||
*/
|
*/
|
||||||
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendConsole(const std::string_view origin, const std::string_view string)
|
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendConsole(std::string_view origin, std::string_view string)
|
||||||
{
|
{
|
||||||
/* If the length of both strings, plus the 2 '\0' terminations and 3 bytes of the packet
|
/* If the length of both strings, plus the 2 '\0' terminations and 3 bytes of the packet
|
||||||
* are bigger than the MTU, just ignore the message. Better safe than sorry. It should
|
* are bigger than the MTU, just ignore the message. Better safe than sorry. It should
|
||||||
|
@ -547,7 +547,7 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendConsole(const std::string
|
||||||
* Send GameScript JSON output.
|
* Send GameScript JSON output.
|
||||||
* @param json The JSON string.
|
* @param json The JSON string.
|
||||||
*/
|
*/
|
||||||
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendGameScript(const std::string_view json)
|
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendGameScript(std::string_view json)
|
||||||
{
|
{
|
||||||
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_GAMESCRIPT);
|
auto p = std::make_unique<Packet>(this, ADMIN_PACKET_SERVER_GAMESCRIPT);
|
||||||
|
|
||||||
|
@ -997,7 +997,7 @@ void NetworkAdminChat(NetworkAction action, DestType desttype, ClientID client_i
|
||||||
* @param colour_code The colour of the string.
|
* @param colour_code The colour of the string.
|
||||||
* @param string The string to show.
|
* @param string The string to show.
|
||||||
*/
|
*/
|
||||||
void NetworkServerSendAdminRcon(AdminID admin_index, TextColour colour_code, const std::string_view string)
|
void NetworkServerSendAdminRcon(AdminID admin_index, TextColour colour_code, std::string_view string)
|
||||||
{
|
{
|
||||||
ServerNetworkAdminSocketHandler::Get(admin_index)->SendRcon(colour_code, string);
|
ServerNetworkAdminSocketHandler::Get(admin_index)->SendRcon(colour_code, string);
|
||||||
}
|
}
|
||||||
|
@ -1007,7 +1007,7 @@ void NetworkServerSendAdminRcon(AdminID admin_index, TextColour colour_code, con
|
||||||
* @param origin the origin of the message.
|
* @param origin the origin of the message.
|
||||||
* @param string the message as printed on the console.
|
* @param string the message as printed on the console.
|
||||||
*/
|
*/
|
||||||
void NetworkAdminConsole(const std::string_view origin, const std::string_view string)
|
void NetworkAdminConsole(std::string_view origin, std::string_view string)
|
||||||
{
|
{
|
||||||
for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) {
|
for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) {
|
||||||
if (as->update_frequency[ADMIN_UPDATE_CONSOLE].Test(AdminUpdateFrequency::Automatic)) {
|
if (as->update_frequency[ADMIN_UPDATE_CONSOLE].Test(AdminUpdateFrequency::Automatic)) {
|
||||||
|
@ -1020,7 +1020,7 @@ void NetworkAdminConsole(const std::string_view origin, const std::string_view s
|
||||||
* Send GameScript JSON to the admin network (if they did opt in for the respective update).
|
* Send GameScript JSON to the admin network (if they did opt in for the respective update).
|
||||||
* @param json The JSON data as received from the GameScript.
|
* @param json The JSON data as received from the GameScript.
|
||||||
*/
|
*/
|
||||||
void NetworkAdminGameScript(const std::string_view json)
|
void NetworkAdminGameScript(std::string_view json)
|
||||||
{
|
{
|
||||||
for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) {
|
for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) {
|
||||||
if (as->update_frequency[ADMIN_UPDATE_GAMESCRIPT].Test(AdminUpdateFrequency::Automatic)) {
|
if (as->update_frequency[ADMIN_UPDATE_GAMESCRIPT].Test(AdminUpdateFrequency::Automatic)) {
|
||||||
|
|
|
@ -69,12 +69,12 @@ public:
|
||||||
NetworkRecvStatus SendCompanyStats();
|
NetworkRecvStatus SendCompanyStats();
|
||||||
|
|
||||||
NetworkRecvStatus SendChat(NetworkAction action, DestType desttype, ClientID client_id, std::string_view msg, int64_t data);
|
NetworkRecvStatus SendChat(NetworkAction action, DestType desttype, ClientID client_id, std::string_view msg, int64_t data);
|
||||||
NetworkRecvStatus SendRcon(uint16_t colour, const std::string_view command);
|
NetworkRecvStatus SendRcon(uint16_t colour, std::string_view command);
|
||||||
NetworkRecvStatus SendConsole(const std::string_view origin, const std::string_view command);
|
NetworkRecvStatus SendConsole(std::string_view origin, std::string_view command);
|
||||||
NetworkRecvStatus SendGameScript(const std::string_view json);
|
NetworkRecvStatus SendGameScript(std::string_view json);
|
||||||
NetworkRecvStatus SendCmdNames();
|
NetworkRecvStatus SendCmdNames();
|
||||||
NetworkRecvStatus SendCmdLogging(ClientID client_id, const CommandPacket &cp);
|
NetworkRecvStatus SendCmdLogging(ClientID client_id, const CommandPacket &cp);
|
||||||
NetworkRecvStatus SendRconEnd(const std::string_view command);
|
NetworkRecvStatus SendRconEnd(std::string_view command);
|
||||||
|
|
||||||
static void Send();
|
static void Send();
|
||||||
static void AcceptConnection(SOCKET s, const NetworkAddress &address);
|
static void AcceptConnection(SOCKET s, const NetworkAddress &address);
|
||||||
|
@ -115,9 +115,9 @@ void NetworkAdminCompanyRemove(CompanyID company_id, AdminCompanyRemoveReason bc
|
||||||
|
|
||||||
void NetworkAdminChat(NetworkAction action, DestType desttype, ClientID client_id, std::string_view msg, int64_t data = 0, bool from_admin = false);
|
void NetworkAdminChat(NetworkAction action, DestType desttype, ClientID client_id, std::string_view msg, int64_t data = 0, bool from_admin = false);
|
||||||
void NetworkAdminUpdate(AdminUpdateFrequency freq);
|
void NetworkAdminUpdate(AdminUpdateFrequency freq);
|
||||||
void NetworkServerSendAdminRcon(AdminID admin_index, TextColour colour_code, const std::string_view string);
|
void NetworkServerSendAdminRcon(AdminID admin_index, TextColour colour_code, std::string_view string);
|
||||||
void NetworkAdminConsole(const std::string_view origin, const std::string_view string);
|
void NetworkAdminConsole(std::string_view origin, std::string_view string);
|
||||||
void NetworkAdminGameScript(const std::string_view json);
|
void NetworkAdminGameScript(std::string_view json);
|
||||||
void NetworkAdminCmdLogging(const NetworkClientSocket *owner, const CommandPacket &cp);
|
void NetworkAdminCmdLogging(const NetworkClientSocket *owner, const CommandPacket &cp);
|
||||||
|
|
||||||
#endif /* NETWORK_ADMIN_H */
|
#endif /* NETWORK_ADMIN_H */
|
||||||
|
|
|
@ -1242,7 +1242,7 @@ void NetworkClientsToSpectators(CompanyID cid)
|
||||||
* @param client_name The client name to check for validity.
|
* @param client_name The client name to check for validity.
|
||||||
* @return True iff the name is valid.
|
* @return True iff the name is valid.
|
||||||
*/
|
*/
|
||||||
bool NetworkIsValidClientName(const std::string_view client_name)
|
bool NetworkIsValidClientName(std::string_view client_name)
|
||||||
{
|
{
|
||||||
if (client_name.empty()) return false;
|
if (client_name.empty()) return false;
|
||||||
if (client_name[0] == ' ') return false;
|
if (client_name[0] == ' ') return false;
|
||||||
|
|
|
@ -33,7 +33,7 @@ extern StringList _network_host_list;
|
||||||
extern StringList _network_ban_list;
|
extern StringList _network_ban_list;
|
||||||
|
|
||||||
uint8_t NetworkSpectatorCount();
|
uint8_t NetworkSpectatorCount();
|
||||||
bool NetworkIsValidClientName(const std::string_view client_name);
|
bool NetworkIsValidClientName(std::string_view client_name);
|
||||||
bool NetworkValidateOurClientName();
|
bool NetworkValidateOurClientName();
|
||||||
bool NetworkValidateClientName(std::string &client_name);
|
bool NetworkValidateClientName(std::string &client_name);
|
||||||
bool NetworkValidateServerName(std::string &server_name);
|
bool NetworkValidateServerName(std::string &server_name);
|
||||||
|
|
|
@ -77,7 +77,7 @@ static void FeatureNewName(ByteReader &buf)
|
||||||
uint32_t feature_overlay = generic ? 0 : ((feature + 1) << 16);
|
uint32_t feature_overlay = generic ? 0 : ((feature + 1) << 16);
|
||||||
|
|
||||||
for (; id < endid && buf.HasData(); id++) {
|
for (; id < endid && buf.HasData(); id++) {
|
||||||
const std::string_view name = buf.ReadString();
|
std::string_view name = buf.ReadString();
|
||||||
GrfMsg(8, "FeatureNewName: 0x{:04X} <- {}", id, StrMakeValid(name));
|
GrfMsg(8, "FeatureNewName: 0x{:04X} <- {}", id, StrMakeValid(name));
|
||||||
|
|
||||||
switch (feature) {
|
switch (feature) {
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
* @param name Used for error warnings.
|
* @param name Used for error warnings.
|
||||||
* @return The number of sprites that is going to be skipped.
|
* @return The number of sprites that is going to be skipped.
|
||||||
*/
|
*/
|
||||||
static uint16_t SanitizeSpriteOffset(uint16_t &num, uint16_t offset, int max_sprites, const std::string_view name)
|
static uint16_t SanitizeSpriteOffset(uint16_t &num, uint16_t offset, int max_sprites, std::string_view name)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (offset >= max_sprites) {
|
if (offset >= max_sprites) {
|
||||||
|
|
|
@ -352,7 +352,7 @@ int MacOSStringCompare(std::string_view s1, std::string_view s2)
|
||||||
* @param case_insensitive Search case-insensitive.
|
* @param case_insensitive Search case-insensitive.
|
||||||
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
||||||
*/
|
*/
|
||||||
int MacOSStringContains(const std::string_view str, const std::string_view value, bool case_insensitive)
|
int MacOSStringContains(std::string_view str, std::string_view value, bool case_insensitive)
|
||||||
{
|
{
|
||||||
static bool supported = MacOSVersionIsAtLeast(10, 5, 0);
|
static bool supported = MacOSVersionIsAtLeast(10, 5, 0);
|
||||||
if (!supported) return -1;
|
if (!supported) return -1;
|
||||||
|
|
|
@ -84,7 +84,7 @@ public:
|
||||||
void MacOSResetScriptCache(FontSize size);
|
void MacOSResetScriptCache(FontSize size);
|
||||||
void MacOSSetCurrentLocaleName(std::string_view iso_code);
|
void MacOSSetCurrentLocaleName(std::string_view iso_code);
|
||||||
int MacOSStringCompare(std::string_view s1, std::string_view s2);
|
int MacOSStringCompare(std::string_view s1, std::string_view s2);
|
||||||
int MacOSStringContains(const std::string_view str, const std::string_view value, bool case_insensitive);
|
int MacOSStringContains(std::string_view str, std::string_view value, bool case_insensitive);
|
||||||
|
|
||||||
void MacOSRegisterExternalFont(std::string_view file_path);
|
void MacOSRegisterExternalFont(std::string_view file_path);
|
||||||
|
|
||||||
|
|
|
@ -386,7 +386,7 @@ char *convert_from_fs(const std::wstring_view src, std::span<char> dst_buf)
|
||||||
* @param dst_buf span of valid wide-char buffer that will receive the converted string
|
* @param dst_buf span of valid wide-char buffer that will receive the converted string
|
||||||
* @return pointer to dst_buf. If conversion fails the string is of zero-length
|
* @return pointer to dst_buf. If conversion fails the string is of zero-length
|
||||||
*/
|
*/
|
||||||
wchar_t *convert_to_fs(const std::string_view src, std::span<wchar_t> dst_buf)
|
wchar_t *convert_to_fs(std::string_view src, std::span<wchar_t> dst_buf)
|
||||||
{
|
{
|
||||||
int len = MultiByteToWideChar(CP_UTF8, 0, src.data(), static_cast<int>(src.size()), dst_buf.data(), static_cast<int>(dst_buf.size() - 1U));
|
int len = MultiByteToWideChar(CP_UTF8, 0, src.data(), static_cast<int>(src.size()), dst_buf.data(), static_cast<int>(dst_buf.size() - 1U));
|
||||||
dst_buf[len] = '\0';
|
dst_buf[len] = '\0';
|
||||||
|
@ -476,7 +476,7 @@ int OTTDStringCompare(std::string_view s1, std::string_view s2)
|
||||||
* @param case_insensitive Search case-insensitive.
|
* @param case_insensitive Search case-insensitive.
|
||||||
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
||||||
*/
|
*/
|
||||||
int Win32StringContains(const std::string_view str, const std::string_view value, bool case_insensitive)
|
int Win32StringContains(std::string_view str, std::string_view value, bool case_insensitive)
|
||||||
{
|
{
|
||||||
typedef int (WINAPI *PFNFINDNLSSTRINGEX)(LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, LPINT, LPNLSVERSIONINFO, LPVOID, LPARAM);
|
typedef int (WINAPI *PFNFINDNLSSTRINGEX)(LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, LPINT, LPNLSVERSIONINFO, LPVOID, LPARAM);
|
||||||
static PFNFINDNLSSTRINGEX _FindNLSStringEx = nullptr;
|
static PFNFINDNLSSTRINGEX _FindNLSStringEx = nullptr;
|
||||||
|
|
|
@ -13,10 +13,10 @@
|
||||||
bool MyShowCursor(bool show, bool toggle = false);
|
bool MyShowCursor(bool show, bool toggle = false);
|
||||||
|
|
||||||
char *convert_from_fs(const std::wstring_view src, std::span<char> dst_buf);
|
char *convert_from_fs(const std::wstring_view src, std::span<char> dst_buf);
|
||||||
wchar_t *convert_to_fs(const std::string_view src, std::span<wchar_t> dst_buf);
|
wchar_t *convert_to_fs(std::string_view src, std::span<wchar_t> dst_buf);
|
||||||
|
|
||||||
void Win32SetCurrentLocaleName(const char *iso_code);
|
void Win32SetCurrentLocaleName(const char *iso_code);
|
||||||
int OTTDStringCompare(std::string_view s1, std::string_view s2);
|
int OTTDStringCompare(std::string_view s1, std::string_view s2);
|
||||||
int Win32StringContains(const std::string_view str, const std::string_view value, bool case_insensitive);
|
int Win32StringContains(std::string_view str, std::string_view value, bool case_insensitive);
|
||||||
|
|
||||||
#endif /* WIN32_H */
|
#endif /* WIN32_H */
|
||||||
|
|
|
@ -88,7 +88,7 @@ int ScriptConfig::GetSetting(const std::string &name) const
|
||||||
return (*it).second;
|
return (*it).second;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptConfig::SetSetting(const std::string_view name, int value)
|
void ScriptConfig::SetSetting(std::string_view name, int value)
|
||||||
{
|
{
|
||||||
/* You can only set Script specific settings if an Script is selected. */
|
/* You can only set Script specific settings if an Script is selected. */
|
||||||
if (this->info == nullptr) return;
|
if (this->info == nullptr) return;
|
||||||
|
|
|
@ -122,7 +122,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Set the value of a setting for this config.
|
* Set the value of a setting for this config.
|
||||||
*/
|
*/
|
||||||
void SetSetting(const std::string_view name, int value);
|
void SetSetting(std::string_view name, int value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset all settings to their default value.
|
* Reset all settings to their default value.
|
||||||
|
|
|
@ -38,7 +38,7 @@ bool ScriptInfo::CheckMethod(std::string_view name) const
|
||||||
info.engine = info.scanner->GetEngine();
|
info.engine = info.scanner->GetEngine();
|
||||||
|
|
||||||
/* Ensure the mandatory functions exist */
|
/* Ensure the mandatory functions exist */
|
||||||
static std::string_view const required_functions[] = {
|
static const std::string_view required_functions[] = {
|
||||||
"GetAuthor",
|
"GetAuthor",
|
||||||
"GetName",
|
"GetName",
|
||||||
"GetShortName",
|
"GetShortName",
|
||||||
|
@ -253,7 +253,7 @@ const ScriptConfigItemList *ScriptInfo::GetConfigList() const
|
||||||
return &this->config_list;
|
return &this->config_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ScriptConfigItem *ScriptInfo::GetConfigItem(const std::string_view name) const
|
const ScriptConfigItem *ScriptInfo::GetConfigItem(std::string_view name) const
|
||||||
{
|
{
|
||||||
for (const auto &item : this->config_list) {
|
for (const auto &item : this->config_list) {
|
||||||
if (item.name == name) return &item;
|
if (item.name == name) return &item;
|
||||||
|
|
|
@ -107,7 +107,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Get the description of a certain Script config option.
|
* Get the description of a certain Script config option.
|
||||||
*/
|
*/
|
||||||
const ScriptConfigItem *GetConfigItem(const std::string_view name) const;
|
const ScriptConfigItem *GetConfigItem(std::string_view name) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a setting.
|
* Set a setting.
|
||||||
|
|
|
@ -238,7 +238,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Throw a Squirrel error that will be nicely displayed to the user.
|
* Throw a Squirrel error that will be nicely displayed to the user.
|
||||||
*/
|
*/
|
||||||
void ThrowError(const std::string_view error) { sq_throwerror(this->vm, error); }
|
void ThrowError(std::string_view error) { sq_throwerror(this->vm, error); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Release a SQ object.
|
* Release a SQ object.
|
||||||
|
|
|
@ -1623,7 +1623,7 @@ void IntSettingDesc::ChangeValue(const void *object, int32_t newval) const
|
||||||
* @return Pointer to the setting description of setting \a name if it can be found,
|
* @return Pointer to the setting description of setting \a name if it can be found,
|
||||||
* \c nullptr indicates failure to obtain the description.
|
* \c nullptr indicates failure to obtain the description.
|
||||||
*/
|
*/
|
||||||
static const SettingDesc *GetSettingFromName(const std::string_view name, const SettingTable &settings)
|
static const SettingDesc *GetSettingFromName(std::string_view name, const SettingTable &settings)
|
||||||
{
|
{
|
||||||
/* First check all full names */
|
/* First check all full names */
|
||||||
for (auto &desc : settings) {
|
for (auto &desc : settings) {
|
||||||
|
@ -1705,7 +1705,7 @@ static const SettingDesc *GetCompanySettingFromName(std::string_view name)
|
||||||
* @return Pointer to the setting description of setting \a name if it can be found,
|
* @return Pointer to the setting description of setting \a name if it can be found,
|
||||||
* \c nullptr indicates failure to obtain the description.
|
* \c nullptr indicates failure to obtain the description.
|
||||||
*/
|
*/
|
||||||
const SettingDesc *GetSettingFromName(const std::string_view name)
|
const SettingDesc *GetSettingFromName(std::string_view name)
|
||||||
{
|
{
|
||||||
for (auto &table : GenericSettingTables()) {
|
for (auto &table : GenericSettingTables()) {
|
||||||
auto sd = GetSettingFromName(name, table);
|
auto sd = GetSettingFromName(name, table);
|
||||||
|
|
|
@ -388,7 +388,7 @@ static constexpr const SettingDesc *GetSettingDesc(const SettingVariant &desc)
|
||||||
|
|
||||||
typedef std::span<const SettingVariant> SettingTable;
|
typedef std::span<const SettingVariant> SettingTable;
|
||||||
|
|
||||||
const SettingDesc *GetSettingFromName(const std::string_view name);
|
const SettingDesc *GetSettingFromName(std::string_view name);
|
||||||
void GetSaveLoadFromSettingTable(SettingTable settings, std::vector<SaveLoad> &saveloads);
|
void GetSaveLoadFromSettingTable(SettingTable settings, std::vector<SaveLoad> &saveloads);
|
||||||
SettingTable GetSaveLoadSettingTable();
|
SettingTable GetSaveLoadSettingTable();
|
||||||
bool SetSettingValue(const IntSettingDesc *sd, int32_t value, bool force_newgame = false);
|
bool SetSettingValue(const IntSettingDesc *sd, int32_t value, bool force_newgame = false);
|
||||||
|
|
|
@ -173,11 +173,11 @@ struct SettingsIniFile : IniLoadFile {
|
||||||
OutputStore _stored_output; ///< Temporary storage of the output, until all processing is done.
|
OutputStore _stored_output; ///< Temporary storage of the output, until all processing is done.
|
||||||
OutputStore _post_amble_output; ///< Similar to _stored_output, but for the post amble.
|
OutputStore _post_amble_output; ///< Similar to _stored_output, but for the post amble.
|
||||||
|
|
||||||
static std::string_view PREAMBLE_GROUP_NAME = "pre-amble"; ///< Name of the group containing the pre amble.
|
static const std::string_view PREAMBLE_GROUP_NAME = "pre-amble"; ///< Name of the group containing the pre amble.
|
||||||
static std::string_view POSTAMBLE_GROUP_NAME = "post-amble"; ///< Name of the group containing the post amble.
|
static const std::string_view POSTAMBLE_GROUP_NAME = "post-amble"; ///< Name of the group containing the post amble.
|
||||||
static std::string_view TEMPLATES_GROUP_NAME = "templates"; ///< Name of the group containing the templates.
|
static const std::string_view TEMPLATES_GROUP_NAME = "templates"; ///< Name of the group containing the templates.
|
||||||
static std::string_view VALIDATION_GROUP_NAME = "validation"; ///< Name of the group containing the validation statements.
|
static const std::string_view VALIDATION_GROUP_NAME = "validation"; ///< Name of the group containing the validation statements.
|
||||||
static std::string_view DEFAULTS_GROUP_NAME = "defaults"; ///< Name of the group containing default values for the template variables.
|
static const std::string_view DEFAULTS_GROUP_NAME = "defaults"; ///< Name of the group containing default values for the template variables.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump a #IGT_SEQUENCE group into #_stored_output.
|
* Dump a #IGT_SEQUENCE group into #_stored_output.
|
||||||
|
|
|
@ -244,7 +244,7 @@ std::string_view StrTrimView(std::string_view str)
|
||||||
* @param prefix The prefix to look for.
|
* @param prefix The prefix to look for.
|
||||||
* @return True iff the begin of the string is the same as the prefix, ignoring case.
|
* @return True iff the begin of the string is the same as the prefix, ignoring case.
|
||||||
*/
|
*/
|
||||||
bool StrStartsWithIgnoreCase(std::string_view str, const std::string_view prefix)
|
bool StrStartsWithIgnoreCase(std::string_view str, std::string_view prefix)
|
||||||
{
|
{
|
||||||
if (str.size() < prefix.size()) return false;
|
if (str.size() < prefix.size()) return false;
|
||||||
return StrEqualsIgnoreCase(str.substr(0, prefix.size()), prefix);
|
return StrEqualsIgnoreCase(str.substr(0, prefix.size()), prefix);
|
||||||
|
@ -284,7 +284,7 @@ typedef std::basic_string_view<char, CaseInsensitiveCharTraits> CaseInsensitiveS
|
||||||
* @param suffix The suffix to look for.
|
* @param suffix The suffix to look for.
|
||||||
* @return True iff the end of the string is the same as the suffix, ignoring case.
|
* @return True iff the end of the string is the same as the suffix, ignoring case.
|
||||||
*/
|
*/
|
||||||
bool StrEndsWithIgnoreCase(std::string_view str, const std::string_view suffix)
|
bool StrEndsWithIgnoreCase(std::string_view str, std::string_view suffix)
|
||||||
{
|
{
|
||||||
if (str.size() < suffix.size()) return false;
|
if (str.size() < suffix.size()) return false;
|
||||||
return StrEqualsIgnoreCase(str.substr(str.size() - suffix.size()), suffix);
|
return StrEqualsIgnoreCase(str.substr(str.size() - suffix.size()), suffix);
|
||||||
|
@ -297,7 +297,7 @@ bool StrEndsWithIgnoreCase(std::string_view str, const std::string_view suffix)
|
||||||
* @return Less than zero if str1 < str2, zero if str1 == str2, greater than
|
* @return Less than zero if str1 < str2, zero if str1 == str2, greater than
|
||||||
* zero if str1 > str2. All ignoring the case of the characters.
|
* zero if str1 > str2. All ignoring the case of the characters.
|
||||||
*/
|
*/
|
||||||
int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2)
|
int StrCompareIgnoreCase(std::string_view str1, std::string_view str2)
|
||||||
{
|
{
|
||||||
CaseInsensitiveStringView ci_str1{ str1.data(), str1.size() };
|
CaseInsensitiveStringView ci_str1{ str1.data(), str1.size() };
|
||||||
CaseInsensitiveStringView ci_str2{ str2.data(), str2.size() };
|
CaseInsensitiveStringView ci_str2{ str2.data(), str2.size() };
|
||||||
|
@ -310,7 +310,7 @@ int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str
|
||||||
* @param str2 The second string.
|
* @param str2 The second string.
|
||||||
* @return True iff both strings are equal, barring the case of the characters.
|
* @return True iff both strings are equal, barring the case of the characters.
|
||||||
*/
|
*/
|
||||||
bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2)
|
bool StrEqualsIgnoreCase(std::string_view str1, std::string_view str2)
|
||||||
{
|
{
|
||||||
if (str1.size() != str2.size()) return false;
|
if (str1.size() != str2.size()) return false;
|
||||||
return StrCompareIgnoreCase(str1, str2) == 0;
|
return StrCompareIgnoreCase(str1, str2) == 0;
|
||||||
|
@ -323,7 +323,7 @@ bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str
|
||||||
* @param value The string to search for.
|
* @param value The string to search for.
|
||||||
* @return True if a match was found.
|
* @return True if a match was found.
|
||||||
*/
|
*/
|
||||||
bool StrContainsIgnoreCase(const std::string_view str, const std::string_view value)
|
bool StrContainsIgnoreCase(std::string_view str, std::string_view value)
|
||||||
{
|
{
|
||||||
CaseInsensitiveStringView ci_str{ str.data(), str.size() };
|
CaseInsensitiveStringView ci_str{ str.data(), str.size() };
|
||||||
CaseInsensitiveStringView ci_value{ value.data(), value.size() };
|
CaseInsensitiveStringView ci_value{ value.data(), value.size() };
|
||||||
|
@ -455,7 +455,7 @@ int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garb
|
||||||
* @param case_insensitive Search case-insensitive.
|
* @param case_insensitive Search case-insensitive.
|
||||||
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
* @return 1 if value was found, 0 if it was not found, or -1 if not supported by the OS.
|
||||||
*/
|
*/
|
||||||
static int ICUStringContains(const std::string_view str, const std::string_view value, bool case_insensitive)
|
static int ICUStringContains(std::string_view str, std::string_view value, bool case_insensitive)
|
||||||
{
|
{
|
||||||
if (_current_collator) {
|
if (_current_collator) {
|
||||||
std::unique_ptr<icu::RuleBasedCollator> coll(dynamic_cast<icu::RuleBasedCollator *>(_current_collator->clone()));
|
std::unique_ptr<icu::RuleBasedCollator> coll(dynamic_cast<icu::RuleBasedCollator *>(_current_collator->clone()));
|
||||||
|
@ -485,7 +485,7 @@ static int ICUStringContains(const std::string_view str, const std::string_view
|
||||||
* @param value The string to search for.
|
* @param value The string to search for.
|
||||||
* @return True if a match was found.
|
* @return True if a match was found.
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] bool StrNaturalContains(const std::string_view str, const std::string_view value)
|
[[nodiscard]] bool StrNaturalContains(std::string_view str, std::string_view value)
|
||||||
{
|
{
|
||||||
#ifdef WITH_ICU_I18N
|
#ifdef WITH_ICU_I18N
|
||||||
int res_u = ICUStringContains(str, value, false);
|
int res_u = ICUStringContains(str, value, false);
|
||||||
|
@ -512,7 +512,7 @@ static int ICUStringContains(const std::string_view str, const std::string_view
|
||||||
* @param value The string to search for.
|
* @param value The string to search for.
|
||||||
* @return True if a match was found.
|
* @return True if a match was found.
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] bool StrNaturalContainsIgnoreCase(const std::string_view str, const std::string_view value)
|
[[nodiscard]] bool StrNaturalContainsIgnoreCase(std::string_view str, std::string_view value)
|
||||||
{
|
{
|
||||||
#ifdef WITH_ICU_I18N
|
#ifdef WITH_ICU_I18N
|
||||||
int res_u = ICUStringContains(str, value, true);
|
int res_u = ICUStringContains(str, value, true);
|
||||||
|
|
|
@ -41,21 +41,21 @@ bool strtolower(std::string &str, std::string::size_type offs = 0);
|
||||||
void StrTrimInPlace(std::string &str);
|
void StrTrimInPlace(std::string &str);
|
||||||
[[nodiscard]] std::string_view StrTrimView(std::string_view str);
|
[[nodiscard]] std::string_view StrTrimView(std::string_view str);
|
||||||
|
|
||||||
[[nodiscard]] bool StrStartsWithIgnoreCase(std::string_view str, const std::string_view prefix);
|
[[nodiscard]] bool StrStartsWithIgnoreCase(std::string_view str, std::string_view prefix);
|
||||||
[[nodiscard]] bool StrEndsWithIgnoreCase(std::string_view str, const std::string_view suffix);
|
[[nodiscard]] bool StrEndsWithIgnoreCase(std::string_view str, std::string_view suffix);
|
||||||
|
|
||||||
[[nodiscard]] int StrCompareIgnoreCase(const std::string_view str1, const std::string_view str2);
|
[[nodiscard]] int StrCompareIgnoreCase(std::string_view str1, std::string_view str2);
|
||||||
[[nodiscard]] bool StrEqualsIgnoreCase(const std::string_view str1, const std::string_view str2);
|
[[nodiscard]] bool StrEqualsIgnoreCase(std::string_view str1, std::string_view str2);
|
||||||
[[nodiscard]] bool StrContainsIgnoreCase(const std::string_view str, const std::string_view value);
|
[[nodiscard]] bool StrContainsIgnoreCase(std::string_view str, std::string_view value);
|
||||||
[[nodiscard]] int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garbage_at_front = false);
|
[[nodiscard]] int StrNaturalCompare(std::string_view s1, std::string_view s2, bool ignore_garbage_at_front = false);
|
||||||
[[nodiscard]] bool StrNaturalContains(const std::string_view str, const std::string_view value);
|
[[nodiscard]] bool StrNaturalContains(std::string_view str, std::string_view value);
|
||||||
[[nodiscard]] bool StrNaturalContainsIgnoreCase(const std::string_view str, const std::string_view value);
|
[[nodiscard]] bool StrNaturalContainsIgnoreCase(std::string_view str, std::string_view value);
|
||||||
|
|
||||||
bool ConvertHexToBytes(std::string_view hex, std::span<uint8_t> bytes);
|
bool ConvertHexToBytes(std::string_view hex, std::span<uint8_t> bytes);
|
||||||
|
|
||||||
/** Case insensitive comparator for strings, for example for use in std::map. */
|
/** Case insensitive comparator for strings, for example for use in std::map. */
|
||||||
struct CaseInsensitiveComparator {
|
struct CaseInsensitiveComparator {
|
||||||
bool operator()(const std::string_view s1, const std::string_view s2) const { return StrCompareIgnoreCase(s1, s2) < 0; }
|
bool operator()(std::string_view s1, std::string_view s2) const { return StrCompareIgnoreCase(s1, s2) < 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -530,7 +530,7 @@ static void FormatBytes(StringBuilder &builder, int64_t number)
|
||||||
assert(number >= 0);
|
assert(number >= 0);
|
||||||
|
|
||||||
/* 1 2^10 2^20 2^30 2^40 2^50 2^60 */
|
/* 1 2^10 2^20 2^30 2^40 2^50 2^60 */
|
||||||
const std::string_view iec_prefixes[] = {"", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei"};
|
static const std::string_view iec_prefixes[] = {"", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei"};
|
||||||
uint id = 1;
|
uint id = 1;
|
||||||
while (number >= 1024 * 1024) {
|
while (number >= 1024 * 1024) {
|
||||||
number /= 1024;
|
number /= 1024;
|
||||||
|
|
|
@ -417,7 +417,7 @@ Textbuf::Textbuf(uint16_t max_bytes, uint16_t max_chars)
|
||||||
* Copy a string into the textbuffer.
|
* Copy a string into the textbuffer.
|
||||||
* @param text Source.
|
* @param text Source.
|
||||||
*/
|
*/
|
||||||
void Textbuf::Assign(const std::string_view text)
|
void Textbuf::Assign(std::string_view text)
|
||||||
{
|
{
|
||||||
size_t bytes = std::min<size_t>(this->max_bytes - 1, text.size());
|
size_t bytes = std::min<size_t>(this->max_bytes - 1, text.size());
|
||||||
this->buf = StrMakeValid(text.substr(0, bytes));
|
this->buf = StrMakeValid(text.substr(0, bytes));
|
||||||
|
|
|
@ -43,7 +43,7 @@ struct Textbuf {
|
||||||
|
|
||||||
explicit Textbuf(uint16_t max_bytes, uint16_t max_chars = UINT16_MAX);
|
explicit Textbuf(uint16_t max_bytes, uint16_t max_chars = UINT16_MAX);
|
||||||
|
|
||||||
void Assign(const std::string_view text);
|
void Assign(std::string_view text);
|
||||||
|
|
||||||
void DeleteAll();
|
void DeleteAll();
|
||||||
bool InsertClipboard();
|
bool InsertClipboard();
|
||||||
|
|
|
@ -884,7 +884,7 @@ static void MakeItalianTownName(StringBuilder &builder, uint32_t seed)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string_view const mascul_femin_italian[] = {
|
static const std::string_view mascul_femin_italian[] = {
|
||||||
"o",
|
"o",
|
||||||
"a",
|
"a",
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue