aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-12 09:35:15 +0000
committerKenny Root <kenny@the-b.org>2009-06-12 09:35:15 +0000
commitec2a6fca2efac964efbcb302913fb8af68e60294 (patch)
tree9e3788ea80c0af5c1ff6d1fb1ed8e23c10a9ff99 /src/org
parentf930b37c7aaf4a6f2571ab632e271a208f95404a (diff)
downloadconnectbot-ec2a6fca2efac964efbcb302913fb8af68e60294.tar.gz
connectbot-ec2a6fca2efac964efbcb302913fb8af68e60294.tar.bz2
connectbot-ec2a6fca2efac964efbcb302913fb8af68e60294.zip
Add CP437 support
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@284 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/HostEditorActivity.java6
-rw-r--r--src/org/connectbot/service/Relay.java8
2 files changed, 13 insertions, 1 deletions
diff --git a/src/org/connectbot/HostEditorActivity.java b/src/org/connectbot/HostEditorActivity.java
index dcebbf8..9f38ecc 100644
--- a/src/org/connectbot/HostEditorActivity.java
+++ b/src/org/connectbot/HostEditorActivity.java
@@ -252,6 +252,12 @@ public class HostEditorActivity extends PreferenceActivity implements OnSharedPr
for (Entry<String, Charset> entry : Charset.availableCharsets().entrySet()) {
Charset c = entry.getValue();
if (c.canEncode() && c.isRegistered()) {
+ String key = entry.getKey();
+ if (key.startsWith("cp")) {
+ // Custom CP437 charset changes
+ charsetIds.add("CP437");
+ charsetNames.add("CP437");
+ }
charsetIds.add(entry.getKey());
charsetNames.add(c.displayName());
}
diff --git a/src/org/connectbot/service/Relay.java b/src/org/connectbot/service/Relay.java
index f713210..942de88 100644
--- a/src/org/connectbot/service/Relay.java
+++ b/src/org/connectbot/service/Relay.java
@@ -18,6 +18,8 @@
package org.connectbot.service;
+import gnu.java.nio.charset.Cp437;
+
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
@@ -76,7 +78,11 @@ public class Relay implements Runnable {
}
public void setCharset(String encoding) {
- Charset charset = Charset.forName(encoding);
+ Charset charset;
+ if (encoding.equals(Cp437.NAME))
+ charset = new Cp437();
+ else
+ charset = Charset.forName(encoding);
CharsetDecoder newCd = charset.newDecoder();
newCd.onUnmappableCharacter(CodingErrorAction.REPLACE);