aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-24 19:18:35 +0000
committerKenny Root <kenny@the-b.org>2009-06-24 19:18:35 +0000
commit9c24eddf62f97f354c9715388e18859492f13e40 (patch)
tree8ba6d7048226655bae8964e469f43683f3047fb5 /src/org
parent77440a7c3f4b9b2aa4918d290e0b2f37370a131c (diff)
downloadconnectbot-9c24eddf62f97f354c9715388e18859492f13e40.tar.gz
connectbot-9c24eddf62f97f354c9715388e18859492f13e40.tar.bz2
connectbot-9c24eddf62f97f354c9715388e18859492f13e40.zip
Add in CHARSET (RFC 2066) support to Telnet transport
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@329 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/service/Relay.java4
-rw-r--r--src/org/connectbot/service/TerminalBridge.java8
-rw-r--r--src/org/connectbot/transport/Telnet.java10
3 files changed, 22 insertions, 0 deletions
diff --git a/src/org/connectbot/service/Relay.java b/src/org/connectbot/service/Relay.java
index 8cf9bf9..746a915 100644
--- a/src/org/connectbot/service/Relay.java
+++ b/src/org/connectbot/service/Relay.java
@@ -84,6 +84,10 @@ public class Relay implements Runnable {
}
}
+ public Charset getCharset() {
+ return currentCharset;
+ }
+
public void run() {
byteBuffer = ByteBuffer.allocate(BUFFER_SIZE);
charBuffer = CharBuffer.allocate(BUFFER_SIZE);
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 28fd821..b0d4dbe 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -19,6 +19,7 @@
package org.connectbot.service;
import java.io.IOException;
+import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
@@ -304,6 +305,13 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
}
/**
+ * @return charset in use by bridge
+ */
+ public Charset getCharset() {
+ return relay.getCharset();
+ }
+
+ /**
* Sets the encoding used by the terminal. If the connection is live,
* then the character set is changed for the next read.
* @param encoding the canonical name of the character encoding
diff --git a/src/org/connectbot/transport/Telnet.java b/src/org/connectbot/transport/Telnet.java
index 681da45..05f31b6 100644
--- a/src/org/connectbot/transport/Telnet.java
+++ b/src/org/connectbot/transport/Telnet.java
@@ -24,6 +24,7 @@ import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
+import java.nio.charset.Charset;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -98,6 +99,15 @@ public class Telnet extends AbsTransport {
@Override
public void notifyEndOfRecord() {
}
+
+ @Override
+ protected String getCharsetName() {
+ Charset charset = bridge.getCharset();
+ if (charset != null)
+ return charset.name();
+ else
+ return "";
+ }
};
}