aboutsummaryrefslogtreecommitdiff
path: root/backend/BackendUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/BackendUtils.cpp')
-rw-r--r--backend/BackendUtils.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/backend/BackendUtils.cpp b/backend/BackendUtils.cpp
index ac71b07..3c9dd71 100644
--- a/backend/BackendUtils.cpp
+++ b/backend/BackendUtils.cpp
@@ -27,28 +27,43 @@ namespace backend
TINYDIR_STRING("c++")
};
- sibs::Language BackendUtils::getFileLanguage(tinydir_file *file)
+ sibs::FileString BackendUtils::getFileExtension(const sibs::FileString &filepath)
{
- if(!file->is_reg)
- return sibs::Language::NONE;
+ size_t indexOfDot = filepath.find_last_of('.');
+ if(indexOfDot == sibs::FileString::npos)
+ return TINYDIR_STRING("");
+
+ indexOfDot += 1;
+ return filepath.substr(indexOfDot);
+ }
+ sibs::Language BackendUtils::getFileLanguage(const _tinydir_char_t *extension)
+ {
for(const _tinydir_char_t *sourceFileExtension : cFileExtensions)
{
- if(_tinydir_strcmp(sourceFileExtension, file->extension) == 0)
+ if(_tinydir_strcmp(sourceFileExtension, extension) == 0)
return sibs::Language::C;
}
for(const _tinydir_char_t *sourceFileExtension : cppFileExtensions)
{
- if(_tinydir_strcmp(sourceFileExtension, file->extension) == 0)
+ if(_tinydir_strcmp(sourceFileExtension, extension) == 0)
return sibs::Language::CPP;
}
- if(_tinydir_strcmp(TINYDIR_STRING("zig"), file->extension) == 0)
+ if(_tinydir_strcmp(TINYDIR_STRING("zig"), extension) == 0)
return sibs::Language::ZIG;
return sibs::Language::NONE;
}
+
+ sibs::Language BackendUtils::getFileLanguage(tinydir_file *file)
+ {
+ if(!file->is_reg)
+ return sibs::Language::NONE;
+
+ return getFileLanguage(file->extension);
+ }
void BackendUtils::collectSourceFiles(const _tinydir_char_t *projectPath, Ninja *ninjaProject, const SibsConfig &sibsConfig, bool recursive)
{