int lines = height / lineHeight;
int lines = (height == -1 ? clientAreaHeight : height) / lineHeight;
void doPageUp(boolean select, int height) {	if (isSingleLine()) {		return;	}	int oldHScrollOffset = horizontalScrollOffset;	int oldColumnX = columnX;		if (isFixedLineHeight()) {		int caretLine = getCaretLine();			if (caretLine > 0) {			int lineHeight = renderer.getLineHeight();			int lines = height / lineHeight;			int scrollLines = Math.max(1, Math.min(caretLine, lines));			caretLine -= scrollLines;			caretOffset = getOffsetAtPoint(columnX, getLinePixel(caretLine));			if (select) {				doSelection(ST.COLUMN_PREVIOUS);			}			// scroll one page up or to the top			int scrollOffset = Math.max(0, getVerticalScrollOffset() - scrollLines * getVerticalIncrement());			if (scrollOffset < getVerticalScrollOffset()) {				scrollVertical(scrollOffset - getVerticalScrollOffset(), true);			}		}	} else {		int oldVScrollOffset = getVerticalScrollOffset();		int caretY = getCaret().getLocation().y;			int vscroll = Math.min(getVerticalScrollOffset(), height);		scrollVertical(-vscroll, true);		caretY -= height - (oldVScrollOffset - getVerticalScrollOffset());		caretOffset = getOffsetAtPoint(columnX, caretY);		setCaretLocation();		if (select) {			doSelection(ST.COLUMN_PREVIOUS);		}	}	showCaret();	int hScrollChange = oldHScrollOffset - horizontalScrollOffset;	columnX = oldColumnX + hScrollChange;}