mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-20 14:45:57 +02:00
fix for Bug 161773 - introducing IHostOutput
This commit is contained in:
parent
c39ad5b393
commit
441fbea44f
14 changed files with 117 additions and 59 deletions
|
@ -19,9 +19,12 @@ package org.eclipse.rse.internal.services.dstore.shell;
|
||||||
import org.eclipse.dstore.core.model.DataElement;
|
import org.eclipse.dstore.core.model.DataElement;
|
||||||
import org.eclipse.dstore.extra.internal.extra.DomainEvent;
|
import org.eclipse.dstore.extra.internal.extra.DomainEvent;
|
||||||
import org.eclipse.dstore.extra.internal.extra.IDomainListener;
|
import org.eclipse.dstore.extra.internal.extra.IDomainListener;
|
||||||
|
import org.eclipse.rse.services.dstore.shells.DStoreHostOutput;
|
||||||
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.SimpleHostOutput;
|
||||||
|
|
||||||
public class DStoreShellOutputReader extends AbstractHostShellOutputReader implements IHostShellOutputReader, IDomainListener
|
public class DStoreShellOutputReader extends AbstractHostShellOutputReader implements IHostShellOutputReader, IDomainListener
|
||||||
{
|
{
|
||||||
|
@ -45,7 +48,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
|
||||||
return pwd;
|
return pwd;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Object internalReadLine()
|
protected IHostOutput internalReadLine()
|
||||||
{
|
{
|
||||||
if (_status != null && _keepRunning)
|
if (_status != null && _keepRunning)
|
||||||
{
|
{
|
||||||
|
@ -61,11 +64,11 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
|
||||||
boolean isError = type.equals("error") || type.equals("stderr");
|
boolean isError = type.equals("error") || type.equals("stderr");
|
||||||
if (_isErrorReader && isError)
|
if (_isErrorReader && isError)
|
||||||
{
|
{
|
||||||
return line;
|
return new DStoreHostOutput(line);
|
||||||
}
|
}
|
||||||
else if (!_isErrorReader && !isError)
|
else if (!_isErrorReader && !isError)
|
||||||
{
|
{
|
||||||
return line;
|
return new DStoreHostOutput(line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,14 +88,14 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
|
||||||
if (!_isErrorReader)
|
if (!_isErrorReader)
|
||||||
{
|
{
|
||||||
DataElement dummyLine = _status.getDataStore().createObject(_status, "stdout", "");
|
DataElement dummyLine = _status.getDataStore().createObject(_status, "stdout", "");
|
||||||
return dummyLine;
|
return new DStoreHostOutput(dummyLine);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "";
|
return new SimpleHostOutput("");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean listeningTo(DomainEvent e)
|
public boolean listeningTo(DomainEvent e)
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package org.eclipse.rse.services.dstore.shells;
|
||||||
|
|
||||||
|
import org.eclipse.dstore.core.model.DataElement;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
|
|
||||||
|
public class DStoreHostOutput implements IHostOutput
|
||||||
|
{
|
||||||
|
|
||||||
|
private DataElement _element;
|
||||||
|
|
||||||
|
public DStoreHostOutput(DataElement element)
|
||||||
|
{
|
||||||
|
_element = element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getString()
|
||||||
|
{
|
||||||
|
return _element.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataElement getElement()
|
||||||
|
{
|
||||||
|
return _element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return getString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,8 +21,10 @@ import java.io.IOException;
|
||||||
|
|
||||||
import org.eclipse.rse.services.local.Activator;
|
import org.eclipse.rse.services.local.Activator;
|
||||||
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.SimpleHostOutput;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listener to shell output. As io streams through, refresh events are sent out
|
* Listener to shell output. As io streams through, refresh events are sent out
|
||||||
|
@ -133,7 +135,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
|
||||||
return theLine.toString();
|
return theLine.toString();
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
protected Object internalReadLine() {
|
protected IHostOutput internalReadLine() {
|
||||||
if (_reader == null) {
|
if (_reader == null) {
|
||||||
//Our workaround sets the stderr reader to null, so we never give any stderr output.
|
//Our workaround sets the stderr reader to null, so we never give any stderr output.
|
||||||
//TODO Check if ssh supports some method of having separate stdout and stderr streams
|
//TODO Check if ssh supports some method of having separate stdout and stderr streams
|
||||||
|
@ -232,7 +234,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
|
||||||
String debugLine = theDebugLine.toString();
|
String debugLine = theDebugLine.toString();
|
||||||
debugLine.compareTo(""); //$NON-NLS-1$
|
debugLine.compareTo(""); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
return theLine.toString();
|
return new SimpleHostOutput(theLine.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,10 @@ import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
import org.eclipse.rse.services.shells.IHostShellOutputReader;
|
||||||
|
import org.eclipse.rse.services.shells.SimpleHostOutput;
|
||||||
import org.eclipse.rse.services.ssh.Activator;
|
import org.eclipse.rse.services.ssh.Activator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,7 +51,7 @@ public class SshShellOutputReader extends AbstractHostShellOutputReader
|
||||||
getHostShell().isActive();
|
getHostShell().isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Object internalReadLine() {
|
protected IHostOutput internalReadLine() {
|
||||||
if (fReader == null) {
|
if (fReader == null) {
|
||||||
//Our workaround sets the stderr reader to null, so we never give any stderr output.
|
//Our workaround sets the stderr reader to null, so we never give any stderr output.
|
||||||
//TODO Check if ssh supports some method of having separate stdout and stderr streams
|
//TODO Check if ssh supports some method of having separate stdout and stderr streams
|
||||||
|
@ -150,7 +152,7 @@ public class SshShellOutputReader extends AbstractHostShellOutputReader
|
||||||
String debugLine = theDebugLine.toString();
|
String debugLine = theDebugLine.toString();
|
||||||
debugLine.compareTo(""); //$NON-NLS-1$
|
debugLine.compareTo(""); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
return theLine.toString();
|
return new SimpleHostOutput(theLine.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,19 +67,11 @@ public abstract class AbstractHostShellOutputReader extends Thread implements I
|
||||||
|
|
||||||
public void handle()
|
public void handle()
|
||||||
{
|
{
|
||||||
Object line = internalReadLine();
|
IHostOutput line = internalReadLine();
|
||||||
|
|
||||||
if (line != null)
|
if (line != null)
|
||||||
{
|
{
|
||||||
if (line instanceof String)
|
addLine(line);
|
||||||
{
|
|
||||||
//if (lineStr.length() > 0)
|
|
||||||
addLine(line);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
addLine(line);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -89,7 +81,7 @@ public abstract class AbstractHostShellOutputReader extends Thread implements I
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addLine(Object line)
|
protected void addLine(IHostOutput line)
|
||||||
{
|
{
|
||||||
_linesOfOutput.add(line);
|
_linesOfOutput.add(line);
|
||||||
int sizenow = _linesOfOutput.size();
|
int sizenow = _linesOfOutput.size();
|
||||||
|
@ -108,19 +100,19 @@ public abstract class AbstractHostShellOutputReader extends Thread implements I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object readLine()
|
public IHostOutput readLine()
|
||||||
{
|
{
|
||||||
if (!isAlive())
|
if (!isAlive())
|
||||||
{
|
{
|
||||||
internalReadLine();
|
internalReadLine();
|
||||||
start();
|
start();
|
||||||
}
|
}
|
||||||
return _linesOfOutput.get(_consumerOffset++);
|
return (IHostOutput)_linesOfOutput.get(_consumerOffset++);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object readLine(int lineNumber)
|
public IHostOutput readLine(int lineNumber)
|
||||||
{
|
{
|
||||||
return _linesOfOutput.get(lineNumber);
|
return (IHostOutput)_linesOfOutput.get(lineNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -191,6 +183,6 @@ public abstract class AbstractHostShellOutputReader extends Thread implements I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract Object internalReadLine();
|
protected abstract IHostOutput internalReadLine();
|
||||||
|
|
||||||
}
|
}
|
|
@ -41,9 +41,9 @@ public class HostShellChangeEvent implements IHostShellChangeEvent
|
||||||
return _reader;
|
return _reader;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getLines()
|
public IHostOutput[] getLines()
|
||||||
{
|
{
|
||||||
Object[] lines = new Object[_range];
|
IHostOutput[] lines = new IHostOutput[_range];
|
||||||
int r = 0;
|
int r = 0;
|
||||||
int size = _offset + _range ;
|
int size = _offset + _range ;
|
||||||
for (int i= _offset; i < size; i++)
|
for (int i= _offset; i < size; i++)
|
||||||
|
@ -54,7 +54,7 @@ public class HostShellChangeEvent implements IHostShellChangeEvent
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getLineObjects()
|
public IHostOutput[] getLineObjects()
|
||||||
{
|
{
|
||||||
return getLines();
|
return getLines();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
package org.eclipse.rse.services.shells;
|
||||||
|
|
||||||
|
public interface IHostOutput
|
||||||
|
{
|
||||||
|
public String getString();
|
||||||
|
}
|
|
@ -20,6 +20,6 @@ public interface IHostShellChangeEvent
|
||||||
{
|
{
|
||||||
public IHostShell getHostShell();
|
public IHostShell getHostShell();
|
||||||
public IHostShellOutputReader getReader();
|
public IHostShellOutputReader getReader();
|
||||||
public Object[] getLines();
|
public IHostOutput[] getLines();
|
||||||
public boolean isError();
|
public boolean isError();
|
||||||
}
|
}
|
|
@ -18,8 +18,8 @@ package org.eclipse.rse.services.shells;
|
||||||
|
|
||||||
public interface IHostShellOutputReader extends IHostShellOutputNotifier
|
public interface IHostShellOutputReader extends IHostShellOutputNotifier
|
||||||
{
|
{
|
||||||
public Object readLine();
|
public IHostOutput readLine();
|
||||||
public Object readLine(int index);
|
public IHostOutput readLine(int index);
|
||||||
public void addOutputListener(IHostShellOutputListener listener);
|
public void addOutputListener(IHostShellOutputListener listener);
|
||||||
public boolean isErrorReader();
|
public boolean isErrorReader();
|
||||||
public void finish();
|
public void finish();
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package org.eclipse.rse.services.shells;
|
||||||
|
|
||||||
|
public class SimpleHostOutput implements IHostOutput
|
||||||
|
{
|
||||||
|
private String _line;
|
||||||
|
public SimpleHostOutput(String line)
|
||||||
|
{
|
||||||
|
_line = line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getString()
|
||||||
|
{
|
||||||
|
return _line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return _line;
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,8 +20,10 @@ import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefresh
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteCommandShell;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteCommandShell;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
||||||
|
import org.eclipse.rse.services.shells.SimpleHostOutput;
|
||||||
import org.eclipse.rse.subsystems.shells.core.ShellStrings;
|
import org.eclipse.rse.subsystems.shells.core.ShellStrings;
|
||||||
import org.eclipse.rse.subsystems.shells.core.subsystems.ICandidateCommand;
|
import org.eclipse.rse.subsystems.shells.core.subsystems.ICandidateCommand;
|
||||||
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
|
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
|
||||||
|
@ -59,33 +61,30 @@ public class ServiceCommandShell extends RemoteCommandShell implements IServiceC
|
||||||
|
|
||||||
public void shellOutputChanged(IHostShellChangeEvent event)
|
public void shellOutputChanged(IHostShellChangeEvent event)
|
||||||
{
|
{
|
||||||
Object[] lines = event.getLines();
|
IHostOutput[] lines = event.getLines();
|
||||||
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
||||||
for (int i = 0; i < lines.length; i++)
|
for (int i = 0; i < lines.length; i++)
|
||||||
{
|
{
|
||||||
RemoteOutput output = null;
|
RemoteOutput output = null;
|
||||||
Object lineObj = lines[i];
|
IHostOutput lineObj = lines[i];
|
||||||
if (lineObj instanceof String)
|
if (lineObj instanceof SimpleHostOutput)
|
||||||
{
|
{
|
||||||
String line = (String)lineObj;
|
SimpleHostOutput line = (SimpleHostOutput)lineObj;
|
||||||
|
|
||||||
if (line != null)
|
String type = event.isError() ? "stderr" : "stdout";
|
||||||
|
if (event.isError())
|
||||||
{
|
{
|
||||||
String type = event.isError() ? "stderr" : "stdout";
|
output = new RemoteError(this, type);
|
||||||
if (event.isError())
|
|
||||||
{
|
|
||||||
output = new RemoteError(this, type);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
output = new RemoteOutput(this, type);
|
|
||||||
}
|
|
||||||
output.setText(line);
|
|
||||||
|
|
||||||
addOutput(output);
|
|
||||||
outputs[i] = output;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
output = new RemoteOutput(this, type);
|
||||||
|
}
|
||||||
|
String str = line.getString();
|
||||||
|
output.setText(str);
|
||||||
|
|
||||||
|
addOutput(output);
|
||||||
|
outputs[i] = output;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_lastRefreshJob == null || _lastRefreshJob.isComplete())
|
if (_lastRefreshJob == null || _lastRefreshJob.isComplete())
|
||||||
|
|
|
@ -21,7 +21,9 @@ import org.eclipse.rse.internal.services.dstore.shell.DStoreShellOutputReader;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
||||||
|
import org.eclipse.rse.services.dstore.shells.DStoreHostOutput;
|
||||||
import org.eclipse.rse.services.dstore.shells.DStoreHostShell;
|
import org.eclipse.rse.services.dstore.shells.DStoreHostShell;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
||||||
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
|
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
|
||||||
|
@ -57,15 +59,15 @@ public class DStoreServiceCommandShell extends ServiceCommandShell
|
||||||
|
|
||||||
public void shellOutputChanged(IHostShellChangeEvent event)
|
public void shellOutputChanged(IHostShellChangeEvent event)
|
||||||
{
|
{
|
||||||
Object[] lines = event.getLines();
|
IHostOutput[] lines = event.getLines();
|
||||||
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
||||||
for (int i = 0; i < lines.length; i++)
|
for (int i = 0; i < lines.length; i++)
|
||||||
{
|
{
|
||||||
RemoteOutput output = null;
|
RemoteOutput output = null;
|
||||||
Object lineObj = lines[i];
|
Object lineObj = lines[i];
|
||||||
if (lineObj instanceof DataElement)
|
if (lineObj instanceof DStoreHostOutput)
|
||||||
{
|
{
|
||||||
DataElement line = (DataElement)lineObj;
|
DataElement line = ((DStoreHostOutput)lineObj).getElement();
|
||||||
String type = line.getType();
|
String type = line.getType();
|
||||||
String src = line.getSource();
|
String src = line.getSource();
|
||||||
if (event.isError())
|
if (event.isError())
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.eclipse.rse.core.subsystems.ISubSystem;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
||||||
import org.eclipse.rse.services.shells.ParsedOutput;
|
import org.eclipse.rse.services.shells.ParsedOutput;
|
||||||
|
@ -74,11 +75,11 @@ public class LocalServiceCommandShell extends ServiceCommandShell
|
||||||
|
|
||||||
public void shellOutputChanged(IHostShellChangeEvent event)
|
public void shellOutputChanged(IHostShellChangeEvent event)
|
||||||
{
|
{
|
||||||
Object[] lines = event.getLines();
|
IHostOutput[] lines = event.getLines();
|
||||||
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
IRemoteOutput[] outputs = new IRemoteOutput[lines.length];
|
||||||
for (int i = 0; i < lines.length; i++)
|
for (int i = 0; i < lines.length; i++)
|
||||||
{
|
{
|
||||||
String line = (String)lines[i];
|
String line = lines[i].getString();
|
||||||
ParsedOutput parsedMsg = null;
|
ParsedOutput parsedMsg = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.eclipse.rse.core.subsystems.ISubSystem;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
import org.eclipse.rse.internal.subsystems.shells.servicesubsystem.OutputRefreshJob;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteError;
|
||||||
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
import org.eclipse.rse.internal.subsystems.shells.subsystems.RemoteOutput;
|
||||||
|
import org.eclipse.rse.services.shells.IHostOutput;
|
||||||
import org.eclipse.rse.services.shells.IHostShell;
|
import org.eclipse.rse.services.shells.IHostShell;
|
||||||
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
import org.eclipse.rse.services.shells.IHostShellChangeEvent;
|
||||||
import org.eclipse.rse.services.shells.ParsedOutput;
|
import org.eclipse.rse.services.shells.ParsedOutput;
|
||||||
|
@ -77,12 +78,12 @@ public class SshServiceCommandShell extends ServiceCommandShell implements ISyst
|
||||||
|
|
||||||
public void shellOutputChanged(IHostShellChangeEvent event)
|
public void shellOutputChanged(IHostShellChangeEvent event)
|
||||||
{
|
{
|
||||||
Object[] lines = event.getLines();
|
IHostOutput[] lines = event.getLines();
|
||||||
boolean gotCommand = false;
|
boolean gotCommand = false;
|
||||||
ArrayList outputs = new ArrayList(lines.length);
|
ArrayList outputs = new ArrayList(lines.length);
|
||||||
for (int i = 0; i < lines.length; i++)
|
for (int i = 0; i < lines.length; i++)
|
||||||
{
|
{
|
||||||
String line = (String)lines[i];
|
String line = lines[i].getString();
|
||||||
if (line.endsWith(getPromptCommand())) {
|
if (line.endsWith(getPromptCommand())) {
|
||||||
continue; //ignore our synthetic prompt command
|
continue; //ignore our synthetic prompt command
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue