From 0fa4e891471f15ae2964054f61497e421fdf5fb7 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Thu, 20 May 2004 04:11:33 +0000 Subject: [PATCH] Partial Fix for PR 61341 --- .../src/org/eclipse/cdt/make/core/MakeBuilder.java | 2 +- core/org.eclipse.cdt.core/ChangeLog | 4 ++++ .../src/org/eclipse/cdt/core/ErrorParserManager.java | 10 +++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java index 135f36cf667..7003b65be2c 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java @@ -187,7 +187,7 @@ public class MakeBuilder extends ACBuilder { last = new Integer(100); } StreamMonitor streamMon = new StreamMonitor(new SubProgressMonitor(monitor, 100), cos, last.intValue()); - ErrorParserManager epm = new ErrorParserManager(getProject(), this, info.getErrorParsers()); + ErrorParserManager epm = new ErrorParserManager(getProject(), workingDirectory, this, info.getErrorParsers()); epm.setOutputStream(streamMon); OutputStream stdout = epm.getOutputStream(); OutputStream stderr = epm.getOutputStream(); diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index db74fb76afa..851955e63f5 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,7 @@ +2004-05-19 Alain Magloire + + Partial Fix for PR 61341 + 2004-05-19 Alain Magloire Contribution from Sam Robb, for PR 52864. diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java index 3ecb10c6c0c..15b1acf699d 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java @@ -58,6 +58,10 @@ public class ErrorParserManager extends OutputStream { } public ErrorParserManager(IProject project, IMarkerGenerator markerGenerator, String[] parsersIDs) { + this(project, project.getLocation(), markerGenerator, parsersIDs); + } + + public ErrorParserManager(IProject project, IPath workingDirectory, IMarkerGenerator markerGenerator, String[] parsersIDs) { fProject = project; if (parsersIDs == null) { enableAllParsers(); @@ -69,10 +73,10 @@ public class ErrorParserManager extends OutputStream { } } fMarkerGenerator = markerGenerator; - initErrorParserManager(); + initErrorParserManager(workingDirectory); } - private void initErrorParserManager() { + private void initErrorParserManager(IPath workingDirectory) { fFilesInProject = new HashMap(); fNameConflicts = new ArrayList(); fDirectoryStack = new Vector(); @@ -83,7 +87,7 @@ public class ErrorParserManager extends OutputStream { fNameConflicts.clear(); List collectedFiles = new ArrayList(); - fBaseDirectory = fProject.getLocation(); + fBaseDirectory = (workingDirectory == null || workingDirectory.isEmpty()) ? fProject.getLocation() : workingDirectory; collectFiles(fProject, collectedFiles); for (int i = 0; i < collectedFiles.size(); i++) {