diff --git a/frysk-core/configure.ac b/frysk-core/configure.ac
index 49bab9acb..69fc220b3 100644
--- a/frysk-core/configure.ac
+++ b/frysk-core/configure.ac
@@ -47,7 +47,7 @@ m4_include([common/frysk-common.ac])
AM_INIT_AUTOMAKE([subdir-objects foreign no-installinfo no-exeext no-dist])
AC_FIND_FILE([antlr.jar], [/usr/share/java], ANTLR_JAR)
AC_FIND_FILE([junit.jar], [/usr/share/java], JUNIT_JAR)
-AC_FIND_FILE([jline-1.0.jar], [/usr/lib/java/jline1], JLINE_JAR)
+AC_FIND_FILE([jline.jar], [/usr/share/java/jline], JLINE_JAR)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/frysk-core/frysk/bindir/fhpd.java b/frysk-core/frysk/bindir/fhpd.java
index 3738a2c0c..5b4d69bb7 100644
--- a/frysk-core/frysk/bindir/fhpd.java
+++ b/frysk-core/frysk/bindir/fhpd.java
@@ -51,8 +51,8 @@ import java.util.Observable;
import java.util.Observer;
import frysk.hpd.CLI;
-import jline.Completor;
-import jline.ConsoleReader;
+import jline.console.completer.Completer;
+import jline.console.ConsoleReader;
import frysk.util.FlowControlWriter;
import frysk.proc.Manager;
import frysk.util.CommandlineParser;
@@ -67,9 +67,9 @@ public class fhpd {
private static int exitStatus;
private static String[] params;
- final static class FhpdCompletor implements Completor {
+ final static class FhpdCompleter implements Completer {
CLI cli;
- public FhpdCompletor (CLI cli) {
+ public FhpdCompleter (CLI cli) {
this.cli = cli;
}
public int complete (String buffer, int cursor, List candidates) {
@@ -108,19 +108,16 @@ public class fhpd {
terminal.getObservable()
.addObserver(new TerminalObserver(writer));
cli = new CLI("(fhpd) ", writer);
- reader = new ConsoleReader
- (new FileInputStream(java.io.FileDescriptor.in),
- printWriter,
- null,
- terminal);
+ reader = new ConsoleReader(new FileInputStream(java.io.FileDescriptor.in),
+ System.out, terminal);
} catch (IOException ioe) {
System.out.println("ERROR: Could not create a command line");
System.out.print(ioe.getMessage());
System.exit(1);
return;
}
- Completor fhpdCompletor = new FhpdCompletor(cli);
- reader.addCompletor(fhpdCompletor);
+ Completer fhpdCompleter = new FhpdCompleter(cli);
+ reader.addCompleter(fhpdCompleter);
}
public void execute() {
start();
diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java
index 3796a5d60..8e75051c7 100644
--- a/frysk-core/frysk/hpd/CompletionFactory.java
+++ b/frysk-core/frysk/hpd/CompletionFactory.java
@@ -42,7 +42,7 @@ import java.util.List;
import java.util.Iterator;
import frysk.debuginfo.DebugInfoFrame;
import frysk.proc.Task;
-import jline.FileNameCompletor;
+import jline.console.completer.FileNameCompleter;
import frysk.expr.ExprSearchEngine;
import frysk.expr.ExpressionFactory;
@@ -99,14 +99,14 @@ class CompletionFactory {
// System.out.println("input.size()=" + input.size());
if (input.size() == 0) {
int newOffset
- = new FileNameCompletor().complete("", 0, candidates);
+ = new FileNameCompleter().complete("", 0, candidates);
if (newOffset < 0)
return -1;
else
return newOffset + cursor;
} else {
Input.Token incomplete = input.incompleteToken(cursor);
- int newOffset = new FileNameCompletor()
+ int newOffset = new FileNameCompleter()
.complete(incomplete.value, incomplete.end - incomplete.start,
candidates);
return incomplete.absolute(newOffset);
diff --git a/frysk-core/frysk/util/ObservingTerminal.java b/frysk-core/frysk/util/ObservingTerminal.java
index 9cd7025ba..ca14f1a28 100644
--- a/frysk-core/frysk/util/ObservingTerminal.java
+++ b/frysk-core/frysk/util/ObservingTerminal.java
@@ -39,13 +39,14 @@
package frysk.util;
import java.io.*;
-import jline.ConsoleReader;
+import jline.console.ConsoleReader;
import frysk.sys.FileDescriptor;
public class ObservingTerminal
- extends PtyTerminal {
+ extends PtyTerminal
+{
public class Observable extends java.util.Observable {
private final ObservingTerminal terminal;
Observable(ObservingTerminal terminal) {
@@ -82,35 +83,9 @@ public class ObservingTerminal
super(string);
observable = new Observable(this);
}
-
- public void beforeReadLine(ConsoleReader reader, String prompt,
- Character mask) {
- inputEntered = false;
- observable.setChanged();
- observable.notifyObservers();
- super.beforeReadLine(reader, prompt, mask);
- }
-
- public int readVirtualKey(InputStream in)
- throws IOException {
- int result = super.readVirtualKey(in);
- inputEntered = true;
- observable.setChanged();
- observable.notifyObservers();
- return result;
- }
-
-
- public void afterReadLine(ConsoleReader reader, String prompt,
- Character mask) {
- inputEntered = false;
- observable.setChanged();
- observable.notifyObservers();
- super.afterReadLine(reader, prompt, mask);
- }
public Observable getObservable() {
return observable;
}
-
+
}
diff --git a/frysk-core/frysk/util/PtyTerminal.java b/frysk-core/frysk/util/PtyTerminal.java
index 517dd50e9..77c10501f 100644
--- a/frysk-core/frysk/util/PtyTerminal.java
+++ b/frysk-core/frysk/util/PtyTerminal.java
@@ -43,6 +43,7 @@ import java.io.InputStream;
import java.io.IOException;
import jline.Terminal;
+import jline.TerminalSupport;
import jline.UnixTerminal;
import frysk.sys.FileDescriptor;
@@ -56,7 +57,8 @@ import frysk.sys.termios.Termios;
* frysk.sys.termios calls. This copies UnixTerminal pretty closely.
*/
public class PtyTerminal
- extends Terminal
+ extends TerminalSupport
+ implements Terminal
{
private final FileDescriptor fd;
@@ -67,6 +69,7 @@ public class PtyTerminal
public PtyTerminal(FileDescriptor fd)
{
+ super(true);
this.fd = fd;
try
@@ -148,64 +151,21 @@ public class PtyTerminal
termios.set(fd);
}
- public int readVirtualKey (InputStream in)
- throws IOException
- {
- int c = readCharacter (in);
-
- // in Unix terminals, arrow keys are represented by
- // a sequence of 3 characters. E.g., the up arrow
- // key yields 27, 91, 68
- if (c == UnixTerminal.ARROW_START)
- {
- c = readCharacter (in);
- if (c == UnixTerminal.ARROW_PREFIX)
- {
- c = readCharacter (in);
- if (c == UnixTerminal.ARROW_UP)
- return CTRL_P;
- else if (c == UnixTerminal.ARROW_DOWN)
- return CTRL_N;
- else if (c == UnixTerminal.ARROW_LEFT)
- return CTRL_B;
- else if (c == UnixTerminal.ARROW_RIGHT)
- return CTRL_F;
- }
- }
- return c;
- }
-
- public boolean isSupported ()
- {
- return true;
- }
-
- public boolean getEcho ()
- {
- return false;
- }
-
public boolean isEchoEnabled() {
final Termios termios = new Termios(fd);
return termios.get(Local.ECHO_INPUT);
}
- public void disableEcho() {
- final Termios termios = new Termios(fd);
- termios.set(Local.ECHO_INPUT, false);
- termios.set(fd);
- }
-
- public void enableEcho() {
+ public void setEchoEnabled(boolean enabled) {
final Termios termios = new Termios(fd);
- termios.set(Local.ECHO_INPUT, true);
+ termios.set(Local.ECHO_INPUT, enabled);
termios.set(fd);
}
/**
* Returns the value of "stty size" width param.
*/
- public int getTerminalWidth()
+ public int getWidth()
{
Size size = fd.getSize();
return size.getRows();
@@ -214,7 +174,7 @@ public class PtyTerminal
/**
* Returns the value of "stty size" height param.
*/
- public int getTerminalHeight()
+ public int geteight()
{
Size size = fd.getSize();
return size.getColumns();