diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 3feea3a6904..18c2c20f271 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-06-15 Bogdan Gheorghe + Fix for Bug 63957: Error with external search markers - changed label + provider to provide proper paths for external links + 2004-06-15 Bogdan Gheorghe Disable background type cache on startup for now diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java index 966a18eec90..b7eede69768 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java @@ -216,8 +216,8 @@ public class CSearchPreferencePage extends PreferencePage * @param store */ public static void initDefaults(IPreferenceStore store) { - store.setDefault(CSearchPage.EXTERNALMATCH_ENABLED, true); - store.setDefault(CSearchPage.EXTERNALMATCH_VISIBLE, 1); + store.setDefault(CSearchPage.EXTERNALMATCH_ENABLED, false); + store.setDefault(CSearchPage.EXTERNALMATCH_VISIBLE, 0); store.setDefault(SourceIndexer.CDT_INDEXER_TIMEOUT,TIMEOUT_VALUE); } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java index d0e0f353d3d..4beb55720ca 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java @@ -87,7 +87,7 @@ public class NewSearchResultCollector extends BasicSearchResultCollector { IFile refFile = CCorePlugin.getWorkspace().getRoot().getFileForLocation(refLocation); IProject refProject = refFile.getProject(); IPath externalMatchLocation = searchMatch.getLocation(); - IFile linksFile = refProject.getFile("_cdtsrchlnk_" + externalMatchLocation.lastSegment()); //$NON-NLS-1$ + IFile linksFile = getUniqueFile(externalMatchLocation, refProject); //Delete links file to keep up to date with latest prefs if (linksFile.exists() && linksFile.isLinked()) @@ -106,6 +106,7 @@ public class NewSearchResultCollector extends BasicSearchResultCollector { } searchMatch.resource = linksFile; + searchMatch.path = externalMatchLocation; fMatchCount++; int start = match.getStartOffset(); int end = match.getEndOffset(); @@ -117,6 +118,38 @@ public class NewSearchResultCollector extends BasicSearchResultCollector { return false; } + + + /** + * @param externalMatchLocation + * @param refProject + * @return + */ + private IFile getUniqueFile(IPath externalMatchLocation, IProject refProject) { + IFile file = null; + String fileName = ""; //$NON-NLS-1$ + //Total number of segments in file name + int segments = externalMatchLocation.segmentCount() - 1; + for (int linkNumber=0; linkNumber