//_______________________________________________________________________ // append operator void _CString::operator << (_String* s) { if ( s && s->sLength) { if (allocatedSpace < sLength + s->sLength) { unsigned long incBy = sLength + s->sLength - nInstances; if (incBy < storageIncrement) { incBy = storageIncrement; } if (incBy < sLength/8) { incBy = sLength/8; } allocatedSpace+=incBy; sData = (char*)MemReallocate((char*)sData, allocatedSpace*sizeof(char)); if (!sData) { checkPointer (sData); } } memcpy(sData+sLength,s->sData,s->sLength); sLength+=s->sLength; } }
//_______________________________________________________________________ // append operator void _CString::Finalize (void) { sData = MemReallocate (sData,sLength+1); if (!sData) { warnError(-108); } sData[sLength]=0; allocatedSpace = 0; }
//_______________________________________________________________________ // append operator void _CString::operator << (char c) { if (allocatedSpace <= sLength) { unsigned long incBy = ((storageIncrement*8 > sLength)? storageIncrement: (sLength/8+1)); allocatedSpace+=incBy; sData = (char*)MemReallocate((char*)sData, allocatedSpace*sizeof(char)); if (!sData) { checkPointer (sData); return; } } sData[sLength++]=c; }