mirror of
https://github.com/celisej567/mcpe.git
synced 2025-12-31 17:49:17 +03:00
* Output/Logging Overhaul * Added StandardOut class * Renamed LOGX macros to LOG_X * Removed LogMsg macros in favor of LOG_X * Added console window for debug Windows builds * Options Refactor * Moved options loading code from AppPlatform classes to Options class * Added AppPlatform::singleton() * Minecraft::m_options is now only accessible via Minecraft::getOptions() (as it should be) * Making this work with SDL2 next * Options Cleanup for SDL2 * Added AppPlatform::hasFileSystemAccess() * Options won't try to load if hasFileSystemAccess returns false. Emscripten build will be happy. --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
/********************************************************************
|
|
Minecraft: Pocket Edition - Decompilation Project
|
|
Copyright (C) 2023 iProgramInCpp
|
|
|
|
The following code is licensed under the BSD 1 clause license.
|
|
SPDX-License-Identifier: BSD-1-Clause
|
|
********************************************************************/
|
|
|
|
#include <stdarg.h>
|
|
#include "Util.hpp"
|
|
|
|
std::string Util::stringTrim(const std::string& str, const std::string& filter, bool a4, bool a5)
|
|
{
|
|
if (str.empty() || filter.empty())
|
|
return "";
|
|
|
|
// don't know what the hell this does. TODO: clean this crap up
|
|
if (!a4 && !a5)
|
|
return "";
|
|
|
|
int startIndex = 0, endIndex = int(str.size()) - 1;
|
|
|
|
// @TODO: Is this accurate?
|
|
if (a4)
|
|
{
|
|
while (startIndex < endIndex && strchr(filter.c_str(), str[startIndex]))
|
|
{
|
|
startIndex++;
|
|
}
|
|
}
|
|
if (a5)
|
|
{
|
|
while (startIndex < endIndex && strchr(filter.c_str(), str[endIndex]))
|
|
{
|
|
endIndex--;
|
|
}
|
|
}
|
|
|
|
return str.substr(startIndex, endIndex + 1 - startIndex);
|
|
}
|
|
|
|
std::string Util::stringTrim(const std::string& str)
|
|
{
|
|
return stringTrim(str, " \t\n\r", true, true);
|
|
}
|
|
|
|
std::string Util::vformat(const char *fmt, va_list argPtr)
|
|
{
|
|
char str[1024];
|
|
|
|
vsnprintf(str, sizeof(str), fmt, argPtr);
|
|
|
|
return std::string(str);
|
|
}
|
|
|
|
std::string Util::format(const char *fmt, ...)
|
|
{
|
|
std::string str;
|
|
va_list argList;
|
|
|
|
va_start(argList, fmt);
|
|
str = vformat(fmt, argList);
|
|
va_end(argList);
|
|
|
|
return str;
|
|
}
|