diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog-parser b/core/org.eclipse.cdt.core/parser/ChangeLog-parser index d458298d578..a88d12fa0e9 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog-parser +++ b/core/org.eclipse.cdt.core/parser/ChangeLog-parser @@ -1,3 +1,6 @@ +2004-02-24 John Camelon + Partial Fix for Bug 52534 - Selection Search offset limit reached is broken + 2004-02-18 Andrew Niefer added IUsingDeclarationSymbol and UsingDeclarationSymbol changed IContainerSymbol.addUsingDeclaration to return a IUsingDeclarationSymbol diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IScanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IScanner.java index f27948e0ece..408dd844362 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IScanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IScanner.java @@ -44,4 +44,9 @@ public interface IScanner { public void setTokenizingMacroReplacementList(boolean b); public void setThrowExceptionOnBadCharacterRead( boolean throwOnBad ); + /** + * @return + */ + public boolean isOnTopContext(); + } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java index 9fc6f809c67..986a7922536 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/SelectionParser.java @@ -35,7 +35,7 @@ public class SelectionParser extends ContextualParser { * @see org.eclipse.cdt.internal.core.parser.Parser#handleNewToken(org.eclipse.cdt.core.parser.IToken) */ protected void handleNewToken(IToken value) { - if( value != null ) + if( value != null && scanner.isOnTopContext() ) { if( value.getOffset() == offsetRange.getFloorOffset() ) firstTokenOfDuple = value; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java index e1cbfe4ecf6..960291049c5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java @@ -3111,4 +3111,11 @@ public class Scanner implements IScanner { return limitReached; } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.IScanner#isOnTopContext() + */ + public boolean isOnTopContext() { + return ( scannerData.getContextStack().getCurrentContext() == scannerData.getContextStack().getTopContext() ); + } + }