diff options
Diffstat (limited to 'src/gdbmtool.h')
-rw-r--r-- | src/gdbmtool.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/gdbmtool.h b/src/gdbmtool.h index 84f1409..d0e9aa0 100644 --- a/src/gdbmtool.h +++ b/src/gdbmtool.h | |||
@@ -21,12 +21,14 @@ | |||
21 | #include "gdbmapp.h" | 21 | #include "gdbmapp.h" |
22 | #include <stdlib.h> | 22 | #include <stdlib.h> |
23 | #include <stdio.h> | 23 | #include <stdio.h> |
24 | #include <stdarg.h> | 24 | #include <stdarg.h> |
25 | #include <ctype.h> | 25 | #include <ctype.h> |
26 | 26 | ||
27 | #define ARG_UNUSED __attribute__ ((__unused__)) | ||
28 | |||
27 | /* Position in input file */ | 29 | /* Position in input file */ |
28 | struct point | 30 | struct point |
29 | { | 31 | { |
30 | char *file; /* file name */ | 32 | char *file; /* file name */ |
31 | unsigned line; /* line number */ | 33 | unsigned line; /* line number */ |
32 | unsigned col; /* column number */ | 34 | unsigned col; /* column number */ |
@@ -91,32 +93,46 @@ typedef struct locus gdbm_yyltype_t; | |||
91 | 93 | ||
92 | void vlerror (struct locus *loc, const char *fmt, va_list ap); | 94 | void vlerror (struct locus *loc, const char *fmt, va_list ap); |
93 | void lerror (struct locus *loc, const char *fmt, ...); | 95 | void lerror (struct locus *loc, const char *fmt, ...); |
94 | 96 | ||
95 | void terror (const char *fmt, ...); | 97 | void terror (const char *fmt, ...); |
96 | 98 | ||
97 | void print_prompt (void); | 99 | char *make_prompt (void); |
98 | 100 | ||
99 | int setsource (const char *filename, int intr); | 101 | int setsource (const char *filename, int intr); |
100 | 102 | ||
101 | extern char *file_name; | 103 | extern char *file_name; |
102 | extern int interactive; | 104 | extern int interactive; |
103 | extern int open_mode; | 105 | extern int open_mode; |
104 | 106 | ||
105 | #define GDBMTOOLRC ".gdbmtoolrc" | 107 | #define GDBMTOOLRC ".gdbmtoolrc" |
106 | #define GDBMTOOL_DEFFILE "junk.gdbm" | 108 | #define GDBMTOOL_DEFFILE "junk.gdbm" |
109 | |||
110 | ssize_t input_read (FILE *fp, char *buf, size_t size); | ||
111 | void input_init (void); | ||
112 | void input_done (void); | ||
113 | |||
114 | struct handler_param; | ||
115 | void input_history_handler (struct handler_param *param); | ||
116 | int input_history_begin (struct handler_param *param, size_t *exp_count); | ||
117 | |||
118 | void print_prompt_at_bol (void); | ||
119 | char *command_generator (const char *text, int state); | ||
107 | 120 | ||
108 | 121 | ||
109 | struct slist | 122 | struct slist |
110 | { | 123 | { |
111 | struct slist *next; | 124 | struct slist *next; |
112 | char *str; | 125 | char *str; |
113 | }; | 126 | }; |
114 | 127 | ||
115 | struct slist *slist_new (char *s); | 128 | struct slist *slist_new (char const *s); |
129 | struct slist *slist_new_s (char *s); | ||
130 | struct slist *slist_new_l (char const *s, size_t l); | ||
116 | void slist_free (struct slist *); | 131 | void slist_free (struct slist *); |
132 | void slist_insert (struct slist **where, struct slist *what); | ||
117 | 133 | ||
118 | #define KV_STRING 0 | 134 | #define KV_STRING 0 |
119 | #define KV_LIST 1 | 135 | #define KV_LIST 1 |
120 | 136 | ||
121 | struct kvpair | 137 | struct kvpair |
122 | { | 138 | { |
@@ -158,12 +174,20 @@ struct gdbmarg | |||
158 | /* List of arguments */ | 174 | /* List of arguments */ |
159 | struct gdbmarglist | 175 | struct gdbmarglist |
160 | { | 176 | { |
161 | struct gdbmarg *head, *tail; | 177 | struct gdbmarg *head, *tail; |
162 | }; | 178 | }; |
163 | 179 | ||
180 | struct handler_param | ||
181 | { | ||
182 | int argc; | ||
183 | struct gdbmarg **argv; | ||
184 | FILE *fp; | ||
185 | void *data; | ||
186 | }; | ||
187 | |||
164 | void gdbmarglist_init (struct gdbmarglist *, struct gdbmarg *); | 188 | void gdbmarglist_init (struct gdbmarglist *, struct gdbmarg *); |
165 | void gdbmarglist_add (struct gdbmarglist *, struct gdbmarg *); | 189 | void gdbmarglist_add (struct gdbmarglist *, struct gdbmarg *); |
166 | void gdbmarglist_free (struct gdbmarglist *lst); | 190 | void gdbmarglist_free (struct gdbmarglist *lst); |
167 | 191 | ||
168 | struct gdbmarg *gdbmarg_string (char *, struct locus *); | 192 | struct gdbmarg *gdbmarg_string (char *, struct locus *); |
169 | struct gdbmarg *gdbmarg_datum (datum *, struct locus *); | 193 | struct gdbmarg *gdbmarg_datum (datum *, struct locus *); |
@@ -259,6 +283,9 @@ int datum_scan (datum *dat, struct dsegm *ds, struct kvpair *kv); | |||
259 | void dsprint (FILE *fp, int what, struct dsegm *ds); | 283 | void dsprint (FILE *fp, int what, struct dsegm *ds); |
260 | 284 | ||
261 | char *mkfilename (const char *dir, const char *file, const char *suf); | 285 | char *mkfilename (const char *dir, const char *file, const char *suf); |
262 | char *tildexpand (char *s); | 286 | char *tildexpand (char *s); |
263 | int vgetyn (const char *prompt, va_list ap); | 287 | int vgetyn (const char *prompt, va_list ap); |
264 | int getyn (const char *prompt, ...); | 288 | int getyn (const char *prompt, ...); |
289 | |||
290 | int getnum (int *pnum, char *arg, char **endp); | ||
291 | int get_screen_lines (void); | ||