summaryrefslogtreecommitdiffstats
path: root/source/core/slang-io.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-io.cpp')
-rw-r--r--source/core/slang-io.cpp234
1 files changed, 115 insertions, 119 deletions
diff --git a/source/core/slang-io.cpp b/source/core/slang-io.cpp
index da36edbbf..5675bf24b 100644
--- a/source/core/slang-io.cpp
+++ b/source/core/slang-io.cpp
@@ -7,139 +7,135 @@
#ifdef _WIN32
#include <direct.h>
#endif
-namespace CoreLib
-{
- namespace IO
- {
- using namespace CoreLib::Basic;
- CommandLineWriter * currentCommandWriter = nullptr;
+namespace Slang
+{
+ CommandLineWriter * currentCommandWriter = nullptr;
- void SetCommandLineWriter(CommandLineWriter * writer)
- {
- currentCommandWriter = writer;
- }
+ void SetCommandLineWriter(CommandLineWriter * writer)
+ {
+ currentCommandWriter = writer;
+ }
- bool File::Exists(const String & fileName)
- {
+ bool File::Exists(const String & fileName)
+ {
#ifdef _WIN32
- struct _stat32 statVar;
- return ::_wstat32(((String)fileName).ToWString(), &statVar) != -1;
+ struct _stat32 statVar;
+ return ::_wstat32(((String)fileName).ToWString(), &statVar) != -1;
#else
- struct stat statVar;
- return ::stat(fileName.Buffer(), &statVar) == 0;
+ struct stat statVar;
+ return ::stat(fileName.Buffer(), &statVar) == 0;
#endif
- }
+ }
- String Path::TruncateExt(const String & path)
- {
- int dotPos = path.LastIndexOf('.');
- if (dotPos != -1)
- return path.SubString(0, dotPos);
- else
- return path;
- }
- String Path::ReplaceExt(const String & path, const char * newExt)
- {
- StringBuilder sb(path.Length()+10);
- int dotPos = path.LastIndexOf('.');
- if (dotPos == -1)
- dotPos = path.Length();
- sb.Append(path.Buffer(), dotPos);
- sb.Append('.');
- sb.Append(newExt);
- return sb.ProduceString();
- }
- String Path::GetFileName(const String & path)
- {
- int pos = path.LastIndexOf('/');
- pos = Math::Max(path.LastIndexOf('\\'), pos) + 1;
- return path.SubString(pos, path.Length()-pos);
- }
- String Path::GetFileNameWithoutEXT(const String & path)
- {
- int pos = path.LastIndexOf('/');
- pos = Math::Max(path.LastIndexOf('\\'), pos) + 1;
- int dotPos = path.LastIndexOf('.');
- if (dotPos <= pos)
- dotPos = path.Length();
- return path.SubString(pos, dotPos - pos);
- }
- String Path::GetFileExt(const String & path)
- {
- int dotPos = path.LastIndexOf('.');
- if (dotPos != -1)
- return path.SubString(dotPos+1, path.Length()-dotPos-1);
- else
- return "";
- }
- String Path::GetDirectoryName(const String & path)
- {
- int pos = path.LastIndexOf('/');
- pos = Math::Max(path.LastIndexOf('\\'), pos);
- if (pos != -1)
- return path.SubString(0, pos);
- else
- return "";
- }
- String Path::Combine(const String & path1, const String & path2)
- {
- if (path1.Length() == 0) return path2;
- StringBuilder sb(path1.Length()+path2.Length()+2);
- sb.Append(path1);
- if (!path1.EndsWith('\\') && !path1.EndsWith('/'))
- sb.Append(PathDelimiter);
- sb.Append(path2);
- return sb.ProduceString();
- }
- String Path::Combine(const String & path1, const String & path2, const String & path3)
- {
- StringBuilder sb(path1.Length()+path2.Length()+path3.Length()+3);
- sb.Append(path1);
- if (!path1.EndsWith('\\') && !path1.EndsWith('/'))
- sb.Append(PathDelimiter);
- sb.Append(path2);
- if (!path2.EndsWith('\\') && !path2.EndsWith('/'))
- sb.Append(PathDelimiter);
- sb.Append(path3);
- return sb.ProduceString();
- }
+ String Path::TruncateExt(const String & path)
+ {
+ int dotPos = path.LastIndexOf('.');
+ if (dotPos != -1)
+ return path.SubString(0, dotPos);
+ else
+ return path;
+ }
+ String Path::ReplaceExt(const String & path, const char * newExt)
+ {
+ StringBuilder sb(path.Length()+10);
+ int dotPos = path.LastIndexOf('.');
+ if (dotPos == -1)
+ dotPos = path.Length();
+ sb.Append(path.Buffer(), dotPos);
+ sb.Append('.');
+ sb.Append(newExt);
+ return sb.ProduceString();
+ }
+ String Path::GetFileName(const String & path)
+ {
+ int pos = path.LastIndexOf('/');
+ pos = Math::Max(path.LastIndexOf('\\'), pos) + 1;
+ return path.SubString(pos, path.Length()-pos);
+ }
+ String Path::GetFileNameWithoutEXT(const String & path)
+ {
+ int pos = path.LastIndexOf('/');
+ pos = Math::Max(path.LastIndexOf('\\'), pos) + 1;
+ int dotPos = path.LastIndexOf('.');
+ if (dotPos <= pos)
+ dotPos = path.Length();
+ return path.SubString(pos, dotPos - pos);
+ }
+ String Path::GetFileExt(const String & path)
+ {
+ int dotPos = path.LastIndexOf('.');
+ if (dotPos != -1)
+ return path.SubString(dotPos+1, path.Length()-dotPos-1);
+ else
+ return "";
+ }
+ String Path::GetDirectoryName(const String & path)
+ {
+ int pos = path.LastIndexOf('/');
+ pos = Math::Max(path.LastIndexOf('\\'), pos);
+ if (pos != -1)
+ return path.SubString(0, pos);
+ else
+ return "";
+ }
+ String Path::Combine(const String & path1, const String & path2)
+ {
+ if (path1.Length() == 0) return path2;
+ StringBuilder sb(path1.Length()+path2.Length()+2);
+ sb.Append(path1);
+ if (!path1.EndsWith('\\') && !path1.EndsWith('/'))
+ sb.Append(PathDelimiter);
+ sb.Append(path2);
+ return sb.ProduceString();
+ }
+ String Path::Combine(const String & path1, const String & path2, const String & path3)
+ {
+ StringBuilder sb(path1.Length()+path2.Length()+path3.Length()+3);
+ sb.Append(path1);
+ if (!path1.EndsWith('\\') && !path1.EndsWith('/'))
+ sb.Append(PathDelimiter);
+ sb.Append(path2);
+ if (!path2.EndsWith('\\') && !path2.EndsWith('/'))
+ sb.Append(PathDelimiter);
+ sb.Append(path3);
+ return sb.ProduceString();
+ }
- bool Path::CreateDir(const String & path)
- {
+ bool Path::CreateDir(const String & path)
+ {
#if defined(_WIN32)
- return _wmkdir(path.ToWString()) == 0;
+ return _wmkdir(path.ToWString()) == 0;
#else
- return mkdir(path.Buffer(), 0777) == 0;
+ return mkdir(path.Buffer(), 0777) == 0;
#endif
- }
+ }
- CoreLib::Basic::String File::ReadAllText(const CoreLib::Basic::String & fileName)
- {
- StreamReader reader(new FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::ReadWrite));
- return reader.ReadToEnd();
- }
+ Slang::String File::ReadAllText(const Slang::String & fileName)
+ {
+ StreamReader reader(new FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::ReadWrite));
+ return reader.ReadToEnd();
+ }
- CoreLib::Basic::List<unsigned char> File::ReadAllBytes(const CoreLib::Basic::String & fileName)
+ Slang::List<unsigned char> File::ReadAllBytes(const Slang::String & fileName)
+ {
+ RefPtr<FileStream> fs = new FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::ReadWrite);
+ List<unsigned char> buffer;
+ while (!fs->IsEnd())
{
- RefPtr<FileStream> fs = new FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::ReadWrite);
- List<unsigned char> buffer;
- while (!fs->IsEnd())
- {
- unsigned char ch;
- int read = (int)fs->Read(&ch, 1);
- if (read)
- buffer.Add(ch);
- else
- break;
- }
- return _Move(buffer);
+ unsigned char ch;
+ int read = (int)fs->Read(&ch, 1);
+ if (read)
+ buffer.Add(ch);
+ else
+ break;
}
+ return _Move(buffer);
+ }
- void File::WriteAllText(const CoreLib::Basic::String & fileName, const CoreLib::Basic::String & text)
- {
- StreamWriter writer(new FileStream(fileName, FileMode::Create));
- writer.Write(text);
- }
+ void File::WriteAllText(const Slang::String & fileName, const Slang::String & text)
+ {
+ StreamWriter writer(new FileStream(fileName, FileMode::Create));
+ writer.Write(text);
}
-} \ No newline at end of file
+}