Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2014-11-05 10:18:16 +0000
committerAnton Leherbauer2014-11-05 10:18:16 +0000
commit6ffe604ee1e8813c461aee542aa726d403140df4 (patch)
treeedd6fd48dd0ea1472544317c43424262a0674269
parent3c9e99795dacc26f5e6caf1e05dfee6b9e46da44 (diff)
downloadorg.eclipse.tcf-6ffe604ee1e8813c461aee542aa726d403140df4.tar.gz
org.eclipse.tcf-6ffe604ee1e8813c461aee542aa726d403140df4.tar.xz
org.eclipse.tcf-6ffe604ee1e8813c461aee542aa726d403140df4.zip
Terminals: Make VT100 line wrapping mode dependent on terminal type
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/src/org/eclipse/tcf/te/ui/terminals/process/ProcessConnector.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/src/org/eclipse/tcf/te/ui/terminals/process/ProcessConnector.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/src/org/eclipse/tcf/te/ui/terminals/process/ProcessConnector.java
index 6bf41e279..ea324c382 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/src/org/eclipse/tcf/te/ui/terminals/process/ProcessConnector.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/src/org/eclipse/tcf/te/ui/terminals/process/ProcessConnector.java
@@ -20,6 +20,7 @@ import org.eclipse.cdt.utils.pty.PTY;
import org.eclipse.cdt.utils.spawner.ProcessFactory;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.custom.CTabItem;
@@ -99,6 +100,8 @@ public class ProcessConnector extends AbstractStreamsConnector {
height = -1;
try {
+ boolean isAnsiTerminal = false;
+
// Try to determine process and PTY instance from the process settings
process = settings.getProcess();
pty = settings.getPTY();
@@ -141,6 +144,8 @@ public class ProcessConnector extends AbstractStreamsConnector {
envp = Env.getEnvironment(envp, true);
}
+ isAnsiTerminal = getTermVariable(envp).startsWith("ansi"); //$NON-NLS-1$
+
if (pty != null) {
// A PTY is available -> can use the ProcessFactory.
@@ -187,7 +192,8 @@ public class ProcessConnector extends AbstractStreamsConnector {
setStderrListeners(settings.getStdErrListeners());
// Enable VT100 line wrapping if we are connected via pty
- if (pty != null)
+ // And TERM is VT100 compatible
+ if (pty != null && !isAnsiTerminal)
control.setVT100LineWrapping(true);
// connect the streams
@@ -218,6 +224,14 @@ public class ProcessConnector extends AbstractStreamsConnector {
}
}
+ private static String getTermVariable(String[] envp) {
+ if (envp != null && !Platform.OS_WIN32.equals(Platform.getOS()))
+ for (String var : envp)
+ if (var.startsWith("TERM=")) //$NON-NLS-1$
+ return var.substring(5);
+ return "xterm"; //$NON-NLS-1$
+ }
+
/* (non-Javadoc)
* @see org.eclipse.tcf.internal.terminal.provisional.api.provider.TerminalConnectorImpl#isLocalEcho()
*/

Back to the top