[csmaild-cvs] csmaild/src/Imap/Commands ImapCommand.cs,1.12,1.13
Brought to you by:
tamc
|
From: <ta...@us...> - 2003-08-05 01:50:27
|
Update of /cvsroot/csmaild/csmaild/src/Imap/Commands
In directory sc8-pr-cvs1:/tmp/cvs-serv1562/src/Imap/Commands
Modified Files:
ImapCommand.cs
Log Message:
Oops, forget this fix
Index: ImapCommand.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Imap/Commands/ImapCommand.cs,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** ImapCommand.cs 3 Aug 2003 01:08:38 -0000 1.12
--- ImapCommand.cs 5 Aug 2003 01:50:24 -0000 1.13
***************
*** 1,3 ****
! using Imap.NetworkManager;
using System;
--- 1,3 ----
! using Common.NetworkManager;
using System;
***************
*** 22,30 ****
private ArgumentType[] mArgumentTypes;
protected bool mUidCalled;
- protected string mUnparsedArguments;
- protected int mUnparsedArgumentIdx;
protected object[] mParsedArguments;
-
protected ImapConnection mConnection;
#endregion
--- 22,30 ----
private ArgumentType[] mArgumentTypes;
+ private string mUnparsedArguments;
+ private int mUnparsedArgumentIdx;
+
protected bool mUidCalled;
protected object[] mParsedArguments;
protected ImapConnection mConnection;
#endregion
***************
*** 127,132 ****
ParenthesizedListAtom = 66, // paren(64) + atom(2)
Optional = 128,
! OptionalParenthesizedList = 192,
! OptionalQuotedString = 129
}
--- 127,133 ----
ParenthesizedListAtom = 66, // paren(64) + atom(2)
Optional = 128,
! OptionalParenthesizedList = 192, // optional(128) + paren(64)
! OptionalQuotedString = 129, // optional(128) + quoted(1)
! FlagListFlag = 256,
}
***************
*** 182,185 ****
--- 183,188 ----
else if((argType & ArgumentType.SequenceSet) == ArgumentType.SequenceSet) // sequence set
return ParseSequenceSet();
+ else if((argType & ArgumentType.FlagListFlag) == ArgumentType.FlagListFlag) // flag-list / flag
+ return ParseFlagListFlag();
return null;
}
***************
*** 202,205 ****
--- 205,233 ----
return str;
}
+
+ private object ParseFlagListFlag()
+ {
+ if(mUnparsedArguments[mUnparsedArgumentIdx] != '(')
+ return ParseWhileGood(CommandPart.FlagChar);
+ else
+ {
+ ParenthesizedList list = new ParenthesizedList();
+ ++mUnparsedArgumentIdx;
+
+ while(true)
+ {
+ list.AddItem(ParseWhileGood(CommandPart.FlagChar));
+ if(mUnparsedArguments[mUnparsedArgumentIdx] == ' ')
+ ++mUnparsedArgumentIdx;
+ else if(mUnparsedArguments[mUnparsedArgumentIdx] == ')')
+ break;
+ else
+ return null;
+ }
+
+ ++mUnparsedArgumentIdx;
+ return list;
+ }
+ }
#endregion
***************
*** 284,288 ****
sequenceSetString = mUnparsedArguments.Substring(mUnparsedArgumentIdx, endIdx - mUnparsedArgumentIdx);
! string[] parts = sequenceSetString.Split(' ');
foreach(string part in parts)
{
--- 312,316 ----
sequenceSetString = mUnparsedArguments.Substring(mUnparsedArgumentIdx, endIdx - mUnparsedArgumentIdx);
! string[] parts = sequenceSetString.Split(',');
foreach(string part in parts)
{
***************
*** 517,521 ****
if(mUnparsedArguments[mUnparsedArgumentIdx] == ' ')
++mUnparsedArgumentIdx;
! list.AddItem(ParseArgument(ArgumentType.AString));
if(mUnparsedArguments[mUnparsedArgumentIdx] == ')')
--mUnparsedArgumentIdx;
--- 545,552 ----
if(mUnparsedArguments[mUnparsedArgumentIdx] == ' ')
++mUnparsedArgumentIdx;
! string arg = ParseArgument(ArgumentType.AString) as string;
! if(arg == null)
! return null;
! list.AddItem(arg);
if(mUnparsedArguments[mUnparsedArgumentIdx] == ')')
--mUnparsedArgumentIdx;
|