aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/Asset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/Asset.cpp')
-rw-r--r--src/crepe/Asset.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/crepe/Asset.cpp b/src/crepe/Asset.cpp
index 8a2a11c..3d4df53 100644
--- a/src/crepe/Asset.cpp
+++ b/src/crepe/Asset.cpp
@@ -1,16 +1,20 @@
#include <filesystem>
#include "Asset.h"
+#include "Exception.h"
using namespace crepe;
+using namespace std;
-Asset::Asset(const std::string & src) {
- // FIXME: restore this
- // this->src = std::filesystem::canonical(src);
- this->src = src;
- this->file = std::ifstream(this->src, std::ios::in | std::ios::binary);
+Asset::Asset(const string & src) : src(src) {
+ try {
+ this->src = filesystem::canonical(src);
+ } catch (filesystem::filesystem_error & e) {
+ throw Exception("Asset error: %s", e.what());
+ }
+ this->file = ifstream(this->src, ios::in | ios::binary);
}
-const std::istream & Asset::read() { return this->file; }
+const istream & Asset::read() { return this->file; }
-const char * Asset::canonical() { return this->src.c_str(); }
+const char * Asset::canonical() const { return this->src.c_str(); }