# HG changeset patch # User Alexander Simon # Date 1461677923 -10800 # Tue Apr 26 16:38:43 2016 +0300 # Node ID ca22659a4e1e6ca11cc936fe757a8dcf9ebb5d43 # Parent 96b486e545dbfff5b4f0344da91838e101ceb732 fixing Bug #258822 Multiple issues if C++ project created on network drive - proposed patch (should be reviewed and refactored) diff --git a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfiguration.java b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfiguration.java --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfiguration.java +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfiguration.java @@ -1151,7 +1151,11 @@ if (!CndPathUtilities.isPathAbsolute(output)) { output = getBaseDir() + "/" + output; // NOI18N output = CndPathUtilities.normalizeSlashes(output); + boolean isNetworkPath = output.startsWith("//"); output = CndPathUtilities.normalizeUnixPath(output); + if (isNetworkPath && !output.startsWith("//")) { + output = "/"+output; // NOI18N + } } return expandMacros(output); } diff --git a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfigurationDescriptor.java b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfigurationDescriptor.java --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfigurationDescriptor.java +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/MakeConfigurationDescriptor.java @@ -637,7 +637,7 @@ // Then try absolute if relative or relative if absolute String newPath; if (CndPathUtilities.isPathAbsolute(path)) { - newPath = CndPathUtilities.toRelativePath(getBaseDir(), CndPathUtilities.naturalizeSlashes(path)); + newPath = CndPathUtilities.toRelativePath(getBaseDir(), path); } else { newPath = CndPathUtilities.toAbsolutePath(getBaseDirFileObject(), path); } diff --git a/cnd.utils/src/org/netbeans/modules/cnd/utils/CndPathUtilities.java b/cnd.utils/src/org/netbeans/modules/cnd/utils/CndPathUtilities.java --- a/cnd.utils/src/org/netbeans/modules/cnd/utils/CndPathUtilities.java +++ b/cnd.utils/src/org/netbeans/modules/cnd/utils/CndPathUtilities.java @@ -702,7 +702,10 @@ String absPrefix = null; if (isPathAbsolute(path)) { - if (path.charAt(0) == '/') { + if (path.length() >= 2 && path.charAt(0) == '/' && path.charAt(1) == '/') { + absPrefix = "//"; // NOI18N + path = path.substring(2); + } else if (path.charAt(0) == '/') { absPrefix = "/"; // NOI18N path = path.substring(1); } else if (path.charAt(1) == ':') {