cmdlinelib.h

Go to the documentation of this file.
00001 /* Command line library */
00002 #ifndef CMDLINELIB_H
00003 #define CMDLINELIB_H
00004 
00005 #define CMDL_BUFFER_SIZE 256
00006 //#define CMDL_OUTPUT_SIZE 256
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         // buffers
00039 
00040         //char* output;
00041         char* buffer;
00042         char* prompt;
00043 
00044         // options and values
00045 
00046         int cursor;
00047         //int has_output;
00048         int exit;
00049         int refresh;
00050         int tabstate;
00051         int insert;
00052 
00053         // callbacks
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 //void cmdl_builtin_help(cmd_line* cmd, char* command);
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 //void cmdl_addoutput_str(cmd_line* cmd, char output[CMDL_OUTPUT_SIZE]);
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 

Generated on Tue Apr 6 20:01:06 2010 for gPXE by  doxygen 1.5.7.1