- putCharXY(x, y, ch.getChar(), ch);
+ if ((x < clipLeft)
+ || (x >= clipRight)
+ || (y < clipTop)
+ || (y >= clipBottom)
+ ) {
+ return;
+ }
+
+ int X = x + offsetX;
+ int Y = y + offsetY;
+
+ // System.err.printf("putCharXY: %d, %d, %c\n", X, Y, ch);
+
+ if ((X >= 0) && (X < width) && (Y >= 0) && (Y < height)) {
+
+ // Do not put control characters on the display
+ if (!ch.isImage()) {
+ assert (ch.getChar() >= 0x20);
+ assert (ch.getChar() != 0x7F);
+ }
+ logical[X][Y].setTo(ch);
+
+ // If this happens to be the cursor position, make the position
+ // dirty.
+ if ((cursorX == X) && (cursorY == Y)) {
+ physical[cursorX][cursorY].unset();
+ unsetImageRow(cursorY);
+ }
+ }