|
|
|
|
@ -62,40 +62,24 @@ template<unsigned int C>
|
|
|
|
|
class Dictionary |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
Dictionary() |
|
|
|
|
{ |
|
|
|
|
_d[0] = (char)0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Dictionary(const char *s) |
|
|
|
|
{ |
|
|
|
|
if (s) { |
|
|
|
|
Utils::scopy(_d,sizeof(_d),s); |
|
|
|
|
} else { |
|
|
|
|
_d[0] = (char)0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Dictionary() { memset(_d,0,sizeof(_d)); } |
|
|
|
|
Dictionary(const char *s) { this->load(s); } |
|
|
|
|
Dictionary(const char *s,unsigned int len) |
|
|
|
|
{ |
|
|
|
|
if (s) { |
|
|
|
|
if (len > (C-1)) |
|
|
|
|
len = C-1; |
|
|
|
|
ZT_FAST_MEMCPY(_d,s,len); |
|
|
|
|
_d[len] = (char)0; |
|
|
|
|
} else { |
|
|
|
|
_d[0] = (char)0; |
|
|
|
|
for(unsigned int i=0;i<C;++i) { |
|
|
|
|
if ((s)&&(i < len)) { |
|
|
|
|
if (!(_d[i] = *s)) |
|
|
|
|
s = (const char *)0; |
|
|
|
|
else ++s; |
|
|
|
|
} else _d[i] = (char)0; |
|
|
|
|
} |
|
|
|
|
_d[C - 1] = (char)0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Dictionary(const Dictionary &d) |
|
|
|
|
{ |
|
|
|
|
Utils::scopy(_d,sizeof(_d),d._d); |
|
|
|
|
} |
|
|
|
|
Dictionary(const Dictionary &d) { memcpy(_d,d._d,C); } |
|
|
|
|
|
|
|
|
|
inline Dictionary &operator=(const Dictionary &d) |
|
|
|
|
{ |
|
|
|
|
Utils::scopy(_d,sizeof(_d),d._d); |
|
|
|
|
memcpy(_d,d._d,C); |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -109,12 +93,15 @@ public:
|
|
|
|
|
*/ |
|
|
|
|
inline bool load(const char *s) |
|
|
|
|
{ |
|
|
|
|
if (s) { |
|
|
|
|
return Utils::scopy(_d,sizeof(_d),s); |
|
|
|
|
} else { |
|
|
|
|
_d[0] = (char)0; |
|
|
|
|
return true; |
|
|
|
|
for(unsigned int i=0;i<C;++i) { |
|
|
|
|
if (s) { |
|
|
|
|
if (!(_d[i] = *s)) |
|
|
|
|
s = (const char *)0; |
|
|
|
|
else ++s; |
|
|
|
|
} else _d[i] = (char)0; |
|
|
|
|
} |
|
|
|
|
_d[C - 1] = (char)0; |
|
|
|
|
return (!s); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -122,7 +109,7 @@ public:
|
|
|
|
|
*/ |
|
|
|
|
inline void clear() |
|
|
|
|
{ |
|
|
|
|
_d[0] = (char)0; |
|
|
|
|
memset(_d,0,sizeof(_d)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|