Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2009-08-24 18:36:43 +0000
committereutarass2009-08-24 18:36:43 +0000
commit437f758ee8bdce9fbf137744398b8405195d270a (patch)
treea909715f330a8716b4ff7b9e375d6d87daade38a
parentb9c4bd1be0f60b6aa498842c8f6e2d7cbcdd4ea5 (diff)
downloadorg.eclipse.tcf-437f758ee8bdce9fbf137744398b8405195d270a.tar.gz
org.eclipse.tcf-437f758ee8bdce9fbf137744398b8405195d270a.tar.xz
org.eclipse.tcf-437f758ee8bdce9fbf137744398b8405195d270a.zip
TCF Agent: added UNICODE support in file names on Windows
-rw-r--r--plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/protocol/JSON.java4
-rw-r--r--plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/services/IFileSystem.java2
-rw-r--r--plugins/org.eclipse.tm.tcf.rse/src/org/eclipse/tm/internal/tcf/rse/processes/TCFProcessResource.java25
3 files changed, 23 insertions, 8 deletions
diff --git a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/protocol/JSON.java b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/protocol/JSON.java
index c63cc0c05..a612cbfe9 100644
--- a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/protocol/JSON.java
+++ b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/protocol/JSON.java
@@ -149,6 +149,10 @@ public final class JSON {
ch |= (inp[inp_pos++] & 0x3f) << 6;
ch |= inp[inp_pos++] & 0x3f;
}
+ else {
+ assert false : "invalid UTF-8 encoding";
+ ch &= 0xff;
+ }
}
return ch;
}
diff --git a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/services/IFileSystem.java b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/services/IFileSystem.java
index 944ad252e..1bcaf2dc7 100644
--- a/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/services/IFileSystem.java
+++ b/plugins/org.eclipse.tm.tcf.core/src/org/eclipse/tm/tcf/services/IFileSystem.java
@@ -244,7 +244,7 @@ public interface IFileSystem extends IService {
S_IXGRP = 00010, // group has execute permission
S_IRWXO = 00007, // mask for permissions for others (not in group)
S_IROTH = 00004, // others have read permission
- S_IWOTH = 00002, // others have write permisson
+ S_IWOTH = 00002, // others have write permission
S_IXOTH = 00001; // others have execute permission
final static class DirEntry {
diff --git a/plugins/org.eclipse.tm.tcf.rse/src/org/eclipse/tm/internal/tcf/rse/processes/TCFProcessResource.java b/plugins/org.eclipse.tm.tcf.rse/src/org/eclipse/tm/internal/tcf/rse/processes/TCFProcessResource.java
index c9b595c98..c040f938b 100644
--- a/plugins/org.eclipse.tm.tcf.rse/src/org/eclipse/tm/internal/tcf/rse/processes/TCFProcessResource.java
+++ b/plugins/org.eclipse.tm.tcf.rse/src/org/eclipse/tm/internal/tcf/rse/processes/TCFProcessResource.java
@@ -193,11 +193,18 @@ public class TCFProcessResource extends AbstractResource implements IHostProcess
}
public String getLabel() {
- return Long.toString(getPid()) + " " + getName(); //$NON-NLS-1$
+ return Long.toString(getPid()) + " " + notNull(getName()); //$NON-NLS-1$
}
public String getName() {
- return (String)properties.get(ISysMonitor.PROP_FILE);
+ String s = (String)properties.get(ISysMonitor.PROP_FILE);
+ if (s != null) {
+ int i = s.lastIndexOf('/');
+ int j = s.lastIndexOf('\\');
+ if (j > i) i = j;
+ if (i > 0) s = s.substring(i + 1);
+ }
+ return s;
}
public long getPPid() {
@@ -241,31 +248,35 @@ public class TCFProcessResource extends AbstractResource implements IHostProcess
public long getVmRSSInKB() {
Number rss = (Number)properties.get(ISysMonitor.PROP_RSS);
Number psz = (Number)properties.get(ISysMonitor.PROP_PSIZE);
- if (rss == null || psz == null) return -1;
+ if (rss == null || psz == null) return 0;
return (rss.longValue() * psz.longValue() + 1023) / 1024;
}
public long getVmSizeInKB() {
Number vsz = (Number)properties.get(ISysMonitor.PROP_VSIZE);
- if (vsz == null) return -1;
+ if (vsz == null) return 0;
return (vsz.longValue() + 1023) / 1024;
}
public boolean isRoot() {
return true;
}
+
+ private String notNull(String s) {
+ return s == null ? "" : s;
+ }
String getStatusLine() {
final String STATUS_DELIMITER = "|"; //$NON-NLS-1$
StringBuffer s = new StringBuffer();
s.append(getPid()).append(STATUS_DELIMITER);
- s.append(getName()).append(STATUS_DELIMITER);
- s.append(getState()).append(STATUS_DELIMITER);
+ s.append(notNull(getName())).append(STATUS_DELIMITER);
+ s.append(notNull(getState())).append(STATUS_DELIMITER);
s.append(getTgid()).append(STATUS_DELIMITER);
s.append(getPPid()).append(STATUS_DELIMITER);
s.append('0').append(STATUS_DELIMITER);
s.append(getUid()).append(STATUS_DELIMITER);
- s.append(getUsername()).append(STATUS_DELIMITER);
+ s.append(notNull(getUsername())).append(STATUS_DELIMITER);
s.append(getGid()).append(STATUS_DELIMITER);
s.append(getVmSizeInKB()).append(STATUS_DELIMITER);
s.append(getVmRSSInKB()).append(STATUS_DELIMITER);

Back to the top