public override void WriteCData( string text ) {
Debug.Assert( text != null );
if ( mergeCDataSections && bufPos == cdataPos ) {
// Merge adjacent cdata sections - overwrite the "]]>" characters
Debug.Assert( bufPos >= 4 );
bufPos -= 3;
}
else {
// Start a new cdata section
bufBytes[bufPos++] = (byte) '<';
bufBytes[bufPos++] = (byte) '!';
bufBytes[bufPos++] = (byte) '[';
bufBytes[bufPos++] = (byte) 'C';
bufBytes[bufPos++] = (byte) 'D';
bufBytes[bufPos++] = (byte) 'A';
bufBytes[bufPos++] = (byte) 'T';
bufBytes[bufPos++] = (byte) 'A';
bufBytes[bufPos++] = (byte) '[';
}
WriteCDataSection( text );
bufBytes[bufPos++] = (byte) ']';
bufBytes[bufPos++] = (byte) ']';
bufBytes[bufPos++] = (byte) '>';
textPos = bufPos;
cdataPos = bufPos;
}