diff options
author | Anton Leherbauer | 2014-11-05 10:18:16 +0000 |
---|---|---|
committer | Anton Leherbauer | 2014-11-05 10:18:16 +0000 |
commit | 6ffe604ee1e8813c461aee542aa726d403140df4 (patch) | |
tree | edd6fd48dd0ea1472544317c43424262a0674269 | |
parent | 3c9e99795dacc26f5e6caf1e05dfee6b9e46da44 (diff) | |
download | org.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.java | 16 |
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() */ |