Revision: 4420
http://tigervnc.svn.sourceforge.net/tigervnc/?rev=4420&view=rev
Author: bphinz
Date: 2011-05-17 03:06:24 +0000 (Tue, 17 May 2011)
Log Message:
-----------
changed string reads/writes to use utf-8. Also fixed location of icon resource.
Modified Paths:
--------------
trunk/java/src/com/tigervnc/rdr/InStream.java
trunk/java/src/com/tigervnc/rdr/OutStream.java
trunk/java/src/com/tigervnc/rfb/CMsgReader.java
trunk/java/src/com/tigervnc/rfb/CMsgWriter.java
trunk/java/src/com/tigervnc/rfb/CSecurityManaged.java
trunk/java/src/com/tigervnc/rfb/CSecurityPlain.java
trunk/java/src/com/tigervnc/rfb/CSecurityVncAuth.java
trunk/java/src/com/tigervnc/vncviewer/CConn.java
trunk/java/src/com/tigervnc/vncviewer/ClipboardDialog.java
trunk/java/src/com/tigervnc/vncviewer/DesktopWindow.java
Modified: trunk/java/src/com/tigervnc/rdr/InStream.java
===================================================================
--- trunk/java/src/com/tigervnc/rdr/InStream.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/rdr/InStream.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -73,16 +73,16 @@
if (len > maxStringLength)
throw new Exception("InStream max string length exceeded");
- char[] str = new char[len];
- int i = 0;
- while (i < len) {
- int j = i + check(1, len - i);
- while (i < j) {
- str[i++] = (char)b[ptr++];
- }
+ byte[] str = new byte[len+1];
+ readBytes(str, 0, len);
+ str[len] = 0;
+ String utf8string = new String();
+ try {
+ utf8string = new String(str,"UTF8");
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
}
-
- return new String(str);
+ return utf8string;
}
// maxStringLength protects against allocating a huge buffer. Set it
Modified: trunk/java/src/com/tigervnc/rdr/OutStream.java
===================================================================
--- trunk/java/src/com/tigervnc/rdr/OutStream.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/rdr/OutStream.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -63,11 +63,11 @@
public final void writeString(String str) {
int len = str.length();
writeU32(len);
- for (int i = 0; i < len;) {
- int j = i + check(1, len - i);
- while (i < j) {
- b[ptr++] = (byte)str.charAt(i++);
- }
+ try {
+ byte[] utf8str = str.getBytes("UTF8");
+ writeBytes(utf8str, 0, len);
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
}
}
Modified: trunk/java/src/com/tigervnc/rfb/CMsgReader.java
===================================================================
--- trunk/java/src/com/tigervnc/rfb/CMsgReader.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/rfb/CMsgReader.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -64,7 +64,13 @@
}
byte[] buf = new byte[len];
is.readBytes(buf, 0, len);
- handler.serverCutText(new String(buf), len);
+ String str = new String();
+ try {
+ str = new String(buf,"UTF8");
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ handler.serverCutText(str, len);
}
protected void readFramebufferUpdateStart()
Modified: trunk/java/src/com/tigervnc/rfb/CMsgWriter.java
===================================================================
--- trunk/java/src/com/tigervnc/rfb/CMsgWriter.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/rfb/CMsgWriter.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -144,7 +144,12 @@
startMsg(MsgTypes.msgTypeClientCutText);
os.pad(3);
os.writeU32(len);
- os.writeBytes(str.getBytes(), 0, len);
+ try {
+ byte[] utf8str = str.getBytes("UTF8");
+ os.writeBytes(utf8str, 0, len);
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
endMsg();
}
Modified: trunk/java/src/com/tigervnc/rfb/CSecurityManaged.java
===================================================================
--- trunk/java/src/com/tigervnc/rfb/CSecurityManaged.java 2011-05-16
12:46:51 UTC (rev 4419)
+++ trunk/java/src/com/tigervnc/rfb/CSecurityManaged.java 2011-05-17
03:06:24 UTC (rev 4420)
@@ -37,7 +37,12 @@
// Return the response to the server
os.writeU8(username.length());
- os.writeBytes(username.toString().getBytes(), 0, username.length());
+ try {
+ byte[] utf8str = username.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, username.length());
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
os.flush();
int serverPort = is.readU16();
//if (serverPort==0) { return true; };
Modified: trunk/java/src/com/tigervnc/rfb/CSecurityPlain.java
===================================================================
--- trunk/java/src/com/tigervnc/rfb/CSecurityPlain.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/rfb/CSecurityPlain.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -37,8 +37,15 @@
// Return the response to the server
os.writeU32(username.length());
os.writeU32(password.length());
- os.writeBytes(username.toString().getBytes(), 0, username.length());
- os.writeBytes(password.toString().getBytes(), 0, password.length());
+ byte[] utf8str;
+ try {
+ utf8str = username.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, username.length());
+ utf8str = password.toString().getBytes("UTF8");
+ os.writeBytes(utf8str, 0, password.length());
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
os.flush();
return true;
}
Modified: trunk/java/src/com/tigervnc/rfb/CSecurityVncAuth.java
===================================================================
--- trunk/java/src/com/tigervnc/rfb/CSecurityVncAuth.java 2011-05-16
12:46:51 UTC (rev 4419)
+++ trunk/java/src/com/tigervnc/rfb/CSecurityVncAuth.java 2011-05-17
03:06:24 UTC (rev 4420)
@@ -41,8 +41,14 @@
// Calculate the correct response
byte[] key = new byte[8];
int pwdLen = passwd.length();
+ byte[] utf8str = new byte[pwdLen];
+ try {
+ utf8str = passwd.toString().getBytes("UTF8");
+ } catch(java.io.UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
for (int i=0; i<8; i++)
- key[i] = i<pwdLen ? (byte)passwd.charAt(i) : 0;
+ key[i] = i<pwdLen ? utf8str[i] : 0;
DesCipher des = new DesCipher(key);
for (int j = 0; j < vncAuthChallengeSize; j += 8)
des.encrypt(challenge,j,challenge,j);
Modified: trunk/java/src/com/tigervnc/vncviewer/CConn.java
===================================================================
--- trunk/java/src/com/tigervnc/vncviewer/CConn.java 2011-05-16 12:46:51 UTC
(rev 4419)
+++ trunk/java/src/com/tigervnc/vncviewer/CConn.java 2011-05-17 03:06:24 UTC
(rev 4420)
@@ -416,7 +416,7 @@
viewport = new ViewportFrame(cp.name(), this);
viewport.setUndecorated(fullScreen);
ClassLoader loader = this.getClass().getClassLoader();
- URL url = loader.getResource("tigervnc.ico");
+ URL url = loader.getResource("com/tigervnc/vncviewer/tigervnc.ico");
ImageIcon icon = null;
if (url != null) {
icon = new ImageIcon(url);
Modified: trunk/java/src/com/tigervnc/vncviewer/ClipboardDialog.java
===================================================================
--- trunk/java/src/com/tigervnc/vncviewer/ClipboardDialog.java 2011-05-16
12:46:51 UTC (rev 4419)
+++ trunk/java/src/com/tigervnc/vncviewer/ClipboardDialog.java 2011-05-17
03:06:24 UTC (rev 4420)
@@ -49,13 +49,6 @@
pack();
}
- static Clipboard systemClipboard;
- static {
- try {
- systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
- } catch (Exception e) { }
- }
-
public void initDialog() {
textArea.setText(current);
textArea.selectAll();
@@ -69,10 +62,11 @@
public void serverCutText(String str, int len) {
setContents(str);
- if (systemClipboard != null) {
+ Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
+ if (cb != null) {
StringSelection ss = new StringSelection(str);
try {
- systemClipboard.setContents(ss, ss);
+ cb.setContents(ss, ss);
} catch(Exception e) {
vlog.debug(e.toString());
}
Modified: trunk/java/src/com/tigervnc/vncviewer/DesktopWindow.java
===================================================================
--- trunk/java/src/com/tigervnc/vncviewer/DesktopWindow.java 2011-05-16
12:46:51 UTC (rev 4419)
+++ trunk/java/src/com/tigervnc/vncviewer/DesktopWindow.java 2011-05-17
03:06:24 UTC (rev 4420)
@@ -30,6 +30,7 @@
import java.awt.image.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.Clipboard;
import javax.swing.*;
import com.tigervnc.rfb.*;
@@ -305,12 +306,12 @@
String oldContents = "";
synchronized public void checkClipboard() {
- if (ClipboardDialog.systemClipboard != null &&
- cc.viewer.sendClipboard.getValue()) {
- Transferable t = ClipboardDialog.systemClipboard.getContents(this);
+ Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
+ if (cb != null && cc.viewer.sendClipboard.getValue()) {
+ Transferable t = cb.getContents(null);
if ((t != null) && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
try {
- String newContents = (String)
t.getTransferData(DataFlavor.stringFlavor);
+ String newContents =
(String)t.getTransferData(DataFlavor.stringFlavor);
if (newContents != null && !newContents.equals(oldContents)) {
cc.writeClientCutText(newContents, newContents.length());
oldContents = newContents;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Tigervnc-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tigervnc-commits