mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-23 11:15:34 +08:00
more helpers
This commit is contained in:
parent
705a1b925a
commit
0590f6d2f6
@ -1,6 +1,5 @@
|
||||
#include "common_helpers/common_helpers.hpp"
|
||||
#include <fstream>
|
||||
#include <filesystem>
|
||||
#include <cwchar>
|
||||
#include <algorithm>
|
||||
|
||||
@ -41,6 +40,7 @@ void common_helpers::write(std::ofstream &file, const std::string &data)
|
||||
|
||||
std::wstring common_helpers::str_to_w(const std::string &str)
|
||||
{
|
||||
if (str.empty()) return std::wstring();
|
||||
auto cvt_state = std::mbstate_t();
|
||||
const char* src = &str[0];
|
||||
size_t conversion_bytes = std::mbsrtowcs(nullptr, &src, 0, &cvt_state);
|
||||
@ -51,6 +51,7 @@ std::wstring common_helpers::str_to_w(const std::string &str)
|
||||
|
||||
std::string common_helpers::wstr_to_a(const std::wstring &wstr)
|
||||
{
|
||||
if (wstr.empty()) return std::string();
|
||||
auto cvt_state = std::mbstate_t();
|
||||
const wchar_t* src = &wstr[0];
|
||||
size_t conversion_bytes = std::wcsrtombs(nullptr, &src, 0, &cvt_state);
|
||||
@ -104,3 +105,80 @@ bool common_helpers::ends_with_i(const std::wstring &target, const std::wstring
|
||||
return _target.compare(_target.length() - _query.length(), _query.length(), _query) == 0;
|
||||
|
||||
}
|
||||
|
||||
std::filesystem::path to_absolute_impl(std::filesystem::path &path, std::filesystem::path &base)
|
||||
{
|
||||
if (path.is_absolute()) {
|
||||
return path;
|
||||
}
|
||||
|
||||
return std::filesystem::absolute(base / path);
|
||||
}
|
||||
|
||||
std::string common_helpers::to_absolute(const std::string &path, const std::string &base)
|
||||
{
|
||||
if (path.empty()) return path;
|
||||
auto path_abs = to_absolute_impl(
|
||||
std::filesystem::path(path),
|
||||
base.empty() ? std::filesystem::current_path() : std::filesystem::path(base)
|
||||
);
|
||||
return path_abs.string();
|
||||
}
|
||||
|
||||
std::wstring common_helpers::to_absolute(const std::wstring &path, const std::wstring &base)
|
||||
{
|
||||
if (path.empty()) return path;
|
||||
auto path_abs = to_absolute_impl(
|
||||
std::filesystem::path(path),
|
||||
base.empty() ? std::filesystem::current_path() : std::filesystem::path(base)
|
||||
);
|
||||
return path_abs.wstring();
|
||||
}
|
||||
|
||||
bool common_helpers::file_exist(std::filesystem::path &filepath)
|
||||
{
|
||||
if (std::filesystem::is_directory(filepath)) {
|
||||
return false;
|
||||
} else if (std::filesystem::exists(filepath)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool common_helpers::file_exist(const std::string &filepath)
|
||||
{
|
||||
if (filepath.empty()) return false;
|
||||
std::filesystem::path path(filepath);
|
||||
return file_exist(path);
|
||||
}
|
||||
|
||||
bool common_helpers::file_exist(const std::wstring &filepath)
|
||||
{
|
||||
if (filepath.empty()) return false;
|
||||
std::filesystem::path path(filepath);
|
||||
return file_exist(path);
|
||||
}
|
||||
|
||||
bool common_helpers::dir_exist(std::filesystem::path &dirpath)
|
||||
{
|
||||
if (std::filesystem::is_directory(dirpath)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool common_helpers::dir_exist(const std::string &dirpath)
|
||||
{
|
||||
if (dirpath.empty()) return false;
|
||||
std::filesystem::path path(dirpath);
|
||||
return dir_exist(path);
|
||||
}
|
||||
|
||||
bool common_helpers::dir_exist(const std::wstring &dirpath)
|
||||
{
|
||||
if (dirpath.empty()) return false;
|
||||
std::filesystem::path path(dirpath);
|
||||
return dir_exist(path);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <filesystem>
|
||||
|
||||
namespace common_helpers {
|
||||
|
||||
@ -23,4 +24,20 @@ bool ends_with_i(const std::string &target, const std::string &query);
|
||||
|
||||
bool ends_with_i(const std::wstring &target, const std::wstring &query);
|
||||
|
||||
std::string to_absolute(const std::string &path, const std::string &base = std::string());
|
||||
|
||||
std::wstring to_absolute(const std::wstring &path, const std::wstring &base = std::wstring());
|
||||
|
||||
bool file_exist(std::filesystem::path &filepath);
|
||||
|
||||
bool file_exist(const std::string &filepath);
|
||||
|
||||
bool file_exist(const std::wstring &filepath);
|
||||
|
||||
bool dir_exist(std::filesystem::path &dirpath);
|
||||
|
||||
bool dir_exist(const std::string &dirpath);
|
||||
|
||||
bool dir_exist(const std::wstring &dirpath);
|
||||
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "dbg_log/dbg_log.hpp"
|
||||
#include "common_helpers/common_helpers.hpp"
|
||||
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
@ -34,6 +35,24 @@ bool dbg_log::init(const char *path)
|
||||
return true;
|
||||
}
|
||||
|
||||
void dbg_log::write(const std::wstring &str)
|
||||
{
|
||||
|
||||
#ifndef EMU_RELEASE_BUILD
|
||||
write(common_helpers::wstr_to_a(str));
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void dbg_log::write(const std::string &str)
|
||||
{
|
||||
|
||||
#ifndef EMU_RELEASE_BUILD
|
||||
write(str.c_str());
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void dbg_log::write(const char *fmt, ...)
|
||||
{
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace dbg_log
|
||||
{
|
||||
|
||||
@ -7,6 +9,10 @@ bool init(const wchar_t *path);
|
||||
|
||||
bool init(const char *path);
|
||||
|
||||
void write(const std::wstring &str);
|
||||
|
||||
void write(const std::string &str);
|
||||
|
||||
void write(const char* fmt, ...);
|
||||
|
||||
void close();
|
||||
|
Loading…
Reference in New Issue
Block a user