2009-08-22 Giacomo Stelluti Scala <firstname.lastname@example.org>
* CommandLineParserFixture.cs (CommandLineParserFixture)
Modified. User Rasqualtwilight (see
correctly suggest that the parser should fail if nothing (or null string in case of
string option) is passed to a long option (#BUG0002).
Modified for #DGN0001 (see ).
The refactoring of ParserSettings type name (to CommandLineParserSettings)
has impacted some test(s).
* LongOptionParser.cs (LongOptionParser)
* ArgumentParser.cs (ArgumentParser)
Modified. Added a guard clause like suggested by Rasqualtwilight in ; see IsInputValue(string) method.
The method IsInputValue(...) was also modified in order to accept '-' (single dash) as option
input parameter value; also this is stated in  and referenced as #REQ0001 (see
The dash '-' is used by some program to indicate STDIN (again, see  and ).
* ICommandLineParser.cs (ICommandLineParser)
Modified. Removed previously added overload ParseArguments(...) that accepts ParserSettings.
I think that this is a better design choiche (#DGN0001, see
This is done to decouple ParserSettings type from this interface and couple it with the
main parser implementation (CommandLineParser).
* CommandLineParser.cs (CommandLineParser)
* HelpText.cs (HelpText)
Modified. In order to fullfill the user pruiz request (#REQ0002; see
* HelpTextFixture.cs (HelpTextFixture)
* CommandLineParserFixture.Mocks.cs (MockOptionsCaseSensitive)
Modified. In order to fullfill design choice #DGN0001:
moving the ParserSettings type from method to class constructor removes the
obligation to have an HelpOption attribute (HelpOptionAttribute.cs) defined.
* ParserSettings.cs (ParserSettings)
Renamed to CommandLineParserSettings.cs: ParserSettings type renamed to
* CommandLineParserSettings.cs (CommandLineParserSettings)
Added standard copyright header.
Added MutuallyExclusive boolean property to switch on/off parsing rule for options with
Added more constructors.
Modified for #REQ0003 (see ).
* OptionAttribute.cs (OptionAttribute)
Modified. The OptionAttribute is modified in order to add a "mutually exclusive" feature requested
by ErikEJ (#REQ0003; see  http://commandline.codeplex.com/WorkItem/View.aspx?WorkItemId=7134).
Added public string property MutuallyExclusiveSet (string).
Added. Unit tests for "mutually exclusive" feature (#REQ0003).
* OptionInfo.cs (OptionInfo)
Added string property MutuallyExclusiveSet to handle the same property on OptionAttribute (see
* OptionMap.cs (OptionMap)
Modified. Altered constructor.
Changes made to OptionMap::EnforceRules(...) to handle #REQ0003 (see ); this doesn't affect
public API, because OptionMap type is internal for library private use.
* OptionMapFixture.cs (OptionMapFixture)
Modified. Some changes made for #REQ0003 (see ).