diff options
author | eutarass | 2009-08-24 18:36:43 +0000 |
---|---|---|
committer | eutarass | 2009-08-24 18:36:43 +0000 |
commit | 437f758ee8bdce9fbf137744398b8405195d270a (patch) | |
tree | a909715f330a8716b4ff7b9e375d6d87daade38a | |
parent | b9c4bd1be0f60b6aa498842c8f6e2d7cbcdd4ea5 (diff) | |
download | org.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
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); |