--- lbbs/include/bbs_cmd.h 2025/05/06 05:31:26 1.7 +++ lbbs/include/bbs_cmd.h 2025/06/24 10:01:24 1.9 @@ -17,24 +17,29 @@ #define _BBS_CMD_H_ #define MAX_CMD_LENGTH 20 -#define MAX_CMD_ID 100 -#define MENU_OK 0x0 -#define UNKNOWN_CMD 0xff -#define EXITBBS 0xfe -#define REDRAW 0x1 -#define NOREDRAW 0x2 +enum menu_return_t +{ + MENU_OK = 0x0, + REDRAW = 0x1, + NOREDRAW = 0x2, + EXITMENU = 0x3, + UNKNOWN_CMD = 0xff, + EXITBBS = 0xfe, +}; + +typedef int (*bbs_cmd_handler)(void *p_param); struct _bbs_cmd { - char cmd[MAX_CMD_LENGTH]; - int (*p_handle)(const char *p_param); + const char *cmd; + bbs_cmd_handler handler; }; typedef struct _bbs_cmd BBS_CMD; -extern BBS_CMD bbs_cmd_list[MAX_CMD_ID]; +extern int load_cmd(); -extern int exec_cmd(const char *cmd, const char *param); +extern bbs_cmd_handler get_cmd_handler(const char *cmd); #endif //_BBS_CMD_H_