VOID ACLStr::Append(IN LPCTSTR str, IN size_t strLen) { if (str && strLen) { _Concat(strLen, str); } } // Append
const ACLStr& ACLStr::operator=(IN LPCTSTR str) { if (this->_string != str) { _Recycle(); _Concat(STRLEN(str)+1, str); } return *this; }
static void Apply(char *src, char **dst) { if (src) { if (*src == '+' || *src == '!') { *dst= _Concat(*dst, src); } else { if (*dst == NULL) *dst= _XkbDupString(src); } } }
const ACLStr& ACLStr::operator=(IN const ACLStr& str) { // Make sure we're not copying ourselves // if (this != &str) { _Recycle(); _Concat(str.Len(), (LPCTSTR)str); } return *this; }
static void Apply(char *src, char **dst) { if (src) { if (*src == '+' || *src == '!') { *dst = _Concat(*dst, src); } else { if (*dst == NULL) *dst = Xstrdup(src); } } }
BOOL ACLStr::LoadString(IN UINT resId) { TCHAR tmpBuffer[MAX_STRING]; int len = ::LoadString(NULL, resId, tmpBuffer, sizeof(tmpBuffer)); // ROB: If we fail to load the string should the buffer // be cleared(recycle'd) anyway or should it just be // left alone? // if (len > 0) { _Recycle(); _Concat(len, tmpBuffer); } return (len > 0); }
/////////////////////////////////////////////////////////////////////////////// // // O P E R A T O R S // /////////////////////////////////////////////////////////////////////////////// const ACLStr& ACLStr::operator=(IN const TCHAR ch) { _Recycle(); _Concat(1, &ch); return *this; }
VOID ACLStr::Append(IN TCHAR ch) { _Concat(1, &ch); } // Append
VOID ACLStr::Append(IN LPCTSTR str) { _Concat(STRLEN(str), str); } // Append
VOID ACLStr::Append(IN const ACLStr& str) { _Concat(str.Len(), (LPCTSTR)str); }