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

Reply via email to