33 lines
890 B
C
33 lines
890 B
C
#pragma once
|
|
|
|
#include "myBase.h"
|
|
|
|
typedef struct
|
|
{
|
|
const char *name;
|
|
void (*func)(int argc, char *argv[]);
|
|
const char *desc;
|
|
}stru_cmd;
|
|
|
|
|
|
#define CMD_REGISTER(cmd_name, func_ptr, cmd_desc) \
|
|
__attribute__((constructor)) static void register_##func_ptr(void) { \
|
|
cmd_manager_add_command(cmd_name, func_ptr, cmd_desc); \
|
|
}
|
|
|
|
void cmd_manager_add_command(const char *name, void (*func)(int argc, char *argv[]), const char *desc);
|
|
|
|
|
|
stru_cmd *cmd_manager_get_commands(unsigned int *out_count);
|
|
|
|
void cmd_help(int argc, char *argv[]);
|
|
stru_cmd *cmd_find(const char *name);
|
|
void cmd_complete(const char *buf, char ***completions, int *ncomp);
|
|
|
|
|
|
char *linenoise(const char *prompt);
|
|
void linenoiseFree(void *ptr);
|
|
int linenoiseHistoryAdd(const char *line);
|
|
void linenoiseHistoryFree(void);
|
|
void lineniseSetCompletionCallback(void (*cb)(const char *, char ***, int *));
|