Use implicit_depends for generating the wrapper, which is only a 2.6 feature so bumpi...
[supertux.git] / src / physfs / physfs_sdl.cpp
index 2a22af6..9fa1ccd 100644 (file)
@@ -68,7 +68,7 @@ static int funcRead(struct SDL_RWops* context, void* ptr, int size, int maxnum)
 static int funcClose(struct SDL_RWops* context)
 {
     PHYSFS_file* file = (PHYSFS_file*) context->hidden.unknown.data1;
-    
+
     PHYSFS_close(file);
     delete context;
 
@@ -77,6 +77,12 @@ static int funcClose(struct SDL_RWops* context)
 
 SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
 {
+    // check this as PHYSFS seems to be buggy and still returns a
+    // valid pointer in this case
+    if(filename == "") {
+        throw std::runtime_error("Couldn't open file: empty filename");
+    }
+
     PHYSFS_file* file = (PHYSFS_file*) PHYSFS_openRead(filename.c_str());
     if(!file) {
         std::stringstream msg;
@@ -84,7 +90,7 @@ SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
             << PHYSFS_getLastError();
         throw std::runtime_error(msg.str());
     }
-    
+
     SDL_RWops* ops = new SDL_RWops();
     ops->type = 0;
     ops->hidden.unknown.data1 = file;