Skip to content

Commit

Permalink
Minor internal refactoring; snk placed out of csproj(s).
Browse files Browse the repository at this point in the history
  • Loading branch information
gsscoder committed Feb 26, 2013
1 parent 127ab10 commit 79f115b
Show file tree
Hide file tree
Showing 9 changed files with 291 additions and 298 deletions.
File renamed without changes.
Binary file removed src/libcmdline/CommandLine.PublicKey
Binary file not shown.
281 changes: 140 additions & 141 deletions src/libcmdline/CommandLine.csproj
@@ -1,148 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5DEA2811-2FFA-4959-830B-CAD3ACACABEB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CommandLine</RootNamespace>
<AssemblyName>CommandLine</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\CommandLine.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\CommandLine.XML</DocumentationFile>
<GenerateDocumentation>true</GenerateDocumentation>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>CommandLine.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Attributes\BaseOptionAttribute.cs" />
<Compile Include="Attributes\OptionAttribute.cs" />
<Compile Include="Attributes\OptionArrayAttribute.cs" />
<Compile Include="Attributes\HelpOptionAttribute.cs" />
<Compile Include="Attributes\OptionListAttribute.cs" />
<Compile Include="Attributes\ParserStateAttribute.cs" />
<Compile Include="Attributes\ValueListAttribute.cs" />
<Compile Include="Attributes\ValueOptionAttribute.cs" />
<Compile Include="Extensions\CharExtensions.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Infrastructure\PopsicleSetter.cs" />
<Compile Include="Parsing\PropertyWriter.cs" />
<Compile Include="Infrastructure\SR.strings.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.tt</DependentUpon>
</Compile>
<Compile Include="Infrastructure\Assumes.cs" />
<Compile Include="Infrastructure\ReflectionCache.cs" />
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Infrastructure\ReflectionHelper.cs" />
<Compile Include="Infrastructure\Pair.cs" />
<Compile Include="Parsing\TargetCapabilitiesExtensions.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Parsing\ValueMapper.cs" />
<Compile Include="Parsing\LongOptionParser.cs" />
<Compile Include="Parsing\OptionGroupParser.cs" />
<Compile Include="Parsing\OptionInfo.cs" />
<Compile Include="Parsing\OptionMap.cs" />
<Compile Include="Parsing\OneCharStringEnumerator.cs" />
<Compile Include="Parsing\StringArrayEnumerator.cs" />
<Compile Include="Parsing\ArgumentParser.cs" />
<Compile Include="Parsing\IArgumentEnumerator.cs" />
<Compile Include="Parsing\PresentParserState.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Text\HelpText.cs" />
<Compile Include="Text\BaseSentenceBuilder.cs" />
<Compile Include="Text\EnglishSentenceBuilder.cs" />
<Compile Include="Text\CopyrightInfo.cs" />
<Compile Include="Text\HeadingInfo.cs" />
<Compile Include="Attributes\MultiLineTextAttribute.cs" />
<Compile Include="Attributes\AssemblyLicenseAttribute.cs" />
<Compile Include="Attributes\AssemblyUsageAttribute.cs" />
<Compile Include="Text\FormatOptionHelpTextEventArgs.cs" />
<Compile Include="Attributes\HelpVerbOptionAttribute.cs" />
<Compile Include="Attributes\VerbOptionAttribute.cs" />
<Compile Include="BadOptionInfo.cs" />
<Compile Include="Parser.cs" />
<Compile Include="ParserException.cs" />
<Compile Include="ParserSettings.cs" />
<Compile Include="IParserState.cs" />
<Compile Include="ParserState.cs" />
<Compile Include="ParsingError.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5DEA2811-2FFA-4959-830B-CAD3ACACABEB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CommandLine</RootNamespace>
<AssemblyName>CommandLine</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\CommandLine.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\CommandLine.XML</DocumentationFile>
<GenerateDocumentation>true</GenerateDocumentation>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>..\..\CommandLine.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Attributes\BaseOptionAttribute.cs" />
<Compile Include="Attributes\OptionAttribute.cs" />
<Compile Include="Attributes\OptionArrayAttribute.cs" />
<Compile Include="Attributes\HelpOptionAttribute.cs" />
<Compile Include="Attributes\OptionListAttribute.cs" />
<Compile Include="Attributes\ParserStateAttribute.cs" />
<Compile Include="Attributes\ValueListAttribute.cs" />
<Compile Include="Attributes\ValueOptionAttribute.cs" />
<Compile Include="Extensions\CharExtensions.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Infrastructure\PopsicleSetter.cs" />
<Compile Include="Parsing\PropertyWriter.cs" />
<Compile Include="Infrastructure\SR.strings.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SR.tt</DependentUpon>
</Compile>
<Compile Include="Infrastructure\Assumes.cs" />
<Compile Include="Infrastructure\ReflectionCache.cs" />
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Infrastructure\ReflectionHelper.cs" />
<Compile Include="Infrastructure\Pair.cs" />
<Compile Include="Parsing\TargetCapabilitiesExtensions.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Parsing\ValueMapper.cs" />
<Compile Include="Parsing\LongOptionParser.cs" />
<Compile Include="Parsing\OptionGroupParser.cs" />
<Compile Include="Parsing\OptionInfo.cs" />
<Compile Include="Parsing\OptionMap.cs" />
<Compile Include="Parsing\OneCharStringEnumerator.cs" />
<Compile Include="Parsing\StringArrayEnumerator.cs" />
<Compile Include="Parsing\ArgumentParser.cs" />
<Compile Include="Parsing\IArgumentEnumerator.cs" />
<Compile Include="Parsing\PresentParserState.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Text\HelpText.cs" />
<Compile Include="Text\BaseSentenceBuilder.cs" />
<Compile Include="Text\EnglishSentenceBuilder.cs" />
<Compile Include="Text\CopyrightInfo.cs" />
<Compile Include="Text\HeadingInfo.cs" />
<Compile Include="Attributes\MultiLineTextAttribute.cs" />
<Compile Include="Attributes\AssemblyLicenseAttribute.cs" />
<Compile Include="Attributes\AssemblyUsageAttribute.cs" />
<Compile Include="Text\FormatOptionHelpTextEventArgs.cs" />
<Compile Include="Attributes\HelpVerbOptionAttribute.cs" />
<Compile Include="Attributes\VerbOptionAttribute.cs" />
<Compile Include="BadOptionInfo.cs" />
<Compile Include="Parser.cs" />
<Compile Include="ParserException.cs" />
<Compile Include="ParserSettings.cs" />
<Compile Include="IParserState.cs" />
<Compile Include="ParserState.cs" />
<Compile Include="ParsingError.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ItemGroup>
<None Include="CommandLine.snk" />
<None Include="Infrastructure\SR.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>SR.strings.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="CustomDictionary.xml" />
</ItemGroup>
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
-->
<ItemGroup>
<None Include="Infrastructure\SR.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>SR.strings.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<CodeAnalysisDictionary Include="CustomDictionary.xml" />
</ItemGroup>
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
4 changes: 3 additions & 1 deletion src/libcmdline/Parsing/LongOptionParser.cs
Expand Up @@ -37,7 +37,7 @@ public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator,
{
var parts = argumentEnumerator.Current.Substring(2).Split(new[] { '=' }, 2);
var option = map[parts[0]];
bool valueSetting;

if (option == null)
{
return _ignoreUnkwnownArguments ? PresentParserState.MoveOnNextElement : PresentParserState.Failure;
Expand All @@ -47,6 +47,8 @@ public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator,

ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

bool valueSetting;

if (!option.IsBoolean)
{
if (parts.Length == 1 && (argumentEnumerator.IsLast || !ArgumentParser.IsInputValue(argumentEnumerator.Next)))
Expand Down
23 changes: 12 additions & 11 deletions src/libcmdline/Parsing/OptionGroupParser.cs
Expand Up @@ -35,10 +35,11 @@ public OptionGroupParser(bool ignoreUnkwnownArguments)

public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
{
IArgumentEnumerator group = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));
while (group.MoveNext())
var optionGroup = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));

