question: public void append ( char c [ ] ) { int maxlength = buffer . length - pos ; if ( c . length < maxlength ) { System . arraycopy ( c , 0 , buffer , pos , c . length ) ; pos += c . length ; } else { System . arraycopy ( c , 0 , buffer , pos , maxlength ) ; curr . next = new Entity ( buffer ) ; curr = curr . next ; length += buffer . length ; buffer = new char [ ( buffer . length > c . length - maxlength ) ? buffer . length : c . length - maxlength ] ; if ( c . length > maxlength ) { System . arraycopy ( c , maxlength , buffer , 0 , c . length - maxlength ) ; pos = c . length - maxlength ; } else { pos = 0 ; } } }
target:  method to appennd a charr array to the buffer