source: bootcd/isolinux/syslinux-6.03/gpxe/src/include/cmdlinelib.h

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 2.1 KB
Line 
1/* Command line library */
2#ifndef CMDLINELIB_H
3#define CMDLINELIB_H
4
5#define CMDL_BUFFER_SIZE 256
6//#define CMDL_OUTPUT_SIZE 256
7#define CMDL_PROMPT_SIZE 8
8#define CMDL_MAX_TAB_COMPLETE_RESULT 256
9
10typedef int (*cmdl_putchar_t)(int);
11typedef int (*cmdl_printf_t)( const char *format, ... );
12typedef int (*cmdl_getchar_t)();
13
14#ifndef NULL
15#define NULL    ((void *)0)
16#endif
17
18enum{
19        CMDL_LEFT,
20        CMDL_RIGHT
21};
22
23enum{
24        CMDLK_FW=6,
25        CMDLK_BW=2,
26        CMDLK_BS=8,
27        CMDLK_HOME=2,
28        CMDLK_END=5,
29        CMDLK_DELTOEND=11,
30        CMDLK_DELARG=23,
31        CMDLK_ENTER=0x0d,
32        CMDLK_RETURN=0x0a,
33        CMDLK_TAB=9
34};
35
36typedef struct{
37       
38        // buffers
39
40        //char* output;
41        char* buffer;
42        char* prompt;
43
44        // options and values
45
46        int cursor;
47        //int has_output;
48        int exit;
49        int refresh;
50        int tabstate;
51        int insert;
52
53        // callbacks
54       
55        cmdl_putchar_t putchar;
56        cmdl_getchar_t getchar;
57        cmdl_printf_t printf;
58
59}cmd_line;
60
61typedef struct{
62        int argc;
63        char **argv;
64}cmdl_param_list;
65
66void cmdl_setputchar(cmd_line* cmd, cmdl_putchar_t in);
67void cmdl_setgetchar(cmd_line* cmd, cmdl_getchar_t in);
68void cmdl_setprintf(cmd_line* cmd, cmdl_printf_t in);
69
70//void cmdl_builtin_help(cmd_line* cmd, char* command);
71
72void cmdl_parsechar(cmd_line* cmd, char in);
73
74void cmdl_addreplace(cmd_line* cmd, char in);
75void cmdl_addinsert(cmd_line* cmd, char in);
76void cmdl_enterloop(cmd_line* cmd);
77void cmdl_exec(cmd_line* cmd);
78void cmdl_setexit(cmd_line* cmd, int exit);
79int cmdl_getexit(cmd_line* cmd);
80void cmdl_clearoutput(cmd_line* cmd);
81void cmdl_clearbuffer(cmd_line* cmd);
82int cmdl_printf(cmd_line* cmd, const char *format, ...);
83char* cmdl_getoutput(cmd_line* cmd);
84//void cmdl_addoutput_str(cmd_line* cmd, char output[CMDL_OUTPUT_SIZE]);
85void cmdl_addstr(cmd_line* cmd, char* str);
86int cmdl_movecursor(cmd_line* cmd, int direction);
87char* cmdl_getbuffer(cmd_line* cmd);
88void cmdl_addchar(cmd_line* cmd, char in);
89int cmdl_check(cmd_line* cmd);
90void cmdl_del(cmd_line* cmd);
91cmd_line* cmdl_create();
92void cmdl_free(cmd_line* cmd);
93char *cmdl_getprompt(cmd_line* cmd);
94void cmdl_setpropmt(cmd_line* cmd, char prompt[CMDL_PROMPT_SIZE]);
95cmdl_param_list* cmdl_getparams(const char* command);
96void cmdl_tabcomplete(cmd_line *cmd);
97
98#endif
99
Note: See TracBrowser for help on using the repository browser.