/**
* Command name (statically allocated by application)
*/
- const char* command;
+ const char *command;
/**
* Help text (statically allocated by application), may be NULL.
*/
- const char* help;
+ const char *help;
/**
* Hint text, usually lists possible arguments, dynamically allocated.
* May be NULL.
*/
- char* hint;
+ char *hint;
esp_console_cmd_func_t func; //!< pointer to the command handler
- void* argtable; //!< optional pointer to arg table
+ void *argtable; //!< optional pointer to arg table
SLIST_ENTRY(cmd_item_) next; //!< next command in the list
} cmd_item_t;
static esp_console_config_t s_config;
/** temporary buffer used for command line parsing */
-static char* s_tmp_line_buf;
+static char *s_tmp_line_buf;
-static const cmd_item_t* find_command_by_name(const char* name);
+static const cmd_item_t *find_command_by_name(const char *name);
-esp_err_t esp_console_init(const esp_console_config_t* config)
+esp_err_t esp_console_init(const esp_console_config_t *config)
{
if (s_tmp_line_buf) {
return ESP_ERR_INVALID_STATE;
return ESP_ERR_NO_MEM;
}
if (cmd->command == NULL) {
- free(item);
+ free(item);
return ESP_ERR_INVALID_ARG;
}
if (strchr(cmd->command, ' ') != NULL) {
- free(item);
+ free(item);
return ESP_ERR_INVALID_ARG;
}
item->command = cmd->command;
asprintf(&item->hint, " %s", cmd->hint);
} else if (cmd->argtable) {
/* Generate hint based on cmd->argtable */
- char* buf = NULL;
+ char *buf = NULL;
size_t buf_size = 0;
- FILE* f = open_memstream(&buf, &buf_size);
+ FILE *f = open_memstream(&buf, &buf_size);
if (f != NULL) {
arg_print_syntax(f, cmd->argtable, NULL);
fclose(f);
}
item->argtable = cmd->argtable;
item->func = cmd->func;
- cmd_item_t* last = SLIST_FIRST(&s_cmd_list);
+ cmd_item_t *last = SLIST_FIRST(&s_cmd_list);
if (last == NULL) {
SLIST_INSERT_HEAD(&s_cmd_list, item, next);
} else {
- cmd_item_t* it;
+ cmd_item_t *it;
while ((it = SLIST_NEXT(last, next)) != NULL) {
last = it;
}
if (len == 0) {
return;
}
- cmd_item_t* it;
+ cmd_item_t *it;
SLIST_FOREACH(it, &s_cmd_list, next) {
/* Check if command starts with buf */
if (strncmp(buf, it->command, len) == 0) {
}
}
-const char* esp_console_get_hint(const char *buf, int *color, int *bold)
+const char *esp_console_get_hint(const char *buf, int *color, int *bold)
{
int len = strlen(buf);
- cmd_item_t* it;
+ cmd_item_t *it;
SLIST_FOREACH(it, &s_cmd_list, next) {
if (strlen(it->command) == len &&
strncmp(buf, it->command, len) == 0) {
return NULL;
}
-static const cmd_item_t* find_command_by_name(const char* name)
+static const cmd_item_t *find_command_by_name(const char *name)
{
- const cmd_item_t* cmd = NULL;
- cmd_item_t* it;
+ const cmd_item_t *cmd = NULL;
+ cmd_item_t *it;
SLIST_FOREACH(it, &s_cmd_list, next) {
if (strcmp(name, it->command) == 0) {
cmd = it;
return cmd;
}
-esp_err_t esp_console_run(const char* cmdline, int* cmd_ret)
+esp_err_t esp_console_run(const char *cmdline, int *cmd_ret)
{
if (s_tmp_line_buf == NULL) {
return ESP_ERR_INVALID_STATE;
}
- char** argv = (char**) calloc(s_config.max_cmdline_args, sizeof(char*));
+ char **argv = (char **) calloc(s_config.max_cmdline_args, sizeof(char *));
if (argv == NULL) {
return ESP_ERR_NO_MEM;
}
strlcpy(s_tmp_line_buf, cmdline, s_config.max_cmdline_length);
size_t argc = esp_console_split_argv(s_tmp_line_buf, argv,
- s_config.max_cmdline_args);
+ s_config.max_cmdline_args);
if (argc == 0) {
- free(argv);
+ free(argv);
return ESP_ERR_INVALID_ARG;
}
- const cmd_item_t* cmd = find_command_by_name(argv[0]);
+ const cmd_item_t *cmd = find_command_by_name(argv[0]);
if (cmd == NULL) {
- free(argv);
+ free(argv);
return ESP_ERR_NOT_FOUND;
}
*cmd_ret = (*cmd->func)(argc, argv);
return ESP_OK;
}
-static int help_command(int argc, char** argv)
+static int help_command(int argc, char **argv)
{
- cmd_item_t* it;
+ cmd_item_t *it;
/* Print summary of each command */
SLIST_FOREACH(it, &s_cmd_list, next) {
/* First line: command name and hint
* Pad all the hints to the same column
*/
- const char* hint = (it->hint) ? it->hint : "";
+ const char *hint = (it->hint) ? it->hint : "";
printf("%-s %s\n", it->command, hint);
/* Second line: print help.
* Argtable has a nice helper function for this which does line
arg_print_formatted(stdout, 2, 78, it->help);
/* Finally, print the list of arguments */
if (it->argtable) {
- arg_print_glossary(stdout, (void**) it->argtable, " %12s %s\n");
+ arg_print_glossary(stdout, (void **) it->argtable, " %12s %s\n");
}
printf("\n");
}
esp_err_t esp_console_register_help_command()
{
esp_console_cmd_t command = {
- .command = "help",
- .help = "Print the list of registered commands",
- .func = &help_command
+ .command = "help",
+ .help = "Print the list of registered commands",
+ .func = &help_command
};
return esp_console_cmd_register(&command);
}