From 36591a0942f8a6b4f4737316eec4184cbde0cc46 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 13 Aug 2010 20:05:24 +0000 Subject: [PATCH] fixed http://community.sharpdevelop.net/forums/t/11681.aspx git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6406 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- src/Libraries/NRefactory/Project/Src/Lexer/CSharp/Lexer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Libraries/NRefactory/Project/Src/Lexer/CSharp/Lexer.cs b/src/Libraries/NRefactory/Project/Src/Lexer/CSharp/Lexer.cs index 4518cff1a2..88d7bbc3db 100644 --- a/src/Libraries/NRefactory/Project/Src/Lexer/CSharp/Lexer.cs +++ b/src/Libraries/NRefactory/Project/Src/Lexer/CSharp/Lexer.cs @@ -97,7 +97,7 @@ namespace ICSharpCode.NRefactory.Parser.CSharp } } break; - default: + default: isAtLineBegin = false; // non-ws chars are handled here ch = (char)nextChar; if (Char.IsLetter(ch) || ch == '_' || ch == '\\') { @@ -166,7 +166,9 @@ namespace ICSharpCode.NRefactory.Parser.CSharp } if (curPos < MAX_IDENTIFIER_LENGTH) { - identBuffer[curPos++] = ch; + if (ch != '\0') // only add character, if it is valid + // prevents \ from being added + identBuffer[curPos++] = ch; } else { errors.Error(Line, Col, String.Format("Identifier too long")); while (IsIdentifierPart(ReaderPeek())) {