Sha256: e1906b43aaadff2d14f0cd8026bde445dfa4e2ba7d33cea69215a3d05a613179

Contents?: true

Size: 1.35 KB

Versions: 20

Compression:

Stored size: 1.35 KB

Contents

//
// commander.h
//
// Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>
//

#ifndef COMMANDER_H
#define COMMANDER_H

/*
 * Max options that can be defined.
 */

#ifndef COMMANDER_MAX_OPTIONS
#define COMMANDER_MAX_OPTIONS 32
#endif

/*
 * Max arguments that can be passed.
 */

#ifndef COMMANDER_MAX_ARGS
#define COMMANDER_MAX_ARGS 32
#endif

/*
 * Command struct.
 */

struct command;

/*
 * Option callback.
 */

typedef void (* command_callback_t)(struct command *self);

/*
 * Command option.
 */

typedef struct {
  int optional_arg;
  int required_arg;
  char *argname;
  char *large;
  const char *small;
  const char *large_with_arg;
  const char *description;
  command_callback_t cb;
} command_option_t;

/*
 * Command.
 */

typedef struct command {
  void *data;
  const char *usage;
  const char *arg;
  const char *name;
  const char *version;
  int option_count;
  command_option_t options[COMMANDER_MAX_OPTIONS];
  int argc;
  char *argv[COMMANDER_MAX_ARGS];
  char **nargv;
} command_t;

// prototypes

void
command_init(command_t *self, const char *name, const char *version);

void
command_free(command_t *self);

void
command_help(command_t *self);

void
command_option(command_t *self, const char *small, const char *large, const char *desc, command_callback_t cb);

void
command_parse(command_t *self, int argc, char **argv);

#endif /* COMMANDER_H */

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
acpc_dealer-2.4.1 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.4.0 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.6 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.5 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.4 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.3 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.2 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.1 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.3.0 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.2.0 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
c_project-0.2.3 templates/vendor/commander.c/src/commander.h
c_project-0.2.2 templates/vendor/commander.c/src/commander.h
c_project-0.2.1 templates/vendor/commander.c/src/commander.h
c_project-0.2.0 templates/vendor/commander.c/src/commander.h
c_project-0.1.0 templates/commander.c/src/commander.h
c_project-0.0.1 templates/vendor/commander.c/src/commander.h
acpc_dealer-2.1.3 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.1.2 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.1.1 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
acpc_dealer-2.1.0 vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h