[Csmail-patches] CVS: csmail/src/CSMail.Utils ChangeLog,1.16,1.17 HeaderTokenType.cs,1.2,1.3 HeaderT
Status: Pre-Alpha
Brought to you by:
mastergaurav
From: Gaurav V. <mas...@us...> - 2002-10-08 04:39:35
|
Update of /cvsroot/csmail/csmail/src/CSMail.Utils In directory usw-pr-cvs1:/tmp/cvs-serv30738 Modified Files: ChangeLog HeaderTokenType.cs HeaderTokenizer.cs Log Message: 2002-10-07 * HeaderTokenType.cs : Removed member "NotSet". : Added member "Delimiter". * HeaderTokenizer.cs : GetNextToken() - Implemented. : Peek() - Implemented. : Remainder { get; } - Implemented. Index: ChangeLog =================================================================== RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/ChangeLog,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- ChangeLog 7 Oct 2002 12:56:01 -0000 1.16 +++ ChangeLog 8 Oct 2002 04:39:32 -0000 1.17 @@ -1,6 +1,14 @@ 2002-10-07 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> + * HeaderTokenType.cs : Removed member "NotSet". + : Added member "Delimiter". + * HeaderTokenizer.cs : GetNextToken() - Implemented. + : Peek() - Implemented. + : Remainder { get; } - Implemented. + +2002-10-07 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> + * HeaderTokenType.cs : Added member "Undefined". * HeaderTokenizer.cs : SkipWhiteSpace(), : ParseToken(string, int, int) Index: HeaderTokenType.cs =================================================================== RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/HeaderTokenType.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- HeaderTokenType.cs 7 Oct 2002 12:56:01 -0000 1.2 +++ HeaderTokenType.cs 8 Oct 2002 04:39:33 -0000 1.3 @@ -12,9 +12,9 @@ { public enum HeaderTokenType { - NotSet, Atom, Comment, + Delimiter, EOF, QuotedString, Undefined Index: HeaderTokenizer.cs =================================================================== RCS file: /cvsroot/csmail/csmail/src/CSMail.Utils/HeaderTokenizer.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- HeaderTokenizer.cs 7 Oct 2002 12:56:01 -0000 1.2 +++ HeaderTokenizer.cs 8 Oct 2002 04:39:33 -0000 1.3 @@ -54,14 +54,17 @@ public HeaderToken Peek() { - throw new NotImplementedException(); + currentPosition = nextPosition; + HeaderToken retVal = GetNextToken(); + peekPosition = currentPosition; + return retVal; } public string Remainder { get { - throw new NotImplementedException(); + return content.Substring(nextPosition); } } @@ -90,10 +93,11 @@ bool waitNext = false; char c; + int start = 0; for( c = content[currentPosition]; c == '('; c = content[currentPosition]) { currentPosition++; - int start = currentPosition; + start = currentPosition; int braceBalance; for(braceBalance = 1; braceBalance > 0 && currentPosition < maximumPosition; @@ -138,7 +142,7 @@ if(c == '"') { - int start = ++currentPosition; + start = ++currentPosition; while(currentPosition < maximumPosition) { c = content[currentPosition]; @@ -170,14 +174,28 @@ } throw new ParseException("[HeaderTokenizer] Unbalanced quoted string"); } - /* - if(c < ' ' || c >= '\177' || delimiters.IndexOf(c) >= 0) + + if(c < ' ' || c >= (char)0xB1 || delimiters.IndexOf(c) >= 0) { currentPosition ++; - char[] ac = + char[] rv = new char[1]; + rv[0] = c; + HeaderTokenType htType = HeaderTokenType.Undefined; + if(defimiters.IndexOf(c) >= 0) + htType = HeaderTokenType.Delimiter; + return new HeaderToken(htType, new string(rv)); + } + + start = currentPosition; + while(currentPosition < maximumPosition) + { + c = content[currentPosition]; + if(c <= ' ' || c >= (char)0xB1 || c == '(' || c == '"' || delimiters.IndexOf(c) >= 0) + break; + currentPosition++; } - */ - throw new NotImplementedException(); + return new HeaderToken(HeaderTokenType.Atom, + content.Substring(start, currentPosition - start)); } private int SkipWhiteSpace() |