X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fphysfs%2Fphysfs_stream.cpp;h=28d92c567a632085a65a5bb7ee3beb8c9b879111;hb=43db9a6c44b6ee544e7694d1bb234ba559b0849c;hp=e1d155772b6b886dc1d65e4d89db37f5c2e2d23b;hpb=cb45fd02e9f064a2368b6ebb393e91ad0e254f52;p=supertux.git diff --git a/src/physfs/physfs_stream.cpp b/src/physfs/physfs_stream.cpp index e1d155772..28d92c567 100644 --- a/src/physfs/physfs_stream.cpp +++ b/src/physfs/physfs_stream.cpp @@ -28,11 +28,11 @@ IFileStreambuf::IFileStreambuf(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"); - } + // 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"); + } file = PHYSFS_openRead(filename.c_str()); if(file == 0) { std::stringstream msg; @@ -128,6 +128,8 @@ OFileStreambuf::~OFileStreambuf() int OFileStreambuf::overflow(int c) { + char c2 = (char)c; + if(pbase() == pptr()) return 0; @@ -137,7 +139,7 @@ OFileStreambuf::overflow(int c) return traits_type::eof(); if(c != traits_type::eof()) { - PHYSFS_sint64 res = PHYSFS_write(file, &c, 1, 1); + PHYSFS_sint64 res = PHYSFS_write(file, &c2, 1, 1); if(res <= 0) return traits_type::eof(); }