private bool ParseHelp(string[] args, HelpOptionAttribute helpOption) { var caseSensitive = _settings.CaseSensitive; foreach (var arg in args) { if (helpOption.ShortName != null) { if (ArgumentParser.CompareShort(arg, helpOption.ShortName, caseSensitive)) { return(true); } } if (string.IsNullOrEmpty(helpOption.LongName)) { continue; } if (ArgumentParser.CompareLong(arg, helpOption.LongName, caseSensitive)) { return(true); } } return(false); }
private bool DoParseArguments(string[] args, object options) { var pair = ReflectionHelper.RetrieveMethod <HelpOptionAttribute>(options); var helpWriter = _settings.HelpWriter; if (pair != null && helpWriter != null) { // If help can be handled is displayed if is requested or if parsing fails if (ParseHelp(args, pair.Right) || !DoParseArgumentsCore(args, options)) { string helpText; HelpOptionAttribute.InvokeMethod(options, pair, out helpText); helpWriter.Write(helpText); return(false); } return(true); } return(DoParseArgumentsCore(args, options)); }