mirror of
https://github.com/TomHarte/CLK.git
synced 2026-04-19 19:16:34 +00:00
Simplify extension finder, 80/81 file grabbing.
This commit is contained in:
@@ -98,11 +98,12 @@ bool FileHolder::check_signature(const char *signature, std::size_t length) {
|
||||
}
|
||||
|
||||
std::string FileHolder::extension() const {
|
||||
std::size_t pointer = name_.size() - 1;
|
||||
while(pointer > 0 && name_[pointer] != '.') pointer--;
|
||||
if(name_[pointer] == '.') pointer++;
|
||||
const auto final_dot = name_.rfind('.');
|
||||
if(final_dot == std::string::npos) {
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string extension = name_.substr(pointer);
|
||||
std::string extension = name_.substr(final_dot + 1);
|
||||
std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
|
||||
return extension;
|
||||
}
|
||||
|
||||
@@ -14,9 +14,8 @@ using namespace Storage::Tape;
|
||||
ZX80O81P::ZX80O81P(const std::string &file_name) {
|
||||
Storage::FileHolder file(file_name, FileHolder::FileMode::Read);
|
||||
|
||||
// Grab the actual file contents
|
||||
data_.resize(size_t(file.stats().st_size));
|
||||
file.read(data_.data(), size_t(file.stats().st_size));
|
||||
// Grab file contents.
|
||||
data_ = file.read(size_t(file.stats().st_size));
|
||||
|
||||
// If it's a ZX81 file, prepend a file name.
|
||||
const auto type = file.extension();
|
||||
|
||||
Reference in New Issue
Block a user