if (j + 1 < textStore.length) if (ch == SWT.CR && (textStore[j+1] == SWT.LF))
if (j + 1 < textStore.length) { if (ch == SWT.CR && (textStore[j+1] == SWT.LF)) {
void delete(int position, int length, int numLines) {	if (length == 0) return;			int startLine = getLineAtOffset(position);	int startLineOffset = getOffsetAtLine(startLine);	int endLine = getLineAtOffset(position + length);	String endText = "";	boolean splittingDelimiter = false;	if (position + length < getCharCount()) {		endText = getTextRange(position + length - 1, 2);		if ((endText.charAt(0) == SWT.CR) && (endText.charAt(1) == SWT.LF)) {			splittingDelimiter = true;		}	}	adjustGap(position + length, -length, startLine);	int [][] oldLines = indexLines(position, length + (gapEnd - gapStart), numLines);		// enlarge the gap - the gap can be enlarged either to the	// right or left	if (position + length == gapStart) {		gapStart -= length;	} else {		gapEnd += length;	}			// figure out the length of the new concatenated line, do so by	// finding the first line delmiter after position	int j = position;	boolean eol = false;	while (j < textStore.length && !eol) {		if (j < gapStart || j >= gapEnd) {			char ch = textStore[j];			if (isDelimiter(ch)) {				if (j + 1 < textStore.length) 					if (ch == SWT.CR && (textStore[j+1] == SWT.LF))						j++;				eol = true;			} 		}		j++;	}		// update the line where the deletion started	lines[startLine][1] = (position - startLineOffset) + (j - position);	// figure out the number of lines that have been deleted	int numOldLines = oldLines.length - 1;	if (splittingDelimiter) numOldLines -= 1;	// shift up the lines after the last deleted line, no need to update	// the offset or length of the lines	for (int i = endLine + 1; i < lineCount; i++) {		lines[i - numOldLines]=lines[i];	}	lineCount -= numOldLines;	gapLine = getLineAtPhysicalOffset(gapStart);		}