/** * Issue <em>num</em> deletes. * * @return the number of characters backed up */ private final int delete(final int num) throws IOException { /* Commented out beacuse of DWA-2949: if (buf.cursor == 0) return 0;*/ buf.buffer.delete(buf.cursor, buf.cursor + 1); drawBuffer(1); return 1; }
public final boolean replace(int num, String replacement) { buf.buffer.replace(buf.cursor - num, buf.cursor, replacement); try { moveCursor(-num); drawBuffer(Math.max(0, num - replacement.length())); moveCursor(replacement.length()); } catch (IOException e) { e.printStackTrace(); return false; } return true; }
/** Clear the echoed characters for the specified character code. */ int clearEcho(int c) throws IOException { // if the terminal is not echoing, then just return... if (!terminal.getEcho()) { return 0; } // otherwise, clear int num = countEchoCharacters((char) c); back(num); drawBuffer(num); return num; }
/** Delete the character at the current position and redraw the remainder of the buffer. */ private final boolean deleteCurrentCharacter() throws IOException { boolean success = buf.buffer.length() > 0; if (!success) { return false; } if (buf.cursor == buf.buffer.length()) { return false; } buf.buffer.deleteCharAt(buf.cursor); drawBuffer(1); return true; }
/** * Issue <em>num</em> backspaces. * * @return the number of characters backed up */ private final int backspace(final int num) throws IOException { if (buf.cursor == 0) { return 0; } int count = 0; count = moveCursor(-1 * num) * -1; // debug ("Deleting from " + buf.cursor + " for " + count); buf.buffer.delete(buf.cursor, buf.cursor + count); drawBuffer(count); return count; }
/** Output the specified character, both to the buffer and the output stream. */ private final void putChar(final int c, final boolean print) throws IOException { buf.write((char) c); if (print) { // no masking... if (mask == null) { printCharacter(c); } // null mask: don't print anything... else if (mask.charValue() == 0) {; } // otherwise print the mask... else { printCharacter(mask.charValue()); } drawBuffer(); } }
/** Write out the specified string to the buffer and the output stream. */ public final void putString(final String str) throws IOException { buf.write(str); printString(str); drawBuffer(); }
/** * Redraw the rest of the buffer from the cursor onwards. This is necessary for inserting text * into the buffer. */ private final void drawBuffer() throws IOException { drawBuffer(0); }