From cc698e45566e092a5d46ecf4bb90140742ed4411 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Mon, 23 Aug 2010 15:32:50 +0000 Subject: [PATCH] bug 307365: Fixed the problem of ignoring external locations altogether --- .../eclipse/cdt/core/resources/ACBuilder.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ACBuilder.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ACBuilder.java index 895229c713b..3b465f7e5ae 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ACBuilder.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ACBuilder.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.core.resources; +import java.io.File; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; @@ -23,12 +24,17 @@ import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICProjectDescription; +import org.eclipse.core.filesystem.EFS; +import org.eclipse.core.filesystem.IFileStore; +import org.eclipse.core.filesystem.URIUtil; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.eclipse.osgi.util.NLS; @@ -95,16 +101,12 @@ public abstract class ACBuilder extends IncrementalProjectBuilder implements IMa marker.setAttribute(ICModelMarker.C_MODEL_MARKER_VARIABLE, problemMarkerInfo.variableName); } if (externalLocation != null) { - try { - URI uri = new URI(externalLocation); - if (uri.getScheme()!=null) { - marker.setAttribute(ICModelMarker.C_MODEL_MARKER_EXTERNAL_LOCATION, externalLocation); - String locationText = NLS.bind(CCorePlugin.getResourceString("ACBuilder.ProblemsView.Location"), //$NON-NLS-1$ - problemMarkerInfo.lineNumber, externalLocation); - marker.setAttribute(IMarker.LOCATION, locationText); - } - } catch (URISyntaxException e) { - // Just ignore those which cannot be open by editor + URI uri = URIUtil.toURI(externalLocation); + if (uri.getScheme()!=null) { + marker.setAttribute(ICModelMarker.C_MODEL_MARKER_EXTERNAL_LOCATION, externalLocation); + String locationText = NLS.bind(CCorePlugin.getResourceString("ACBuilder.ProblemsView.Location"), //$NON-NLS-1$ + problemMarkerInfo.lineNumber, externalLocation); + marker.setAttribute(IMarker.LOCATION, locationText); } } else if (problemMarkerInfo.lineNumber==0){ marker.setAttribute(IMarker.LOCATION, " "); //$NON-NLS-1$