setCursorOff();
   protected final void pasteMe(boolean special) {      Clipboard cb =  Toolkit.getDefaultToolkit().getSystemClipboard();      Transferable content = cb.getContents(this);      setCursorOff();      try {         StringBuffer sb = new StringBuffer((String)content.getTransferData(DataFlavor.stringFlavor));         StringBuffer pd = new StringBuffer();         int r = getRow(lastPos);         int nextChar = 0;         int nChars = sb.length();         boolean omitLF = false;         boolean done = false;         screenFields.saveCurrentField();         int lr = getRow(lastPos);         int lc = getCol(lastPos);         resetDirty(lastPos);         while (!done) {            if (nextChar >= nChars) { /* EOF */               done = true;               break;            }            pd.setLength(0);            boolean eol = false;            char c = 0;            int i;            /* Skip a leftover '\n', if necessary */            if (omitLF && (sb.charAt(nextChar) == '\n'))               nextChar++;            boolean skipLF = false;            omitLF = false;            charLoop:            for (i = nextChar; i < nChars; i++) {               c = sb.charAt(i);               if ((c == '\n') || (c == '\r')) {                  eol = true;                  break charLoop;               }            }            int startChar = nextChar;            nextChar = i;            pd.append(sb.substring(startChar, startChar + (i - startChar)));            if (eol) {               nextChar++;               if (c == '\r') {                  skipLF = true;               }            }            System.out.println("pasted >" + pd + "<");            int col = getCol(lastPos);            int t = numCols - col;            if (t > pd.length())               t = pd.length();            int p = 0;            char pc;            boolean setIt;            while (t-- > 0) {               pc = pd.charAt(p);               setIt = true;               if (special &&                  (!Character.isLetter(pc) &&                   !Character.isDigit(pc)))                  setIt = false;               if (isInField(r,col) && setIt) {                  screen[getPos(r,col)].setChar(pc);                  setDirty(r,col);                  screenFields.setCurrentFieldMDT();               }               p++;               if (setIt)                  col++;            }            r++;         }         screenFields.restoreCurrentField();         updateDirty();         goto_XY(lr+1,lc+1);      }      catch (Throwable exc) {         System.err.println(exc);      }      setCursorOn();   }