Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • cmd.c

    r4d86e06 r0a0fb74  
    55#include "owl.h"
    66
    7 extern owl_cmd commands_to_init[];
     7extern const owl_cmd commands_to_init[];
    88
    99/**************************************************************************/
     
    2323
    2424/* for bulk initialization at startup */
    25 int owl_cmddict_add_from_list(owl_cmddict *cd, owl_cmd *cmds) {
    26   owl_cmd *cur;
     25int owl_cmddict_add_from_list(owl_cmddict *cd, const owl_cmd *cmds) {
     26  const owl_cmd *cur;
    2727  int ret = 0;
    2828  for (cur = cmds; cur->name != NULL; cur++) {
     
    3434
    3535/* free the list with owl_cmddict_namelist_free */
    36 void owl_cmddict_get_names(owl_cmddict *d, owl_list *l) {
     36void owl_cmddict_get_names(const owl_cmddict *d, owl_list *l) {
    3737  owl_dict_get_keys(d, l);
    3838}
    3939
    40 owl_cmd *owl_cmddict_find(owl_cmddict *d, char *name) {
     40const owl_cmd *owl_cmddict_find(const owl_cmddict *d, const char *name) {
    4141  return owl_dict_find_element(d, name);
    4242}
     
    4747
    4848/* creates a new command alias */
    49 int owl_cmddict_add_alias(owl_cmddict *cd, char *alias_from, char *alias_to) {
     49int owl_cmddict_add_alias(owl_cmddict *cd, const char *alias_from, const char *alias_to) {
    5050  owl_cmd *cmd;
    5151  cmd = owl_malloc(sizeof(owl_cmd));
     
    5555}
    5656
    57 int owl_cmddict_add_cmd(owl_cmddict *cd, owl_cmd * cmd) {
     57int owl_cmddict_add_cmd(owl_cmddict *cd, const owl_cmd * cmd) {
    5858  owl_cmd * newcmd = owl_malloc(sizeof(owl_cmd));
    5959  if(owl_cmd_create_from_template(newcmd, cmd) < 0) {
     
    6565}
    6666
    67 char *_owl_cmddict_execute(owl_cmddict *cd, owl_context *ctx, char **argv, int argc, char *buff) {
     67char *_owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc, const char *buff) {
    6868  char *retval = NULL;
    69   owl_cmd *cmd;
     69  const owl_cmd *cmd;
    7070
    7171  if (!strcmp(argv[0], "")) {
     
    7878}
    7979
    80 char *owl_cmddict_execute(owl_cmddict *cd, owl_context *ctx, char *cmdbuff) {
     80char *owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *cmdbuff) {
    8181  char **argv;
    8282  int argc;
     
    9595  if (argc < 1) return(NULL);
    9696
    97   retval = _owl_cmddict_execute(cd, ctx, argv, argc, cmdbuff);
     97  retval = _owl_cmddict_execute(cd, ctx, strs(argv), argc, cmdbuff);
    9898
    9999  owl_parsefree(argv, argc);
     
    103103}
    104104
    105 char *owl_cmddict_execute_argv(owl_cmddict *cd, owl_context *ctx, char **argv, int argc) {
     105char *owl_cmddict_execute_argv(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc) {
    106106  char *buff, *ptr;
    107107  int len = 0, i;
     
    132132
    133133/* sets up a new command based on a template, copying strings */
    134 int owl_cmd_create_from_template(owl_cmd *cmd, owl_cmd *templ) {
     134int owl_cmd_create_from_template(owl_cmd *cmd, const owl_cmd *templ) {
    135135  *cmd = *templ;
    136136  if (!templ->name) return(-1);
     
    143143}
    144144
    145 int owl_cmd_create_alias(owl_cmd *cmd, char *name, char *aliased_to) {
     145int owl_cmd_create_alias(owl_cmd *cmd, const char *name, const char *aliased_to) {
    146146  memset(cmd, 0, sizeof(owl_cmd));
    147147  cmd->name = owl_strdup(name);
     
    162162}
    163163
    164 int owl_cmd_is_context_valid(owl_cmd *cmd, owl_context *ctx) {
     164int owl_cmd_is_context_valid(const owl_cmd *cmd, const owl_context *ctx) {
    165165  if (owl_context_matches(ctx, cmd->validctx)) return 1;
    166166  else return 0;
    167167}
    168168
    169 char *owl_cmd_execute(owl_cmd *cmd, owl_cmddict *cd, owl_context *ctx, int argc, char **argv, char *cmdbuff) {
     169char *owl_cmd_execute(const owl_cmd *cmd, const owl_cmddict *cd, const owl_context *ctx, int argc, const char *const *argv, const char *cmdbuff) {
    170170  static int alias_recurse_depth = 0;
    171171  int ival=0;
    172   char *cmdbuffargs, *newcmd, *rv=NULL;
     172  const char *cmdbuffargs;
     173  char *newcmd, *rv=NULL;
    173174
    174175  if (argc < 1) return(NULL);
     
    205206
    206207  if (cmd->cmd_i_fn || cmd->cmd_ctxi_fn) {
    207       char *ep = "x";
     208      const char *ep = "x";
    208209      if (argc != 2) {
    209210        owl_function_makemsg("Wrong number of arguments for %s command.", argv[0]);
    210211        return NULL;
    211212      }
    212       ival = strtol(argv[1], &ep, 10);
     213      ival = strtol(argv[1], (char **)&ep, 10);
    213214      if (*ep || ep==argv[1]) {
    214215        owl_function_makemsg("Invalid argument '%s' for %s command.", argv[1], argv[0]);
     
    237238
    238239/* returns a reference */
    239 char *owl_cmd_get_summary(owl_cmd *cmd) {
     240const char *owl_cmd_get_summary(const owl_cmd *cmd) {
    240241  return cmd->summary;
    241242}
    242243
    243244/* returns a summary line describing this keymap.  the caller must free. */
    244 char *owl_cmd_describe(owl_cmd *cmd) {
     245char *owl_cmd_describe(const owl_cmd *cmd) {
    245246  char *s;
    246247  int slen;
     
    254255
    255256
    256 void owl_cmd_get_help(owl_cmddict *d, char *name, owl_fmtext *fm) {
    257   char *indent, *s;
     257void owl_cmd_get_help(const owl_cmddict *d, const char *name, owl_fmtext *fm) {
     258  const char *s;
     259  char *indent;
    258260  owl_cmd *cmd;
    259261
Note: See TracChangeset for help on using the changeset viewer.