You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2013/12/17 23:57:49 UTC
[2/2] git commit: [KARAF-2632] Handle backslashes at end of line in
the console
[KARAF-2632] Handle backslashes at end of line in the console
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/97914c26
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/97914c26
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/97914c26
Branch: refs/heads/karaf-2.x
Commit: 97914c265a9935ec26a89db2259fb8e8e1c40c9b
Parents: 538d2df
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Tue Dec 17 23:56:24 2013 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Tue Dec 17 23:57:26 2013 +0100
----------------------------------------------------------------------
.../karaf/shell/console/jline/Console.java | 29 +++++++++++++-------
1 file changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/97914c26/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java b/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
index 26adaae..4930d99 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
@@ -261,7 +261,11 @@ public class Console implements Runnable
if (command == null) {
command = line;
} else {
- command += " " + line;
+ if (command.charAt(command.length() - 1) == '\\') {
+ command = command.substring(0, command.length() - 1) + line;
+ } else {
+ command += "\n" + line;
+ }
}
if (reader.getHistory().size()==0) {
reader.getHistory().add(command);
@@ -273,17 +277,22 @@ public class Console implements Runnable
reader.getHistory().replace(command);
}
}
- try {
- Class<?> cl = CommandSession.class.getClassLoader().loadClass("org.apache.felix.gogo.runtime.Parser");
- Object parser = cl.getConstructor(CharSequence.class).newInstance(command);
- cl.getMethod("program").invoke(parser);
- loop = false;
- } catch (Exception e) {
+ if (command.length() > 0 && command.charAt(command.length() - 1) == '\\') {
loop = true;
first = false;
- } catch (Throwable t) {
- // Reflection problem ? just quit
- loop = false;
+ } else {
+ try {
+ Class<?> cl = CommandSession.class.getClassLoader().loadClass("org.apache.felix.gogo.runtime.Parser");
+ Object parser = cl.getConstructor(CharSequence.class).newInstance(command);
+ cl.getMethod("program").invoke(parser);
+ loop = false;
+ } catch (Exception e) {
+ loop = true;
+ first = false;
+ } catch (Throwable t) {
+ // Reflection problem ? just quit
+ loop = false;
+ }
}
}
return command;