diff --git a/core/org.eclipse.cdt.core.tests/.project b/core/org.eclipse.cdt.core.tests/.project
index 132ec729ab8..5429058f69c 100644
--- a/core/org.eclipse.cdt.core.tests/.project
+++ b/core/org.eclipse.cdt.core.tests/.project
@@ -3,7 +3,9 @@
org.eclipse.cdt.core.tests
+ org.apache.xerces
org.eclipse.cdt.core
+ org.eclipse.cdt.core.aix
org.eclipse.cdt.core.linux
org.eclipse.cdt.core.qnx
org.eclipse.cdt.core.solaris
@@ -11,6 +13,12 @@
org.eclipse.cdt.make.core
org.eclipse.cdt.managedbuilder.core
org.eclipse.cdt.ui
+ org.eclipse.core.boot
+ org.eclipse.core.resources
+ org.eclipse.core.runtime
+ org.eclipse.swt
+ org.eclipse.ui
+ org.junit
diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog
index 9a2fdd622cc..b68b61bab50 100644
--- a/core/org.eclipse.cdt.core.tests/ChangeLog
+++ b/core/org.eclipse.cdt.core.tests/ChangeLog
@@ -1,3 +1,6 @@
+2004-01-29 John Camelon
+ Added ScannerTestCase::testBug50821().
+
2003-11-07 John Camelon
Moved testBug39554() from ASTFailedTests to QuickParseASTTests.
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java
index 64823bc6d92..3b299d25d5f 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java
@@ -1528,4 +1528,13 @@ public class ScannerTestCase extends BaseScannerTest
assertEquals( callback.inclusions.size(), 1 );
assertEquals( callback.inclusions.get(0), "stdio.h");
}
+
+ public void testBug50821() throws Exception
+ {
+ Callback callback = new Callback( ParserMode.QUICK_PARSE );
+ initializeScanner( "\'\n\n\n", ParserMode.QUICK_PARSE, callback );
+ scanner.nextToken();
+ assertEquals( callback.problems.size(), 1 );
+ }
+
}
diff --git a/core/org.eclipse.cdt.core/.project b/core/org.eclipse.cdt.core/.project
index 95eceb11fac..ba2680f0072 100644
--- a/core/org.eclipse.cdt.core/.project
+++ b/core/org.eclipse.cdt.core/.project
@@ -3,6 +3,14 @@
org.eclipse.cdt.core
+ org.apache.xerces
+ org.eclipse.compare
+ org.eclipse.core.boot
+ org.eclipse.core.resources
+ org.eclipse.core.runtime
+ org.eclipse.debug.core
+ org.eclipse.search
+ org.eclipse.team.core
diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog b/core/org.eclipse.cdt.core/parser/ChangeLog
index 77fdac40be7..0a63834dbb0 100644
--- a/core/org.eclipse.cdt.core/parser/ChangeLog
+++ b/core/org.eclipse.cdt.core/parser/ChangeLog
@@ -1,3 +1,6 @@
+2004-01-29 John Camelon
+ Fixed Bug 50821 - Freezes when opening / saving .c file
+
2003-11-07 John Camelon
Fixed Bug 39554 : _Pragma directive is not supported (ANSI C99)
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java
index d3a89fcfc06..8bcfd2b4ba8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Scanner.java
@@ -1616,7 +1616,7 @@ public class Scanner implements IScanner {
( c == NOCHAR ) )
{
handleProblem( IProblem.SCANNER_BAD_CHARACTER, new Character( (char)c ).toString(),beginOffset, false, true, throwExceptionOnBadCharacterRead );
- c = ' ';
+ c = '\'';
}
// exit condition
if ( ( c =='\'' ) && ( prev != '\\' || prevPrev == '\\' ) ) break;