Mercurial > 510Connectbot
diff src/org/tn5250j/framework/tn5250/Screen5250.java @ 423:76efe8fa29b9
more debugging looking for duplicate transmission
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Fri, 31 Oct 2014 08:58:00 -0700 |
parents | 651aff5a46c7 |
children | 09c1d3aae3f0 |
line wrap: on
line diff
--- a/src/org/tn5250j/framework/tn5250/Screen5250.java Thu Oct 30 16:27:31 2014 -0700 +++ b/src/org/tn5250j/framework/tn5250/Screen5250.java Fri Oct 31 08:58:00 2014 -0700 @@ -3443,8 +3443,42 @@ fireScreenChanged(); } + private int xx_position = 0; + private int xx_length = 0; + private char[] xx_pending = new char[2048]; + + private void xx_flush() { + if (xx_length > 0) { + char[] p = new char[xx_length]; + System.arraycopy(xx_pending, 0, p, xx_length); + Log.i(TAG, String.format("row %d col %d %s", getRow(xx_position), getCol(xx_position), new String(p))); + } + xx_length = 0; + } + + private void xx_debug(int cByte) { + if (cByte == 0) { + xx_flush(); + } + else { + if (xx_length == 0) { + xx_position = lastPos; + xx_pending[xx_length++] = (char)cByte; + } + else if (lastPos == xx_position + xx_length) { + xx_pending[xx_length++] = (char)cByte; + } + else { + xx_flush(); + xx_position = lastPos; + xx_pending[xx_length++] = (char)cByte; + } + } + } + protected void setChar(int cByte) { - //if (cByte != 0) Log.i(TAG, String.format("%d %c %d", lastPos, cByte, cByte)); + xx_debug(cByte); + if (lastPos > 0) { lastAttr = planes.getCharAttr(lastPos - 1); }