Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/libsvn_subr/opt.c view on Meta::CPAN
svn_boolean_t
svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
int option_code)
{
apr_size_t i;
for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
if (command->valid_options[i] == option_code)
return TRUE;
return FALSE;
}
/* Print the canonical command name for CMD, and all its aliases, to
STREAM. If HELP is set, print CMD's help string too, in which case
obtain option usage from OPTIONS_TABLE. */
static svn_error_t *
print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
const apr_getopt_option_t *options_table,
const int *global_options,
svn_boolean_t help,
apr_pool_t *pool,
FILE *stream)
{
svn_boolean_t first_time;
apr_size_t i;
/* Print the canonical command name. */
SVN_ERR(svn_cmdline_fputs(cmd->name, stream, pool));
/* Print the list of aliases. */
first_time = TRUE;
for (i = 0; i < SVN_OPT_MAX_ALIASES; i++)
{
if (cmd->aliases[i] == NULL)
break;
if (first_time) {
SVN_ERR(svn_cmdline_fputs(" (", stream, pool));
first_time = FALSE;
}
else
SVN_ERR(svn_cmdline_fputs(", ", stream, pool));
SVN_ERR(svn_cmdline_fputs(cmd->aliases[i], stream, pool));
}
if (! first_time)
SVN_ERR(svn_cmdline_fputs(")", stream, pool));
if (help)
{
const apr_getopt_option_t *option;
const char *long_alias;
svn_boolean_t have_options = FALSE;
SVN_ERR(svn_cmdline_fprintf(stream, pool, ": %s", _(cmd->help)));
/* Loop over all valid option codes attached to the subcommand */
for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
{
if (cmd->valid_options[i])
{
if (!have_options)
{
SVN_ERR(svn_cmdline_fputs(_("\nValid options:\n"),
stream, pool));
have_options = TRUE;
}
/* convert each option code into an option */
option = get_option_from_code(&long_alias, cmd->valid_options[i],
options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
{
const char *optstr;
format_option(&optstr, option, long_alias, TRUE, pool);
SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
optstr));
}
}
}
/* And global options too */
if (global_options && *global_options)
{
SVN_ERR(svn_cmdline_fputs(_("\nGlobal options:\n"),
stream, pool));
have_options = TRUE;
for (i = 0; global_options[i]; i++)
{
/* convert each option code into an option */
option = get_option_from_code(&long_alias, global_options[i],
options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
{
const char *optstr;
format_option(&optstr, option, long_alias, TRUE, pool);
SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
optstr));
}
}
}
if (have_options)
SVN_ERR(svn_cmdline_fprintf(stream, pool, "\n"));
}
return SVN_NO_ERROR;
}
void
svn_opt_print_generic_help2(const char *header,
const svn_opt_subcommand_desc2_t *cmd_table,
( run in 1.371 second using v1.01-cache-2.11-cpan-e1769b4cff6 )