while (optionGroup.MoveNext())
{
var option = map[group.Current];
var option = map[optionGroup.Current];
if (option == null)
{
return _ignoreUnkwnownArguments ? PresentParserState.MoveOnNextElement : PresentParserState.Failure;
Expand All @@ -50,17 +51,17 @@ public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator,

if (!option.IsBoolean)
{
if (argumentEnumerator.IsLast && group.IsLast)
if (argumentEnumerator.IsLast && optionGroup.IsLast)
{
return PresentParserState.Failure;
}

bool valueSetting;
if (!group.IsLast)
if (!optionGroup.IsLast)
{
if (!option.IsArray)
{
valueSetting = option.SetValue(group.GetRemainingFromNext(), options);
valueSetting = option.SetValue(optionGroup.GetRemainingFromNext(), options);
if (!valueSetting)
{
DefineOptionThatViolatesFormat(option);
Expand All @@ -72,7 +73,7 @@ public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator,
ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
items.Insert(0, @group.GetRemainingFromNext());
items.Insert(0, optionGroup.GetRemainingFromNext());

valueSetting = option.SetValue(items, options);
if (!valueSetting)
Expand Down Expand Up @@ -112,10 +113,10 @@ public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator,
return ArgumentParser.BooleanToParserState(valueSetting);
}

if (!@group.IsLast && map[@group.Next] == null)
{
return PresentParserState.Failure;
}
if (!optionGroup.IsLast && map[optionGroup.Next] == null)
{
return PresentParserState.Failure;
}

if (!option.SetValue(true, options))
{
Expand Down
3 changes: 3 additions & 0 deletions src/libcmdline/Parsing/PresentParserState.cs
Expand Up @@ -31,8 +31,11 @@ namespace CommandLine.Parsing
internal enum PresentParserState : ushort
{
Undefined = 0x00,

Success = 0x01,

Failure = 0x02,

MoveOnNextElement = 0x04
}
}

0 comments on commit 79f115b

Please sign in to comment.