Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorChris Recoskie2010-05-27 01:40:19 +0000
committerChris Recoskie2010-05-27 01:40:19 +0000
commit98977cbde4a3d139d78e6eb43779b326b3e9d56e (patch)
treed050673ddba53e40c9c6629c6f97fcee1ccaa7f9 /core
parent0dd48245def3017fcefe4aa55dd6640d2f435429 (diff)
downloadorg.eclipse.cdt-98977cbde4a3d139d78e6eb43779b326b3e9d56e.tar.gz
org.eclipse.cdt-98977cbde4a3d139d78e6eb43779b326b3e9d56e.tar.xz
org.eclipse.cdt-98977cbde4a3d139d78e6eb43779b326b3e9d56e.zip
further changes for Bug 291815 - fix test failure on UNIX/Linux
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/efsextension/tests/EFSExtensionTests.java11
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/EFSExtensionProvider.java5
2 files changed, 14 insertions, 2 deletions
diff --git a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/efsextension/tests/EFSExtensionTests.java b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/efsextension/tests/EFSExtensionTests.java
index a96e62cc6b8..f5b363f4803 100644
--- a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/efsextension/tests/EFSExtensionTests.java
+++ b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/efsextension/tests/EFSExtensionTests.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.cdt.core.internal.efsextension.tests;
+import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
@@ -109,7 +110,15 @@ public class EFSExtensionTests extends TestCase {
URI expected = null;
try {
originalURI = new URI("file", "/c:/foo", null);
- expected = new URI("file", "/c:/foo/subdirectory", null);
+
+ if(java.io.File.separatorChar == '\\') {
+ expected = new URI("file", "/c:/foo/subdirectory", null);
+ }
+ else {
+ // if we're not on Windows then backslash is not the path separator, and instead
+ // is a valid filename character. Using a backslash will result in it being escaped.
+ expected = new URI("file", "/c:%5Cfoo%5Csubdirectory", null);
+ }
} catch (URISyntaxException e) {
fail(e.getMessage());
}
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/EFSExtensionProvider.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/EFSExtensionProvider.java
index 3441e8e9b1e..669a4a02c82 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/EFSExtensionProvider.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/EFSExtensionProvider.java
@@ -75,6 +75,9 @@ public abstract class EFSExtensionProvider {
* null on error.
*
* The default implementation places the path in the path field of the URI, ensuring that there is a leading slash.
+ * It also determines whether or not to convert backslashes in the provided path based on whether or not the
+ * local operating system's file separator is a backslash, thus ensuring proper behaviour for URIs corresponding
+ * to the local filesystem.
*
* @param locationOnSameFilesystem
* @param path An absolute path.
@@ -84,7 +87,7 @@ public abstract class EFSExtensionProvider {
URI uri = locationOnSameFilesystem;
Path p = new Path(path);
- String pathString = p.toString(); // to convert any backslashes to slashes
+ String pathString = p.toString(); // to convert any backslashes to slashes if we are on Windows
final int length = pathString.length();
StringBuffer pathBuf = new StringBuffer(length + 1);

Back to the top