From 7858f60f7e96b6efcfd2960b86aed261a5375a76 Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Thu, 10 Jun 2004 20:46:57 +0000 Subject: [PATCH] fix for bug 64986 - handle containers in CSearchScope --- core/org.eclipse.cdt.core/search/ChangeLog | 3 +++ .../internal/core/search/CSearchScope.java | 23 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/search/ChangeLog b/core/org.eclipse.cdt.core/search/ChangeLog index cf63825bf20..fd669185f82 100644 --- a/core/org.eclipse.cdt.core/search/ChangeLog +++ b/core/org.eclipse.cdt.core/search/ChangeLog @@ -1,3 +1,6 @@ +2004-06-10 Andrew Niefer + fix bug 64986 - handle Containers in CSearchScope + 2004-05-26 Andrew Niefer Modified search to use ASTUtil.getFunctionParameterTypes to get the strings to search for functions with specific parameters. diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/CSearchScope.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/CSearchScope.java index 29c37acbf5c..b1c33c4afc1 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/CSearchScope.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/CSearchScope.java @@ -16,6 +16,7 @@ import java.util.HashSet; import org.eclipse.cdt.core.CProjectNature; import org.eclipse.cdt.core.model.CModelException; +import org.eclipse.cdt.core.model.ICContainer; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.IMember; @@ -191,15 +192,13 @@ public class CSearchScope implements ICSearchScope { while (searchedElement != null) { if (searchedElement.equals(scopeElement)) { return true; - } else { - searchedElement = searchedElement.getParent(); - } + } + searchedElement = searchedElement.getParent(); } } return false; - } else { - return this.encloses(this.fullPath(element)); } + return this.encloses(this.fullPath(element)); } public IPath[] enclosingProjects() { @@ -215,6 +214,9 @@ public class CSearchScope implements ICSearchScope { case ICElement.C_PROJECT: // a workspace scope should be used break; + case ICElement.C_CCONTAINER: + add( (ICContainer) element ); + break; default: if (element instanceof IMember) { if (this.elements == null) { @@ -235,6 +237,17 @@ public class CSearchScope implements ICSearchScope { } } + public void add( ICContainer container ){ + ICElement [] children = null; + try { + children = container.getChildren(); + } catch (CModelException e) { + return; + } + for( int i = 0; i < children.length; i++ ){ + add( children[i] ); + } + } /** * @param finalPath */