From dc6207ddf82e83345aee4eb4f1d102aa7ae13e23 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Wed, 5 May 2004 18:29:42 +0000 Subject: [PATCH] patch from vlad This patch publishes ScannerInfoCollector collection interface so that ManagedMake can reuse StandardMake external scanner info provider and console parser but provide its own scanner info collector. Eventually it may be promoted to an extension point. Also there is a fix for processing cygpaths when parsing make output and small UI enhancement. --- .../IExternalScannerInfoProvider.java | 4 ++- .../scannerconfig/IScannerInfoCollector.java | 36 +++++++++++++++++++ .../IScannerInfoConsoleParser.java | 5 ++- .../DefaultExternalScannerInfoProvider.java | 11 ++++-- .../scannerconfig/ScannerInfoCollector.java | 21 ++++------- .../ScannerInfoConsoleParserFactory.java | 9 +++-- .../gnu/GCCScannerInfoConsoleParser.java | 16 +++++---- .../gnu/GCCSpecsConsoleParser.java | 22 ++++++------ .../util/ScannerInfoConsoleParserUtility.java | 25 ++++++++++--- .../make/ui/dialogs/BuildPathInfoBlock.java | 3 ++ .../ui/dialogs/ManageIncludePathsDialog.java | 2 +- 11 files changed, 109 insertions(+), 45 deletions(-) create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoCollector.java diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IExternalScannerInfoProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IExternalScannerInfoProvider.java index 56d0d16a84f..371393f7ee5 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IExternalScannerInfoProvider.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IExternalScannerInfoProvider.java @@ -28,9 +28,11 @@ public interface IExternalScannerInfoProvider { * @param current project - current project being built * @param buildInfo - settings for ScannerConfigBuilder * @param targetSpecificOptions - array of options affecting compiler specs + * @param collector - scanner info collector, for StdMake projects - ScannerInfoCollector */ public boolean invokeProvider(IProgressMonitor monitor, IProject currentProject, IScannerConfigBuilderInfo buildInfo, - List targetSpecificOptions); + List targetSpecificOptions, + IScannerInfoCollector collector); } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoCollector.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoCollector.java new file mode 100644 index 00000000000..2c829de81cc --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoCollector.java @@ -0,0 +1,36 @@ +/********************************************************************** + * Copyright (c) 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + **********************************************************************/ +package org.eclipse.cdt.make.core.scannerconfig; + +import java.util.List; + +import org.eclipse.core.resources.IResource; + +/** + * Interface for scanner info collector. + * Used by scanner info console parsers. + * + * @author vhirsl + */ +public interface IScannerInfoCollector { + /** + * Contribute to resource's scanner configuration + * + * @param resource + * @param includes + * @param symbols + * @param targetSpecificOptions + */ + public void contributeToScannerConfig(IResource resource, + List includes, + List symbols, + List targetSpecificOptions); +} \ No newline at end of file diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java index c794e21899b..3f6c219feed 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java @@ -23,11 +23,14 @@ public interface IScannerInfoConsoleParser { * Optional one time initialization of a console parser. * * @param project + * @param util - utility functions for file and path management + * @param collector - scanner info collector */ - public void startup(IProject project, IScannerInfoConsoleParserUtility util); + public void startup(IProject project, IScannerInfoConsoleParserUtility util, IScannerInfoCollector collector); /** * Parse one line of output. + * * @param line * @return true if scanner info entry was found in the line */ diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java index b491ddc0348..08f82e8a911 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java @@ -28,6 +28,7 @@ import org.eclipse.cdt.core.resources.IConsole; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo; import org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.internal.core.MakeMessages; import org.eclipse.cdt.make.internal.core.StreamMonitor; import org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCScannerConfigUtil; @@ -56,9 +57,13 @@ public class DefaultExternalScannerInfoProvider implements IExternalScannerInfoP private String fCompileArguments; /* (non-Javadoc) - * @see org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider#invokeProvider(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.resources.IProject, org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo, java.util.List) + * @see org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider#invokeProvider(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.resources.IProject, org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo, java.util.List, org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector) */ - public boolean invokeProvider(IProgressMonitor monitor, IProject currentProject, IScannerConfigBuilderInfo buildInfo, List targetSpecificOptions) { + public boolean invokeProvider(IProgressMonitor monitor, + IProject currentProject, + IScannerConfigBuilderInfo buildInfo, + List targetSpecificOptions, + IScannerInfoCollector collector) { if (targetSpecificOptions == null) { targetSpecificOptions = new ArrayList(); } @@ -93,7 +98,7 @@ public class DefaultExternalScannerInfoProvider implements IExternalScannerInfoP cos = new StreamMonitor(new SubProgressMonitor(monitor, 70), cos, 100); OutputStream sniffer = ScannerInfoConsoleParserFactory.getESIProviderOutputSniffer( - cos, currentProject, buildInfo); + cos, currentProject, buildInfo, collector); Process p = launcher.execute(fCompileCommand, compileArguments, setEnvironment(launcher), fWorkingDirectory); if (p != null) { try { diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java index fb927abf75e..41c71d764d9 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java @@ -37,10 +37,12 @@ import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.DiscoveredScannerInfo; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo; import org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigBuilder; import org.eclipse.cdt.make.internal.core.MakeMessages; import org.eclipse.cdt.make.internal.core.scannerconfig.util.CygpathTranslator; import org.eclipse.cdt.make.internal.core.scannerconfig.util.ScannerConfigUtil; +import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil; /** @@ -49,7 +51,7 @@ import org.eclipse.cdt.make.internal.core.scannerconfig.util.ScannerConfigUtil; * * @author vhirsl */ -public class ScannerInfoCollector { +public class ScannerInfoCollector implements IScannerInfoCollector { // Singleton private static ScannerInfoCollector instance = new ScannerInfoCollector(); @@ -77,18 +79,13 @@ public class ScannerInfoCollector { return instance; } - /** - * Published method to receive per file contributions to ScannerInfo - * - * @param resource - * @param includes - * @param symbols - * @param targetSpecificOptions + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector#contributeToScannerConfig(org.eclipse.core.resources.IResource, java.util.List, java.util.List, java.util.List) */ public synchronized void contributeToScannerConfig(IResource resource, List includes, List symbols, List targetSpecificOptions) { IProject project; if (resource == null || (project = resource.getProject()) == null) { - // TODO VMIR create a log + TraceUtil.outputError("IScannerInfoCollector.contributeToScannerConfig : ", "resource or project is null"); //$NON-NLS-1$ //$NON-NLS-2$ return; } try { @@ -170,7 +167,6 @@ public class ScannerInfoCollector { discScanInfo.update(); monitor.worked(50); } catch (CoreException e) { - // TODO : VMIR create a marker? MakeCorePlugin.log(e); } } @@ -311,7 +307,6 @@ public class ScannerInfoCollector { translatedIncludePaths.add(translatedPath); } else { - // TODO VMIR create problem marker // TODO VMIR for now add even if it does not exist translatedIncludePaths.add(translatedPath); } @@ -356,7 +351,7 @@ public class ScannerInfoCollector { if (esiProvider != null) { ISafeRunnable runnable = new ISafeRunnable() { public void run() { - esiProvider.invokeProvider(monitor, project, buildInfo, tso); + esiProvider.invokeProvider(monitor, project, buildInfo, tso, ScannerInfoCollector.getInstance()); } public void handleException(Throwable exception) { @@ -395,7 +390,6 @@ public class ScannerInfoCollector { if (project != null) { sumDiscoveredIncludes.put(project.getName(), null); } - // TODO VMIR define error message } /** @@ -407,7 +401,6 @@ public class ScannerInfoCollector { if (project != null) { sumDiscoveredSymbols.put(project.getName(), null); } - // TODO VMIR define error message } /** diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java index 40ffd169579..89a54d92682 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java @@ -15,6 +15,7 @@ import java.io.OutputStream; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser; import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigBuilder; import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature; @@ -39,18 +40,20 @@ public class ScannerInfoConsoleParserFactory { * @param currentProject * @param markerGenerator * @param scBuildInfo + * @param collector - scanner info collector * @return OutputStream */ public static OutputStream getESIProviderOutputSniffer(OutputStream outputStream, IProject currentProject, - IScannerConfigBuilderInfo scBuildInfo) { + IScannerConfigBuilderInfo scBuildInfo, + IScannerInfoCollector collector) { if (scBuildInfo.isESIProviderCommandEnabled()) { // get the ESIProvider console parser IScannerInfoConsoleParser clParser = MakeCorePlugin.getDefault(). getScannerInfoConsoleParser(scBuildInfo.getESIProviderConsoleParserId()); // initialize it with the utility clParser.startup(currentProject, null /*new ScannerInfoConsoleParserUtility( - currentProject, null, markerGenerator)*/); + currentProject, null, markerGenerator)*/, collector); // create an output stream sniffer return new ConsoleOutputStreamSniffer(outputStream, new IScannerInfoConsoleParser[] {clParser}); @@ -92,7 +95,7 @@ public class ScannerInfoConsoleParserFactory { getScannerInfoConsoleParser(scBuildInfo.getMakeBuilderConsoleParserId()); // initialize it with the utility clParser.startup(currentProject, new ScannerInfoConsoleParserUtility( - currentProject, workingDirectory, markerGenerator)); + currentProject, workingDirectory, markerGenerator), ScannerInfoCollector.getInstance()); // create an output stream sniffer return new ConsoleOutputStreamSniffer(outputStream, new IScannerInfoConsoleParser[] {clParser}); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java index 3be9cf93417..ad240c1bd46 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java @@ -14,9 +14,10 @@ import java.util.StringTokenizer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; +import org.eclipse.cdt.core.IMarkerGenerator; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser; import org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParserUtility; -import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoCollector; import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil; import java.util.ArrayList; @@ -31,13 +32,15 @@ public class GCCScannerInfoConsoleParser implements IScannerInfoConsoleParser { private IProject fProject = null; private IScannerInfoConsoleParserUtility fUtil = null; + private IScannerInfoCollector fCollector = null; /* (non-Javadoc) - * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser#startup(org.eclipse.core.resources.IProject) + * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser#startup(org.eclipse.core.resources.IProject, org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParserUtility, org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector) */ - public void startup(IProject project, IScannerInfoConsoleParserUtility util) { + public void startup(IProject project, IScannerInfoConsoleParserUtility util, IScannerInfoCollector collector) { fProject = project; fUtil = util; + fCollector = collector; } /* (non-Javadoc) @@ -158,14 +161,13 @@ public class GCCScannerInfoConsoleParser implements IScannerInfoConsoleParser { } else { TraceUtil.outputError("Unable to find file name: ", line); //$NON-NLS-1$ -// fUtil.generateMarker(fProject, -1, "Unable to find file name: " + line, //$NON-NLS-1$ -// IMarkerGenerator.SEVERITY_ERROR_RESOURCE, null); + fUtil.generateMarker(fProject, -1, "Unable to find file name: " + line, //$NON-NLS-1$ + IMarkerGenerator.SEVERITY_ERROR_RESOURCE, null); } } // Contribute discovered includes and symbols to the ScannerInfoCollector if (translatedIncludes.size() > 0 || symbols.size() > 0) { - ScannerInfoCollector.getInstance(). - contributeToScannerConfig(project, translatedIncludes, symbols, targetSpecificOptions); + fCollector.contributeToScannerConfig(project, translatedIncludes, symbols, targetSpecificOptions); TraceUtil.outputTrace("Discovered scanner info for file \'" + fileName + '\'', //$NON-NLS-1$ "Include paths", includes, translatedIncludes, "Defined symbols", symbols); //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java index 0e0c2a62371..a1b218155f3 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java @@ -14,9 +14,9 @@ import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser; import org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParserUtility; -import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoCollector; import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil; import org.eclipse.core.resources.IProject; @@ -32,19 +32,21 @@ public class GCCSpecsConsoleParser implements IScannerInfoConsoleParser { private final int STATE_SPECS_STARTED = 1; private final int STATE_INCLUDES_STARTED = 2; - private IProject project = null; - private IScannerInfoConsoleParserUtility util = null; + private IProject fProject = null; + private IScannerInfoConsoleParserUtility fUtil = null; + private IScannerInfoCollector fCollector = null; private int state = STATE_BEGIN; private List symbols = new ArrayList(); private List includes = new ArrayList(); /* (non-Javadoc) - * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser#initialize(org.eclipse.core.resources.IProject, org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParserUtility) + * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser#startup(org.eclipse.core.resources.IProject, org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParserUtility, org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector) */ - public void startup(IProject project, IScannerInfoConsoleParserUtility util) { - this.project = project; - this.util = util; + public void startup(IProject project, IScannerInfoConsoleParserUtility util, IScannerInfoCollector collector) { + this.fProject = project; + this.fUtil = util; + this.fCollector = collector; } /* (non-Javadoc) @@ -94,7 +96,7 @@ public class GCCSpecsConsoleParser implements IScannerInfoConsoleParser { return rc; } - ScannerInfoCollector.getInstance().contributeToScannerConfig(project, includes, symbols, null); + fCollector.contributeToScannerConfig(fProject, includes, symbols, null); TraceUtil.outputTrace("Scanner info from \'specs\' file", //$NON-NLS-1$ "Include paths", includes, new ArrayList(), "Defined symbols", symbols); //$NON-NLS-1$ //$NON-NLS-2$); @@ -105,8 +107,8 @@ public class GCCSpecsConsoleParser implements IScannerInfoConsoleParser { * @see org.eclipse.cdt.make.internal.core.scannerconfig.IScannerInfoConsoleParser#shutdown() */ public void shutdown() { - if (util != null) { - util.reportProblems(); + if (fUtil != null) { + fUtil.reportProblems(); } } } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/ScannerInfoConsoleParserUtility.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/ScannerInfoConsoleParserUtility.java index 0900f6a576d..868a1fcb74e 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/ScannerInfoConsoleParserUtility.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/ScannerInfoConsoleParserUtility.java @@ -144,9 +144,11 @@ public class ScannerInfoConsoleParserUtility implements IScannerInfoConsoleParse // If there is a conflict then try all files in the project. if (isConflictingName(fileName)) { file = null; + // Create a problem marker + TraceUtil.outputError("Ambiguous file path: ", fileName); //$NON-NLS-1$ generateMarker(fProject, -1, "Ambiguous file path: "+fileName, //$NON-NLS-1$ - IMarkerGenerator.SEVERITY_ERROR_RESOURCE, null); + IMarkerGenerator.SEVERITY_ERROR_RESOURCE, null); } } } @@ -258,10 +260,22 @@ public class ScannerInfoConsoleParserUtility implements IScannerInfoConsoleParse if (dir != null) { IPath pwd = null; if (fBaseDirectory.isPrefixOf(dir)) { -// int segments = fBaseDirectory.matchingFirstSegments(dir); pwd = dir.removeFirstSegments(fBaseDirectory.segmentCount()); } else { - pwd = dir; + // check if it is a cygpath + if (dir.toString().startsWith("/cygdrive/")) { // $NON-NLS-1$ + char driveLetter = dir.toString().charAt(10); + StringBuffer buf = new StringBuffer(); + buf.append(driveLetter); + buf.append(':'); + String drive = buf.toString(); + pwd = dir.removeFirstSegments(2); + pwd = pwd.setDevice(drive); + pwd = pwd.makeAbsolute(); + } + else { + pwd = dir; + } } fDirectoryStack.addElement(pwd); } @@ -319,12 +333,13 @@ public class ScannerInfoConsoleParserUtility implements IScannerInfoConsoleParse // check if the cwd is the right one // appending fileName to cwd should yield file path IPath filePath = cwd.append(fileName); - if (!filePath.equals(file.getLocation())) { + if (!filePath.toString().equalsIgnoreCase(file.getLocation().toString())) { // must be the cwd is wrong // check if file name starts with ".." if (fileName.startsWith("..")) { //$NON-NLS-1$ // probably multiple choices for cwd, hopeless - generateMarker(file, -1, "Unable to determine working directory", + TraceUtil.outputError("Unable to determine working directory for ", fileName); //$NON-NLS-1$ + generateMarker(file, -1, "Unable to determine working directory for", //$NON-NLS-1$ IMarkerGenerator.SEVERITY_WARNING, fileName); break; } diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java index 18dc12e04d8..7127e5ab5f5 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildPathInfoBlock.java @@ -53,6 +53,7 @@ import org.eclipse.ui.help.WorkbenchHelp; public class BuildPathInfoBlock extends AbstractCOptionPage { private static final int PROJECT_LIST_MULTIPLIER = 15; + private static final int INITIAL_LIST_WIDTH = 60; private static final String PREF_SYMBOLS = "ScannerSymbols"; //$NON-NLS-1$ private static final String PREF_INCLUDES = "ScannerIncludes"; //$NON-NLS-1$ @@ -154,6 +155,7 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { gd.grabExcessHorizontalSpace = true; gd.horizontalSpan = numColumns - 1; gd.heightHint = getDefaultFontHeight(pathList, PROJECT_LIST_MULTIPLIER); + gd.widthHint = convertWidthInCharsToPixels(INITIAL_LIST_WIDTH); pathList.setLayoutData(gd); pathList.setFont(parent.getFont()); } @@ -214,6 +216,7 @@ public class BuildPathInfoBlock extends AbstractCOptionPage { gd.horizontalSpan = numColumns - 1; gd.grabExcessHorizontalSpace = true; gd.heightHint = getDefaultFontHeight(pathList, PROJECT_LIST_MULTIPLIER); + gd.widthHint = convertWidthInCharsToPixels(INITIAL_LIST_WIDTH); symbolList.setLayoutData(gd); symbolList.setFont(parent.getFont()); diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/ManageIncludePathsDialog.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/ManageIncludePathsDialog.java index 6bed99e12c0..b5ee6967683 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/ManageIncludePathsDialog.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/ManageIncludePathsDialog.java @@ -83,7 +83,7 @@ public class ManageIncludePathsDialog extends Dialog { private static final String DELETE_ALL_DISCOVERED = DISC_COMMON_PREFIX + ".discoveredGroup.buttons.deleteAll.label"; //$NON-NLS-1$ private static final int PROJECT_LIST_MULTIPLIER = 15; - private static final int INITIAL_LIST_WIDTH = 40; + private static final int INITIAL_LIST_WIDTH = 50; private static final int ACTIVE = 0; private static final int REMOVED = 1;