From 288b680e07c7e24f673ba4899f4af87b5db034fd Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Thu, 30 Jan 2020 13:18:16 +1000 Subject: [PATCH] FileSystem: Add ReplaceExtension() helper --- src/common/cd_image_cue.cpp | 15 ++------------- src/common/file_system.cpp | 11 +++++++++++ src/common/file_system.h | 3 +++ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/common/cd_image_cue.cpp b/src/common/cd_image_cue.cpp index 7912f6df9..57e0e711c 100644 --- a/src/common/cd_image_cue.cpp +++ b/src/common/cd_image_cue.cpp @@ -3,8 +3,8 @@ #include "cd_subchannel_replacement.h" #include "file_system.h" #include "log.h" -#include #include +#include #include Log_SetChannel(CDImageCueSheet); @@ -32,17 +32,6 @@ CDImageCueSheet::~CDImageCueSheet() cd_delete(m_cd); } -static std::string ReplaceExtension(std::string_view path, std::string_view new_extension) -{ - std::string_view::size_type pos = path.rfind('.'); - if (pos == std::string::npos) - return std::string(path); - - std::string ret(path, 0, pos + 1); - ret.append(new_extension); - return ret; -} - bool CDImageCueSheet::OpenAndParse(const char* filename) { std::FILE* cue_fp = FileSystem::OpenCFile(filename, "rb"); @@ -202,7 +191,7 @@ bool CDImageCueSheet::OpenAndParse(const char* filename) m_lba_count = disc_lba; - m_sbi.LoadSBI(ReplaceExtension(filename, "sbi").c_str()); + m_sbi.LoadSBI(FileSystem::ReplaceExtension(filename, "sbi").c_str()); return Seek(1, Position{0, 0, 0}); } diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp index bf2c06f0b..caf0fab2f 100644 --- a/src/common/file_system.cpp +++ b/src/common/file_system.cpp @@ -222,6 +222,17 @@ void SanitizeFileName(String& Destination, bool StripSlashes /* = true */) return SanitizeFileName(Destination, Destination, StripSlashes); } +std::string ReplaceExtension(std::string_view path, std::string_view new_extension) +{ + std::string_view::size_type pos = path.rfind('.'); + if (pos == std::string::npos) + return std::string(path); + + std::string ret(path, 0, pos + 1); + ret.append(new_extension); + return ret; +} + std::string GetPathDirectory(const char* path) { #ifdef WIN32 diff --git a/src/common/file_system.h b/src/common/file_system.h index 4d4553212..43c059812 100644 --- a/src/common/file_system.h +++ b/src/common/file_system.h @@ -134,6 +134,9 @@ void SanitizeFileName(char* Destination, u32 cbDestination, const char* FileName void SanitizeFileName(String& Destination, const char* FileName, bool StripSlashes = true); void SanitizeFileName(String& Destination, bool StripSlashes = true); +/// Replaces the extension of a filename with another. +std::string ReplaceExtension(std::string_view path, std::string_view new_extension); + /// Returns the directory component of a filename. std::string GetPathDirectory(const char* path);