diff options
author | Andrew Gvozdev | 2010-08-24 02:58:21 +0000 |
---|---|---|
committer | Andrew Gvozdev | 2010-08-24 02:58:21 +0000 |
commit | 7620872563623956d983782f79291cdcfa0397ea (patch) | |
tree | 02eeae9dc7c02594fa04933d852790807a0774d4 /build/org.eclipse.cdt.make.core/src | |
parent | 065dca29f4bb16d2790598eeccde24863bca0f9a (diff) | |
download | org.eclipse.cdt-7620872563623956d983782f79291cdcfa0397ea.tar.gz org.eclipse.cdt-7620872563623956d983782f79291cdcfa0397ea.tar.xz org.eclipse.cdt-7620872563623956d983782f79291cdcfa0397ea.zip |
bug 323011: [Scanner Discovery] Source files with drive-relative paths ("/foo/bar.c") are not discovered
Diffstat (limited to 'build/org.eclipse.cdt.make.core/src')
-rw-r--r-- | build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/ScannerInfoConsoleParserUtility.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/ScannerInfoConsoleParserUtility.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/ScannerInfoConsoleParserUtility.java index 84df833c8b5..6be1c0ce908 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/ScannerInfoConsoleParserUtility.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/ScannerInfoConsoleParserUtility.java @@ -182,10 +182,24 @@ public class ScannerInfoConsoleParserUtility extends AbstractGCCBOPConsoleParser public List<String> translateRelativePaths(IFile file, String fileName, List<String> includes) { List<String> translatedIncludes = new ArrayList<String>(includes.size()); - for (Iterator<String> i = includes.iterator(); i.hasNext(); ) { - String include = i.next(); + for (String include : includes) { IPath includePath = new Path(include); - if (!includePath.isAbsolute() && !includePath.isUNC()) { // do not translate UNC paths + if (includePath.isUNC()) { + // do not translate UNC paths + } else if (includePath.isAbsolute()) { + if (includePath.getDevice()==null) { + String device = getWorkingDirectory().getDevice(); + IPath candidatePath = includePath.setDevice(device); + File dir = candidatePath.toFile(); + if (dir.exists()) { + include = candidatePath.toString(); + } else { + final String error = MakeMessages.getString("ConsoleParser.Nonexistent_Include_Path_Error_Message"); //$NON-NLS-1$ + TraceUtil.outputError(error, include); +// generateMarker(file, -1, error+include, IMarkerGenerator.SEVERITY_WARNING, fileName); + } + } + } else { // First try the current working directory IPath cwd = getWorkingDirectory(); if (!cwd.isAbsolute()) { @@ -193,7 +207,12 @@ public class ScannerInfoConsoleParserUtility extends AbstractGCCBOPConsoleParser } IPath filePath = new Path(fileName); - if (!filePath.isAbsolute()) { + if (filePath.isAbsolute()) { + if (filePath.getDevice()==null) { + String device = getWorkingDirectory().getDevice(); + filePath = filePath.setDevice(device); + } + } else { // check if the cwd is the right one // appending fileName to cwd should yield file path filePath = cwd.append(fileName); |