Files
mcpe/source/common/Util.cpp
Brent 2e55f99a54 Options Logic Cleanup (#71)
* 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>
2023-09-04 12:11:36 +03:00

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;
}