fix cr/lfs and remove trailing whitespaces...
[supertux.git] / src / squirrel / sqstdlib / sqstdblobimpl.h
index b2291b7..9f22c0a 100644 (file)
-/*     see copyright notice in squirrel.h */\r
-#ifndef _SQSTD_BLOBIMPL_H_\r
-#define _SQSTD_BLOBIMPL_H_\r
-\r
-struct SQBlob : public SQStream\r
-{\r
-       SQBlob(SQInteger size) {\r
-               _size = size;\r
-               _allocated = size;\r
-               _buf = (unsigned char *)sq_malloc(size);\r
-               memset(_buf, 0, _size);\r
-               _ptr = 0;\r
-               _owns = true;\r
-       }\r
-       virtual ~SQBlob() {\r
-               sq_free(_buf, _allocated);\r
-       }\r
-       SQInteger Write(void *buffer, SQInteger size) {\r
-               if(!CanAdvance(size)) {\r
-                       GrowBufOf(_ptr + size - _size);\r
-               }\r
-               memcpy(&_buf[_ptr], buffer, size);\r
-               _ptr += size;\r
-               return size;\r
-       }\r
-       SQInteger Read(void *buffer,SQInteger size) {\r
-               SQInteger n = size;\r
-               if(!CanAdvance(size)) {\r
-                       if((_size - _ptr) > 0)\r
-                               n = _size - _ptr;\r
-                       else return 0;\r
-               }\r
-               memcpy(buffer, &_buf[_ptr], n);\r
-               _ptr += n;\r
-               return n;\r
-       }\r
-       bool Resize(SQInteger n) {\r
-               if(!_owns) return false;\r
-               if(n != _allocated) {\r
-                       unsigned char *newbuf = (unsigned char *)sq_malloc(n);\r
-                       memset(newbuf,0,n);\r
-                       if(_size > n)\r
-                               memcpy(newbuf,_buf,n);\r
-                       else\r
-                               memcpy(newbuf,_buf,_size);\r
-                       sq_free(_buf,_allocated);\r
-                       _buf=newbuf;\r
-                       _allocated = n;\r
-                       if(_size > _allocated)\r
-                               _size = _allocated;\r
-                       if(_ptr > _allocated)\r
-                               _ptr = _allocated;\r
-               }\r
-               return true;\r
-       }\r
-       bool GrowBufOf(SQInteger n)\r
-       {\r
-               bool ret = true;\r
-               if(_size + n > _allocated) {\r
-                       if(_size + n > _size * 2)\r
-                               ret = Resize(_size + n);\r
-                       else\r
-                               ret = Resize(_size * 2);\r
-               }\r
-               _size = _size + n;\r
-               return ret;\r
-       }\r
-       bool CanAdvance(SQInteger n) {\r
-               if(_ptr+n>_size)return false;\r
-               return true;\r
-       }\r
-       SQInteger Seek(SQInteger offset, SQInteger origin) {\r
-               switch(origin) {\r
-                       case SQ_SEEK_SET:\r
-                               if(offset > _size || offset < 0) return -1;\r
-                               _ptr = offset;\r
-                               break;\r
-                       case SQ_SEEK_CUR:\r
-                               if(_ptr + offset > _size || _ptr + offset < 0) return -1;\r
-                               _ptr += offset;\r
-                               break;\r
-                       case SQ_SEEK_END:\r
-                               if(_size + offset > _size || _size + offset < 0) return -1;\r
-                               _ptr = _size + offset;\r
-                               break;\r
-                       default: return -1;\r
-               }\r
-               return 0;\r
-       }\r
-       bool IsValid() {\r
-               return _buf?true:false;\r
-       }\r
-       bool EOS() {\r
-               return _ptr == _size;\r
-       }\r
-       SQInteger Flush() { return 0; }\r
-       SQInteger Tell() { return _ptr; }\r
-       SQInteger Len() { return _size; }\r
-       SQUserPointer GetBuf(){ return _buf; }\r
-private:\r
-       SQInteger _size;\r
-       SQInteger _allocated;\r
-       SQInteger _ptr;\r
-       unsigned char *_buf;\r
-       bool _owns;\r
-};\r
-\r
-#endif //_SQSTD_BLOBIMPL_H_\r
+/*     see copyright notice in squirrel.h */
+#ifndef _SQSTD_BLOBIMPL_H_
+#define _SQSTD_BLOBIMPL_H_
+
+struct SQBlob : public SQStream
+{
+       SQBlob(SQInteger size) {
+               _size = size;
+               _allocated = size;
+               _buf = (unsigned char *)sq_malloc(size);
+               memset(_buf, 0, _size);
+               _ptr = 0;
+               _owns = true;
+       }
+       virtual ~SQBlob() {
+               sq_free(_buf, _allocated);
+       }
+       SQInteger Write(void *buffer, SQInteger size) {
+               if(!CanAdvance(size)) {
+                       GrowBufOf(_ptr + size - _size);
+               }
+               memcpy(&_buf[_ptr], buffer, size);
+               _ptr += size;
+               return size;
+       }
+       SQInteger Read(void *buffer,SQInteger size) {
+               SQInteger n = size;
+               if(!CanAdvance(size)) {
+                       if((_size - _ptr) > 0)
+                               n = _size - _ptr;
+                       else return 0;
+               }
+               memcpy(buffer, &_buf[_ptr], n);
+               _ptr += n;
+               return n;
+       }
+       bool Resize(SQInteger n) {
+               if(!_owns) return false;
+               if(n != _allocated) {
+                       unsigned char *newbuf = (unsigned char *)sq_malloc(n);
+                       memset(newbuf,0,n);
+                       if(_size > n)
+                               memcpy(newbuf,_buf,n);
+                       else
+                               memcpy(newbuf,_buf,_size);
+                       sq_free(_buf,_allocated);
+                       _buf=newbuf;
+                       _allocated = n;
+                       if(_size > _allocated)
+                               _size = _allocated;
+                       if(_ptr > _allocated)
+                               _ptr = _allocated;
+               }
+               return true;
+       }
+       bool GrowBufOf(SQInteger n)
+       {
+               bool ret = true;
+               if(_size + n > _allocated) {
+                       if(_size + n > _size * 2)
+                               ret = Resize(_size + n);
+                       else
+                               ret = Resize(_size * 2);
+               }
+               _size = _size + n;
+               return ret;
+       }
+       bool CanAdvance(SQInteger n) {
+               if(_ptr+n>_size)return false;
+               return true;
+       }
+       SQInteger Seek(SQInteger offset, SQInteger origin) {
+               switch(origin) {
+                       case SQ_SEEK_SET:
+                               if(offset > _size || offset < 0) return -1;
+                               _ptr = offset;
+                               break;
+                       case SQ_SEEK_CUR:
+                               if(_ptr + offset > _size || _ptr + offset < 0) return -1;
+                               _ptr += offset;
+                               break;
+                       case SQ_SEEK_END:
+                               if(_size + offset > _size || _size + offset < 0) return -1;
+                               _ptr = _size + offset;
+                               break;
+                       default: return -1;
+               }
+               return 0;
+       }
+       bool IsValid() {
+               return _buf?true:false;
+       }
+       bool EOS() {
+               return _ptr == _size;
+       }
+       SQInteger Flush() { return 0; }
+       SQInteger Tell() { return _ptr; }
+       SQInteger Len() { return _size; }
+       SQUserPointer GetBuf(){ return _buf; }
+private:
+       SQInteger _size;
+       SQInteger _allocated;
+       SQInteger _ptr;
+       unsigned char *_buf;
+       bool _owns;
+};
+
+#endif //_SQSTD_BLOBIMPL_H_