Fix for linux' struct stat missing "d_namlen" field.
diff --git a/AST.cpp b/AST.cpp
index b085814..651b14a 100644
--- a/AST.cpp
+++ b/AST.cpp
@@ -85,12 +85,16 @@
continue;
}
- if (ent->d_namlen < 4
- || strcmp(ent->d_name + ent->d_namlen - 4, ".hal")) {
+ const auto suffix = ".hal";
+ const auto suffix_len = std::strlen(suffix);
+ const auto d_namelen = strlen(ent->d_name);
+
+ if (d_namelen < suffix_len
+ || strcmp(ent->d_name + d_namelen - suffix_len, suffix)) {
continue;
}
- fileNames.push_back(std::string(ent->d_name, ent->d_namlen - 4));
+ fileNames.push_back(std::string(ent->d_name, d_namelen - suffix_len));
}
closedir(dir);