Пример #1
0
//_______________________________________________________________________
// 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;
    }
}
Пример #2
0
//_______________________________________________________________________
// append operator
void _CString::Finalize (void)
{
    sData = MemReallocate (sData,sLength+1);

    if (!sData) {
        warnError(-108);
    }

    sData[sLength]=0;
    allocatedSpace = 0;
}
Пример #3
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;
}