diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 2283ed97838..98a16747500 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,7 @@ +2005-08-30 Alain Magloire + PR 107150, code/patch written by Devin Steffler + * parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java + 2005-08-12 Chris Wiebe Fix PR 106577: NPE in CTags Indexer * index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsFileReader.java diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java index 9a42a858c9d..f6a14452051 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java @@ -3966,6 +3966,16 @@ abstract class BaseScanner implements IScanner { return null; } } + + // fix for 107150: the scanner stops at the \n or \r after skipOverWhiteSpace() take that into consideration + while (bufferPos[bufferStackPos] + 1 < limit && (buffer[bufferPos[bufferStackPos]] == '\n' || buffer[bufferPos[bufferStackPos]] == '\r')) { + bufferPos[bufferStackPos]++; // skip \n or \r + skipOverWhiteSpace(); // skip any other spaces after the \n + + if (bufferPos[bufferStackPos] + 1 < limit && buffer[bufferPos[bufferStackPos]] != '(' && buffer[bufferPos[bufferStackPos] + 1] == '(') + bufferPos[bufferStackPos]++; // advance to ( if necessary + } + if (buffer[bufferPos[bufferStackPos]] != '(') { bufferPos[bufferStackPos]--; return null;