123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* Command line library */
- #ifndef CMDLINELIB_H
- #define CMDLINELIB_H
-
- #define CMDL_BUFFER_SIZE 256
- //#define CMDL_OUTPUT_SIZE 256
- #define CMDL_PROMPT_SIZE 8
- #define CMDL_MAX_TAB_COMPLETE_RESULT 256
-
- typedef int (*cmdl_putchar_t)(int);
- typedef int (*cmdl_printf_t)( const char *format, ... );
- typedef int (*cmdl_getchar_t)();
-
- #ifndef NULL
- #define NULL ((void *)0)
- #endif
-
- enum{
- CMDL_LEFT,
- CMDL_RIGHT
- };
-
- enum{
- CMDLK_FW=6,
- CMDLK_BW=2,
- CMDLK_BS=8,
- CMDLK_HOME=2,
- CMDLK_END=5,
- CMDLK_DELTOEND=11,
- CMDLK_DELARG=23,
- CMDLK_ENTER=0x0d,
- CMDLK_RETURN=0x0a,
- CMDLK_TAB=9
- };
-
- typedef struct{
-
- // buffers
-
- //char* output;
- char* buffer;
- char* prompt;
-
- // options and values
-
- int cursor;
- //int has_output;
- int exit;
- int refresh;
- int tabstate;
- int insert;
-
- // callbacks
-
- cmdl_putchar_t putchar;
- cmdl_getchar_t getchar;
- cmdl_printf_t printf;
-
- }cmd_line;
-
- typedef struct{
- int argc;
- char **argv;
- }cmdl_param_list;
-
- void cmdl_setputchar(cmd_line* cmd, cmdl_putchar_t in);
- void cmdl_setgetchar(cmd_line* cmd, cmdl_getchar_t in);
- void cmdl_setprintf(cmd_line* cmd, cmdl_printf_t in);
-
- //void cmdl_builtin_help(cmd_line* cmd, char* command);
-
- void cmdl_parsechar(cmd_line* cmd, char in);
-
- void cmdl_addreplace(cmd_line* cmd, char in);
- void cmdl_addinsert(cmd_line* cmd, char in);
- void cmdl_enterloop(cmd_line* cmd);
- void cmdl_exec(cmd_line* cmd);
- void cmdl_setexit(cmd_line* cmd, int exit);
- int cmdl_getexit(cmd_line* cmd);
- void cmdl_clearoutput(cmd_line* cmd);
- void cmdl_clearbuffer(cmd_line* cmd);
- int cmdl_printf(cmd_line* cmd, const char *format, ...);
- char* cmdl_getoutput(cmd_line* cmd);
- //void cmdl_addoutput_str(cmd_line* cmd, char output[CMDL_OUTPUT_SIZE]);
- void cmdl_addstr(cmd_line* cmd, char* str);
- int cmdl_movecursor(cmd_line* cmd, int direction);
- char* cmdl_getbuffer(cmd_line* cmd);
- void cmdl_addchar(cmd_line* cmd, char in);
- int cmdl_check(cmd_line* cmd);
- void cmdl_del(cmd_line* cmd);
- cmd_line* cmdl_create();
- void cmdl_free(cmd_line* cmd);
- char *cmdl_getprompt(cmd_line* cmd);
- void cmdl_setpropmt(cmd_line* cmd, char prompt[CMDL_PROMPT_SIZE]);
- cmdl_param_list* cmdl_getparams(const char* command);
- void cmdl_tabcomplete(cmd_line *cmd);
-
- #endif
|