rawFlush();
 }
 
-char File::getc()
+int File::getc()
 {
     if (!m_isOpened || m_mode != File::Read) {
         return 0;
     return gzread(m_gzFile, buffer, length) != -1;
 }
 
-char ZLibFile::rawGetc()
+int ZLibFile::rawGetc()
 {
     return gzgetc(m_gzFile);
 }
     return true;
 }
 
-char SnappyFile::rawGetc()
+int SnappyFile::rawGetc()
 {
     char c;
     rawRead(&c, 1);
 
     bool read(void *buffer, int length);
     void close();
     void flush();
-    char getc();
+    int getc();
 
 protected:
     virtual bool rawOpen(const std::string &filename, File::Mode mode) = 0;
     virtual bool rawWrite(const void *buffer, int length) = 0;
     virtual bool rawRead(void *buffer, int length) = 0;
-    virtual char rawGetc() = 0;
+    virtual int rawGetc() = 0;
     virtual void rawClose() = 0;
     virtual void rawFlush() = 0;
 
     virtual bool rawOpen(const std::string &filename, File::Mode mode);
     virtual bool rawWrite(const void *buffer, int length);
     virtual bool rawRead(void *buffer, int length);
-    virtual char rawGetc();
+    virtual int rawGetc();
     virtual void rawClose();
     virtual void rawFlush();
 private:
     virtual bool rawOpen(const std::string &filename, File::Mode mode);
     virtual bool rawWrite(const void *buffer, int length);
     virtual bool rawRead(void *buffer, int length);
-    virtual char rawGetc();
+    virtual int rawGetc();
     virtual void rawClose();
     virtual void rawFlush();