You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2010/02/10 16:19:13 UTC
svn commit: r908534 -
/felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
Author: gnodet
Date: Wed Feb 10 15:19:09 2010
New Revision: 908534
URL: http://svn.apache.org/viewvc?rev=908534&view=rev
Log:
FELIX-1939: Ssh client output is poorly formatted when connecting with a standard ssh client
Modified:
felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
Modified: felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java?rev=908534&r1=908533&r2=908534&view=diff
==============================================================================
--- felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java (original)
+++ felix/trunk/karaf/shell/ssh/src/main/java/org/apache/felix/karaf/shell/ssh/ShellFactoryImpl.java Wed Feb 10 15:19:09 2010
@@ -20,6 +20,7 @@
package org.apache.felix.karaf.shell.ssh;
import java.io.Closeable;
+import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -99,8 +100,8 @@
};
Console console = new Console(commandProcessor,
in,
- new PrintStream(out, true),
- new PrintStream(err, true),
+ new PrintStream(new LfToCrLfFilterOutputStream(out), true),
+ new PrintStream(new LfToCrLfFilterOutputStream(err), true),
new SshTerminal(env),
new AggregateCompleter(completers),
new Runnable() {
@@ -157,4 +158,26 @@
}
}
+ public class LfToCrLfFilterOutputStream extends FilterOutputStream {
+
+ private boolean lastWasCr;
+
+ public LfToCrLfFilterOutputStream(OutputStream out) {
+ super(out);
+ }
+
+ @Override
+ public void write(int b) throws IOException {
+ if (!lastWasCr && b == '\n') {
+ out.write('\r');
+ out.write('\n');
+ } else {
+ out.write(b);
+ }
+ lastWasCr = b == '\r';
+ }
+
+ }
+
+
}