diff --git a/buffer.fos b/buffer.fos index 2ce2be2..c1a247e 100644 --- a/buffer.fos +++ b/buffer.fos @@ -354,15 +354,26 @@ final class CBuffer : Buffer Buffer@ opShr( string& value ) // Buffer >> value { +#ifdef BUFFER_UNICODE value.rawResize(0); +#endif +#ifndef BUFFER_UNICODE + value.resize(0); +#endif BUFFER_LENTYPE len = 0; this >> len; for( uint s=0; s> char; +#ifdef BUFFER_UNICODE value.rawResize(s+1); value.rawSet(s, char); +#endif +#ifndef BUFFER_UNICODE + value.resize(s+1); + value[s] = char; +#endif } return( this ); } diff --git a/buffer_h.fos b/buffer_h.fos index 5502c6b..d005511 100644 --- a/buffer_h.fos +++ b/buffer_h.fos @@ -85,6 +85,10 @@ // How length of string/arrays will be stored in buffer #define BUFFER_LENTYPE uint16 +// Backward compatibility +// Undefine if using SDK older than revision 400 +#define BUFFER_UNICODE + shared interface Buffer { bool IsRaw( uint len );