X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Net.Http%2FSystem.Net.Http.Headers%2FLexer.cs;h=f87d4f741bfdf951c13e00614d31dda66a320a49;hb=6fd9c8ec2ce4dad31daaab2099a9f799b45e2b02;hp=51950a7a0abedcf152b10ad7a6f85e4b134946c5;hpb=c133ae2dc82c0533f5790333a3c93b2635b9c43c;p=mono.git diff --git a/mcs/class/System.Net.Http/System.Net.Http.Headers/Lexer.cs b/mcs/class/System.Net.Http/System.Net.Http.Headers/Lexer.cs index 51950a7a0ab..f87d4f741bf 100644 --- a/mcs/class/System.Net.Http/System.Net.Http.Headers/Lexer.cs +++ b/mcs/class/System.Net.Http/System.Net.Http.Headers/Lexer.cs @@ -46,6 +46,8 @@ namespace System.Net.Http.Headers OpenParens, } + public static readonly Token Empty = new Token (Type.Token, 0, 0); + readonly Type type; public Token (Type type, int startPosition, int endPosition) @@ -201,17 +203,26 @@ namespace System.Net.Http.Headers public bool ScanCommentOptional (out string value) { - var t = Scan (); - if (t != Token.Type.OpenParens) { + Token t; + if (ScanCommentOptional (out value, out t)) + return true; + + return t == Token.Type.End; + } + + public bool ScanCommentOptional (out string value, out Token readToken) + { + readToken = Scan (); + if (readToken != Token.Type.OpenParens) { value = null; - return t == Token.Type.End; + return false; } while (pos < s.Length) { var ch = s[pos]; if (ch == ')') { ++pos; - var start = t.StartPosition; + var start = readToken.StartPosition; value = s.Substring (start, pos - start); return true; }