mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-14 20:45:22 +02:00
[267474] added window size option handling.
This commit is contained in:
parent
2759275911
commit
e80b62240a
2 changed files with 24 additions and 9 deletions
|
@ -7,7 +7,7 @@ Bundle-Activator: org.eclipse.rse.internal.services.telnet.Activator
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
Require-Bundle: org.eclipse.core.runtime,
|
Require-Bundle: org.eclipse.core.runtime,
|
||||||
org.eclipse.rse.services;bundle-version="[3.1.0,4.0.0)",
|
org.eclipse.rse.services;bundle-version="[3.1.0,4.0.0)",
|
||||||
org.apache.commons.net;bundle-version="[1.4.1,3.0.0)"
|
org.apache.commons.net;bundle-version="[2.0.0,3.0.0)"
|
||||||
Export-Package: org.eclipse.rse.internal.services.telnet;x-friends:="org.eclipse.rse.connectorservice.telnet,org.eclipse.rse.subsystems.shells.telnet",
|
Export-Package: org.eclipse.rse.internal.services.telnet;x-friends:="org.eclipse.rse.connectorservice.telnet,org.eclipse.rse.subsystems.shells.telnet",
|
||||||
org.eclipse.rse.internal.services.telnet.terminal;x-friends:="org.eclipse.rse.subsystems.shells.telnet"
|
org.eclipse.rse.internal.services.telnet.terminal;x-friends:="org.eclipse.rse.subsystems.shells.telnet"
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [227320] Fix endless loop in TelnetTerminalShell
|
* Martin Oberhuber (Wind River) - [227320] Fix endless loop in TelnetTerminalShell
|
||||||
* Anna Dushistova (MontaVista) - [240523] [rseterminals] Provide a generic adapter factory that adapts any ITerminalService to an IShellService
|
* Anna Dushistova (MontaVista) - [240523] [rseterminals] Provide a generic adapter factory that adapts any ITerminalService to an IShellService
|
||||||
* Martin Oberhuber (Wind River) - [267402] [telnet] "launch shell" takes forever
|
* Martin Oberhuber (Wind River) - [267402] [telnet] "launch shell" takes forever
|
||||||
|
* Anna Dushistova (MontaVista) - [267474] [rseterminal][telnet] Notify the remote when terminal window size changes
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.services.telnet.terminal;
|
package org.eclipse.rse.internal.services.telnet.terminal;
|
||||||
|
@ -25,6 +26,8 @@ import java.io.Writer;
|
||||||
|
|
||||||
import org.apache.commons.net.io.ToNetASCIIInputStream;
|
import org.apache.commons.net.io.ToNetASCIIInputStream;
|
||||||
import org.apache.commons.net.telnet.EchoOptionHandler;
|
import org.apache.commons.net.telnet.EchoOptionHandler;
|
||||||
|
import org.apache.commons.net.telnet.InvalidTelnetOptionException;
|
||||||
|
import org.apache.commons.net.telnet.WindowSizeOptionHandler;
|
||||||
import org.apache.commons.net.telnet.SuppressGAOptionHandler;
|
import org.apache.commons.net.telnet.SuppressGAOptionHandler;
|
||||||
import org.apache.commons.net.telnet.TelnetClient;
|
import org.apache.commons.net.telnet.TelnetClient;
|
||||||
import org.apache.commons.net.telnet.TelnetOption;
|
import org.apache.commons.net.telnet.TelnetOption;
|
||||||
|
@ -96,13 +99,16 @@ public class TelnetTerminalShell extends AbstractTerminalShell {
|
||||||
fTelnetClient = new TelnetClient();
|
fTelnetClient = new TelnetClient();
|
||||||
} else {
|
} else {
|
||||||
fTelnetClient = new TelnetClient(ptyType);
|
fTelnetClient = new TelnetClient(ptyType);
|
||||||
fTelnetClient.addOptionHandler(new TerminalTypeOptionHandler(ptyType, true, true, true, true));
|
fTelnetClient.addOptionHandler(new TerminalTypeOptionHandler(
|
||||||
|
ptyType, true, true, true, true));
|
||||||
}
|
}
|
||||||
// request remote echo, but accept local if desired
|
// request remote echo, but accept local if desired
|
||||||
fTelnetClient.addOptionHandler(new EchoOptionHandler(false, true,
|
fTelnetClient.addOptionHandler(new EchoOptionHandler(false, true,
|
||||||
true, true));
|
true, true));
|
||||||
fTelnetClient.addOptionHandler(new SuppressGAOptionHandler(true,
|
fTelnetClient.addOptionHandler(new SuppressGAOptionHandler(true,
|
||||||
true, true, true));
|
true, true, true));
|
||||||
|
fTelnetClient.addOptionHandler(new WindowSizeOptionHandler(fWidth,
|
||||||
|
fHeight, true, true, true, true));
|
||||||
fTelnetClient = fSessionProvider.loginTelnetClient(fTelnetClient,
|
fTelnetClient = fSessionProvider.loginTelnetClient(fTelnetClient,
|
||||||
new NullProgressMonitor());
|
new NullProgressMonitor());
|
||||||
fOutputStream = fTelnetClient.getOutputStream();
|
fOutputStream = fTelnetClient.getOutputStream();
|
||||||
|
@ -270,6 +276,15 @@ public class TelnetTerminalShell extends AbstractTerminalShell {
|
||||||
&& (newWidth != fWidth || newHeight != fHeight)) {
|
&& (newWidth != fWidth || newHeight != fHeight)) {
|
||||||
// avoid excessive communications due to change size requests by
|
// avoid excessive communications due to change size requests by
|
||||||
// caching previous size
|
// caching previous size
|
||||||
|
synchronized (fTelnetClient) {
|
||||||
|
try {
|
||||||
|
fTelnetClient.deleteOptionHandler(TelnetOption.WINDOW_SIZE);
|
||||||
|
fTelnetClient.addOptionHandler(new WindowSizeOptionHandler(
|
||||||
|
newWidth, newHeight, true, true, true, true));
|
||||||
|
} catch (InvalidTelnetOptionException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
fWidth = newWidth;
|
fWidth = newWidth;
|
||||||
fHeight = newHeight;
|
fHeight = newHeight;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue