summaryrefslogtreecommitdiff
path: root/src/util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.cc')
-rw-r--r--src/util.cc33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/util.cc b/src/util.cc
index 9bf83cc..ee56ede 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -80,12 +80,12 @@ std::vector<std::string> readDeps(const std::string& depFile)
return output;
}
-Language languageFromExtension(const std::filesystem::path& file)
+ctor::language languageFromExtension(const std::filesystem::path& file)
{
auto ext = file.extension().string();
if(ext == ".c")
{
- return Language::C;
+ return ctor::language::c;
}
if(ext == ".C" ||
@@ -96,17 +96,42 @@ Language languageFromExtension(const std::filesystem::path& file)
ext == ".cp" ||
ext == ".cxx")
{
- return Language::Cpp;
+ return ctor::language::cpp;
}
if(ext == ".s" ||
ext == ".S" ||
ext == ".asm")
{
- return Language::Asm;
+ return ctor::language::assembler;
}
std::cerr << "Could not deduce language from " << file.string() << "\n";
exit(1);
return {};
}
+
+namespace
+{
+bool isClean(char c)
+{
+ return c != '.' && c != '/';
+}
+}
+
+std::string cleanUp(const std::string& path)
+{
+ std::string cleaned;
+ for(const auto& c : path)
+ {
+ if(isClean(c))
+ {
+ cleaned += c;
+ }
+ else
+ {
+ cleaned += '_';
+ }
+ }
+ return cleaned;
+}