summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2015-01-24 15:59:06 +0100
committerMattes D <github@xoft.cz>2015-01-27 14:53:29 +0100
commitf1f12495b2fe33e6ae424e1654a66e220162e926 (patch)
treef6213441ed9cc6f807158a0d2942f3eb4ca86ba8
parentStringUtils: Fixed bad predicate in MergeStringVectors(). (diff)
downloadcuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar.gz
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar.bz2
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar.lz
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar.xz
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.tar.zst
cuberite-f1f12495b2fe33e6ae424e1654a66e220162e926.zip
-rw-r--r--src/OSSupport/File.cpp23
-rw-r--r--src/OSSupport/File.h3
2 files changed, 26 insertions, 0 deletions
diff --git a/src/OSSupport/File.cpp b/src/OSSupport/File.cpp
index 8957dfaef..1ee9feafe 100644
--- a/src/OSSupport/File.cpp
+++ b/src/OSSupport/File.cpp
@@ -453,6 +453,29 @@ AString cFile::ReadWholeFile(const AString & a_FileName)
+AString cFile::ReplaceFileNameInvalidChars(const AString & a_FileName, char a_Replacement)
+{
+ AString res(a_FileName);
+ for (auto & ch: res)
+ {
+ switch (ch)
+ {
+ case ':':
+ case '\\':
+ case '/':
+ {
+ ch = a_Replacement;
+ break;
+ }
+ }
+ }
+ return res;
+}
+
+
+
+
+
int cFile::Printf(const char * a_Fmt, ...)
{
AString buf;
diff --git a/src/OSSupport/File.h b/src/OSSupport/File.h
index dfb38e839..b39f71e28 100644
--- a/src/OSSupport/File.h
+++ b/src/OSSupport/File.h
@@ -126,6 +126,9 @@ public:
/** Returns the entire contents of the specified file as a string. Returns empty string on error. */
static AString ReadWholeFile(const AString & a_FileName);
+
+ /** Replaces characters that cannot be in a file name with the specified char. */
+ static AString ReplaceFileNameInvalidChars(const AString & a_FileName, char a_Replacement = '_');
// tolua_end