git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix javadoc
[fanfix.git]
/
src
/
jexer
/
net
/
TelnetInputStream.java
diff --git
a/src/jexer/net/TelnetInputStream.java
b/src/jexer/net/TelnetInputStream.java
index 9ae77476de7d5d39305ce356149d58494fd6e2d3..3e74561a40c20e6ea9b166dea9de4d2e24e00f1c 100644
(file)
--- a/
src/jexer/net/TelnetInputStream.java
+++ b/
src/jexer/net/TelnetInputStream.java
@@
-3,7
+3,7
@@
*
* The MIT License (MIT)
*
*
* The MIT License (MIT)
*
- * Copyright (C) 201
7
Kevin Lamonte
+ * Copyright (C) 201
9
Kevin Lamonte
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@
-40,8
+40,7
@@
import static jexer.net.TelnetSocket.*;
/**
* TelnetInputStream works with TelnetSocket to perform the telnet protocol.
*/
/**
* TelnetInputStream works with TelnetSocket to perform the telnet protocol.
*/
-public final class TelnetInputStream extends InputStream
- implements SessionInfo {
+public class TelnetInputStream extends InputStream implements SessionInfo {
// ------------------------------------------------------------------------
// Constants --------------------------------------------------------------
// ------------------------------------------------------------------------
// Constants --------------------------------------------------------------
@@
-200,6
+199,15
@@
public final class TelnetInputStream extends InputStream
this.language = language;
}
this.language = language;
}
+ /**
+ * Get the terminal type as reported by the telnet Terminal Type option.
+ *
+ * @return the terminal type
+ */
+ public String getTerminalType() {
+ return master.terminalType;
+ }
+
/**
* Text window width getter.
*
/**
* Text window width getter.
*
@@
-312,6
+320,7
@@
public final class TelnetInputStream extends InputStream
// If we got something, return it.
if (rc > 0) {
// If we got something, return it.
if (rc > 0) {
+ readBufferEnd += rc;
readBufferStart++;
return readBuffer[readBufferStart - 1];
}
readBufferStart++;
return readBuffer[readBufferStart - 1];
}
@@
-927,25
+936,41
@@
public final class TelnetInputStream extends InputStream
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
- windowWidth = subnegBuffer.get(i) * 256;
+ int width = subnegBuffer.get(i);
+ if (width < 0) {
+ width += 256;
+ }
+ windowWidth = width * 256;
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
- windowWidth += subnegBuffer.get(i);
+ width = subnegBuffer.get(i);
+ windowWidth += width;
+ if (width < 0) {
+ windowWidth += 256;
+ }
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
- windowHeight = subnegBuffer.get(i) * 256;
+ int height = subnegBuffer.get(i);
+ if (height < 0) {
+ height += 256;
+ }
+ windowHeight = height * 256;
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
i++;
if (subnegBuffer.get(i) == (byte)TELNET_IAC) {
i++;
}
- windowHeight += subnegBuffer.get(i);
+ height = subnegBuffer.get(i);
+ windowHeight += height;
+ if (height < 0) {
+ windowHeight += 256;
+ }
}
break;
}
break;