cmdlinelib.h
Go to the documentation of this file.00001
00002 #ifndef CMDLINELIB_H
00003 #define CMDLINELIB_H
00004
00005 #define CMDL_BUFFER_SIZE 256
00006
00007 #define CMDL_PROMPT_SIZE 8
00008 #define CMDL_MAX_TAB_COMPLETE_RESULT 256
00009
00010 typedef int (*cmdl_putchar_t)(int);
00011 typedef int (*cmdl_printf_t)( const char *format, ... );
00012 typedef int (*cmdl_getchar_t)();
00013
00014 #ifndef NULL
00015 #define NULL ((void *)0)
00016 #endif
00017
00018 enum{
00019 CMDL_LEFT,
00020 CMDL_RIGHT
00021 };
00022
00023 enum{
00024 CMDLK_FW=6,
00025 CMDLK_BW=2,
00026 CMDLK_BS=8,
00027 CMDLK_HOME=2,
00028 CMDLK_END=5,
00029 CMDLK_DELTOEND=11,
00030 CMDLK_DELARG=23,
00031 CMDLK_ENTER=0x0d,
00032 CMDLK_RETURN=0x0a,
00033 CMDLK_TAB=9
00034 };
00035
00036 typedef struct{
00037
00038
00039
00040
00041 char* buffer;
00042 char* prompt;
00043
00044
00045
00046 int cursor;
00047
00048 int exit;
00049 int refresh;
00050 int tabstate;
00051 int insert;
00052
00053
00054
00055 cmdl_putchar_t putchar;
00056 cmdl_getchar_t getchar;
00057 cmdl_printf_t printf;
00058
00059 }cmd_line;
00060
00061 typedef struct{
00062 int argc;
00063 char **argv;
00064 }cmdl_param_list;
00065
00066 void cmdl_setputchar(cmd_line* cmd, cmdl_putchar_t in);
00067 void cmdl_setgetchar(cmd_line* cmd, cmdl_getchar_t in);
00068 void cmdl_setprintf(cmd_line* cmd, cmdl_printf_t in);
00069
00070
00071
00072 void cmdl_parsechar(cmd_line* cmd, char in);
00073
00074 void cmdl_addreplace(cmd_line* cmd, char in);
00075 void cmdl_addinsert(cmd_line* cmd, char in);
00076 void cmdl_enterloop(cmd_line* cmd);
00077 void cmdl_exec(cmd_line* cmd);
00078 void cmdl_setexit(cmd_line* cmd, int exit);
00079 int cmdl_getexit(cmd_line* cmd);
00080 void cmdl_clearoutput(cmd_line* cmd);
00081 void cmdl_clearbuffer(cmd_line* cmd);
00082 int cmdl_printf(cmd_line* cmd, const char *format, ...);
00083 char* cmdl_getoutput(cmd_line* cmd);
00084
00085 void cmdl_addstr(cmd_line* cmd, char* str);
00086 int cmdl_movecursor(cmd_line* cmd, int direction);
00087 char* cmdl_getbuffer(cmd_line* cmd);
00088 void cmdl_addchar(cmd_line* cmd, char in);
00089 int cmdl_check(cmd_line* cmd);
00090 void cmdl_del(cmd_line* cmd);
00091 cmd_line* cmdl_create();
00092 void cmdl_free(cmd_line* cmd);
00093 char *cmdl_getprompt(cmd_line* cmd);
00094 void cmdl_setpropmt(cmd_line* cmd, char prompt[CMDL_PROMPT_SIZE]);
00095 cmdl_param_list* cmdl_getparams(const char* command);
00096 void cmdl_tabcomplete(cmd_line *cmd);
00097
00098 #endif
00099