From 30c32372272b841cfc1b6625bbb42eabbf40ae7f Mon Sep 17 00:00:00 2001 From: Krzysztof Kazmierczyk Date: Fri, 10 Aug 2012 13:03:07 +0200 Subject: [PATCH] Fix Bug 378882 - CDT projects not working when managed by custom EFS filesystem Change-Id: I6e0966b63c5be81cb35008edb3cd9218023aaf3e Reviewed-on: https://git.eclipse.org/r/7184 Reviewed-by: Chris Recoskie IP-Clean: Chris Recoskie Tested-by: Chris Recoskie --- .../org/eclipse/cdt/utils/UNCPathConverter.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/UNCPathConverter.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/UNCPathConverter.java index 44e6bdd1c31..91de1214d5e 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/UNCPathConverter.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/UNCPathConverter.java @@ -58,18 +58,23 @@ public abstract class UNCPathConverter { /** - * Convert a URI to an IPath. If URI has a host section, return a UNC rather than a file based path. + * Convert a URI to an IPath. + * Resolves to local path if possible, including using EFS where required. * * @param uri * URI to convert to an IPath * @return IPath representation of the URI */ public static IPath toPath(URI uri) { + IPath localPath = URIUtil.toPath(uri); String host = uri.getHost(); - if (host != null) { + // try local path first + // that'll give EFS a chance to resolve a custom protocol path. + if (host != null && localPath == null) { return new Path(host + uri.getPath()).makeUNC(true); - } - return URIUtil.toPath(uri); + } else { + return localPath; + } } /**