diff options
| author | 2014-09-11 00:04:36 -0400 | |
|---|---|---|
| committer | 2014-09-11 00:04:36 -0400 | |
| commit | 532a9e80a0bd242d2937335063b719130405d6bc (patch) | |
| tree | 84fe1f054b62edc488a7a9e80eb8f79b2dd05cd0 /src/core/loader/loader.cpp | |
| parent | Merge pull request #103 from archshift/prune (diff) | |
| parent | Moved common_types::Rect from common to Common namespace (diff) | |
| download | yuzu-532a9e80a0bd242d2937335063b719130405d6bc.tar.gz yuzu-532a9e80a0bd242d2937335063b719130405d6bc.tar.xz yuzu-532a9e80a0bd242d2937335063b719130405d6bc.zip | |
Merge pull request #99 from archshift/ext-check
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
Diffstat (limited to 'src/core/loader/loader.cpp')
| -rw-r--r-- | src/core/loader/loader.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp index 5cbb26f54..577a2297a 100644 --- a/src/core/loader/loader.cpp +++ b/src/core/loader/loader.cpp | |||
| @@ -25,22 +25,23 @@ FileType IdentifyFile(const std::string &filename) { | |||
| 25 | ERROR_LOG(LOADER, "invalid filename %s", filename.c_str()); | 25 | ERROR_LOG(LOADER, "invalid filename %s", filename.c_str()); |
| 26 | return FileType::Error; | 26 | return FileType::Error; |
| 27 | } | 27 | } |
| 28 | std::string extension = filename.size() >= 5 ? filename.substr(filename.size() - 4) : ""; | ||
| 29 | 28 | ||
| 30 | if (!strcasecmp(extension.c_str(), ".elf")) { | 29 | size_t extension_loc = filename.find_last_of('.'); |
| 31 | return FileType::ELF; // TODO(bunnei): Do some filetype checking :p | 30 | if (extension_loc == std::string::npos) |
| 32 | } | 31 | return FileType::Unknown; |
| 33 | else if (!strcasecmp(extension.c_str(), ".axf")) { | 32 | std::string extension = Common::ToLower(filename.substr(extension_loc)); |
| 34 | return FileType::ELF; // TODO(bunnei): Do some filetype checking :p | 33 | |
| 35 | } | 34 | // TODO(bunnei): Do actual filetype checking instead of naively checking the extension |
| 36 | else if (!strcasecmp(extension.c_str(), ".cxi")) { | 35 | if (extension == ".elf") { |
| 37 | return FileType::CXI; // TODO(bunnei): Do some filetype checking :p | 36 | return FileType::ELF; |
| 38 | } | 37 | } else if (extension == ".axf") { |
| 39 | else if (!strcasecmp(extension.c_str(), ".cci")) { | 38 | return FileType::ELF; |
| 40 | return FileType::CCI; // TODO(bunnei): Do some filetype checking :p | 39 | } else if (extension == ".cxi") { |
| 41 | } | 40 | return FileType::CXI; |
| 42 | else if (!strcasecmp(extension.c_str(), ".bin")) { | 41 | } else if (extension == ".cci") { |
| 43 | return FileType::BIN; // TODO(bunnei): Do some filetype checking :p | 42 | return FileType::CCI; |
| 43 | } else if (extension == ".bin") { | ||
| 44 | return FileType::BIN; | ||
| 44 | } | 45 | } |
| 45 | return FileType::Unknown; | 46 | return FileType::Unknown; |
| 46 | } | 47 | } |