aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-15 22:08:03 +0000
committerKenny Root <kenny@the-b.org>2009-06-15 22:08:03 +0000
commit157b17bc041925d7a187f90e7a352dd915823c48 (patch)
tree89842dc07a97800631776e940be8f2447c46e368 /src/org
parentd5945e821483477ca23f4998f8f310c53ccba2ab (diff)
downloadconnectbot-157b17bc041925d7a187f90e7a352dd915823c48.tar.gz
connectbot-157b17bc041925d7a187f90e7a352dd915823c48.tar.bz2
connectbot-157b17bc041925d7a187f90e7a352dd915823c48.zip
Add configurable backspace key
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@303 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/bean/HostBean.java8
-rw-r--r--src/org/connectbot/service/TerminalBridge.java8
-rw-r--r--src/org/connectbot/util/HostDatabase.java14
3 files changed, 28 insertions, 2 deletions
diff --git a/src/org/connectbot/bean/HostBean.java b/src/org/connectbot/bean/HostBean.java
index 3dcdee5..f1be4a3 100644
--- a/src/org/connectbot/bean/HostBean.java
+++ b/src/org/connectbot/bean/HostBean.java
@@ -44,6 +44,7 @@ public class HostBean extends AbstractBean {
private String postLogin = null;
private long pubkeyId = -1;
private boolean wantSession = true;
+ private String delKey = HostDatabase.DELKEY_DEL;
private boolean compression = false;
private String encoding = HostDatabase.ENCODING_DEFAULT;
@@ -157,6 +158,12 @@ public class HostBean extends AbstractBean {
public boolean getWantSession() {
return wantSession;
}
+ public void setDelKey(String delKey) {
+ this.delKey = delKey;
+ }
+ public String getDelKey() {
+ return delKey;
+ }
public void setCompression(boolean compression) {
this.compression = compression;
}
@@ -198,6 +205,7 @@ public class HostBean extends AbstractBean {
values.put(HostDatabase.FIELD_HOST_POSTLOGIN, postLogin);
values.put(HostDatabase.FIELD_HOST_PUBKEYID, pubkeyId);
values.put(HostDatabase.FIELD_HOST_WANTSESSION, Boolean.toString(wantSession));
+ values.put(HostDatabase.FIELD_HOST_DELKEY, delKey);
values.put(HostDatabase.FIELD_HOST_COMPRESSION, Boolean.toString(compression));
values.put(HostDatabase.FIELD_HOST_ENCODING, encoding);
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 728e7eb..27edd2b 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -29,6 +29,7 @@ import org.connectbot.bean.PortForwardBean;
import org.connectbot.bean.SelectionArea;
import org.connectbot.transport.AbsTransport;
import org.connectbot.transport.TransportFactory;
+import org.connectbot.util.HostDatabase;
import org.connectbot.util.PreferenceConstants;
import android.content.Context;
@@ -362,6 +363,11 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
// "screen" works the best for color and escape codes
((vt320) buffer).setAnswerBack(emulation);
+ if (HostDatabase.DELKEY_BACKSPACE.equals(host.getDelKey()))
+ ((vt320) buffer).setBackspace(vt320.DELETE_IS_BACKSPACE);
+ else
+ ((vt320) buffer).setBackspace(vt320.DELETE_IS_DEL);
+
// create thread to relay incoming connection data to buffer
relay = new Relay(this, transport, (vt320) buffer, host.getEncoding());
Thread relayThread = new Thread(relay);
@@ -530,6 +536,8 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
key -= 0x40;
else if (key == 0x20)
key = 0x00;
+ else if (key == 0x3F)
+ key = 0x7F;
metaState &= ~META_CTRL_ON;
diff --git a/src/org/connectbot/util/HostDatabase.java b/src/org/connectbot/util/HostDatabase.java
index d2586c0..f8a4e3f 100644
--- a/src/org/connectbot/util/HostDatabase.java
+++ b/src/org/connectbot/util/HostDatabase.java
@@ -18,8 +18,8 @@
package org.connectbot.util;
-import java.util.Iterator;
import java.nio.charset.Charset;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -49,7 +49,7 @@ public class HostDatabase extends SQLiteOpenHelper {
public final static String TAG = "ConnectBot.HostDatabase";
public final static String DB_NAME = "hosts";
- public final static int DB_VERSION = 16;
+ public final static int DB_VERSION = 17;
public final static String TABLE_HOSTS = "hosts";
public final static String FIELD_HOST_NICKNAME = "nickname";
@@ -65,6 +65,7 @@ public class HostDatabase extends SQLiteOpenHelper {
public final static String FIELD_HOST_POSTLOGIN = "postlogin";
public final static String FIELD_HOST_PUBKEYID = "pubkeyid";
public final static String FIELD_HOST_WANTSESSION = "wantsession";
+ public final static String FIELD_HOST_DELKEY = "delkey";
public final static String FIELD_HOST_COMPRESSION = "compression";
public final static String FIELD_HOST_ENCODING = "encoding";
@@ -86,6 +87,9 @@ public class HostDatabase extends SQLiteOpenHelper {
public final static String PORTFORWARD_DYNAMIC4 = "dynamic4";
public final static String PORTFORWARD_DYNAMIC5 = "dynamic5";
+ public final static String DELKEY_DEL = "del";
+ public final static String DELKEY_BACKSPACE = "backspace";
+
public final static String ENCODING_DEFAULT = Charset.defaultCharset().name();
public final static long PUBKEYID_NEVER = -2;
@@ -115,6 +119,7 @@ public class HostDatabase extends SQLiteOpenHelper {
+ FIELD_HOST_USEKEYS + " TEXT, "
+ FIELD_HOST_POSTLOGIN + " TEXT, "
+ FIELD_HOST_PUBKEYID + " INTEGER DEFAULT " + PUBKEYID_ANY + ", "
+ + FIELD_HOST_DELKEY + " TEXT DEFAULT '" + DELKEY_DEL + "', "
+ FIELD_HOST_WANTSESSION + " TEXT DEFAULT '" + Boolean.toString(true) + "', "
+ FIELD_HOST_COMPRESSION + " TEXT DEFAULT '" + Boolean.toString(false) + "', "
+ FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_DEFAULT + "')");
@@ -165,6 +170,9 @@ public class HostDatabase extends SQLiteOpenHelper {
case 15:
db.execSQL("ALTER TABLE " + TABLE_HOSTS
+ " ADD COLUMN " + FIELD_HOST_PROTOCOL + " TEXT DEFAULT 'ssh'");
+ case 16:
+ db.execSQL("ALTER TABLE " + TABLE_HOSTS
+ + " ADD COLUMN " + FIELD_HOST_DELKEY + " TEXT DEFAULT '" + DELKEY_DEL + "'");
}
} catch (SQLiteException e) {
// The database has entered an unknown state. Try to recover.
@@ -316,6 +324,7 @@ public class HostDatabase extends SQLiteOpenHelper {
COL_POSTLOGIN = c.getColumnIndexOrThrow(FIELD_HOST_POSTLOGIN),
COL_PUBKEYID = c.getColumnIndexOrThrow(FIELD_HOST_PUBKEYID),
COL_WANTSESSION = c.getColumnIndexOrThrow(FIELD_HOST_WANTSESSION),
+ COL_DELKEY = c.getColumnIndexOrThrow(FIELD_HOST_DELKEY),
COL_COMPRESSION = c.getColumnIndexOrThrow(FIELD_HOST_COMPRESSION),
COL_ENCODING = c.getColumnIndexOrThrow(FIELD_HOST_ENCODING);
@@ -334,6 +343,7 @@ public class HostDatabase extends SQLiteOpenHelper {
host.setPostLogin(c.getString(COL_POSTLOGIN));
host.setPubkeyId(c.getLong(COL_PUBKEYID));
host.setWantSession(Boolean.valueOf(c.getString(COL_WANTSESSION)));
+ host.setDelKey(c.getString(COL_DELKEY));
host.setCompression(Boolean.valueOf(c.getString(COL_COMPRESSION)));
host.setEncoding(c.getString(COL_ENCODING));