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 @@ #include "gdbmapp.h" #include <stdlib.h> #include <stdio.h> #include <stdarg.h> #include <ctype.h> +#define ARG_UNUSED __attribute__ ((__unused__)) + /* Position in input file */ struct point { char *file; /* file name */ unsigned line; /* line number */ unsigned col; /* column number */ @@ -91,32 +93,46 @@ typedef struct locus gdbm_yyltype_t; void vlerror (struct locus *loc, const char *fmt, va_list ap); void lerror (struct locus *loc, const char *fmt, ...); void terror (const char *fmt, ...); -void print_prompt (void); +char *make_prompt (void); int setsource (const char *filename, int intr); extern char *file_name; extern int interactive; extern int open_mode; #define GDBMTOOLRC ".gdbmtoolrc" #define GDBMTOOL_DEFFILE "junk.gdbm" +ssize_t input_read (FILE *fp, char *buf, size_t size); +void input_init (void); +void input_done (void); + +struct handler_param; +void input_history_handler (struct handler_param *param); +int input_history_begin (struct handler_param *param, size_t *exp_count); + +void print_prompt_at_bol (void); +char *command_generator (const char *text, int state); + struct slist { struct slist *next; char *str; }; -struct slist *slist_new (char *s); +struct slist *slist_new (char const *s); +struct slist *slist_new_s (char *s); +struct slist *slist_new_l (char const *s, size_t l); void slist_free (struct slist *); +void slist_insert (struct slist **where, struct slist *what); #define KV_STRING 0 #define KV_LIST 1 struct kvpair { @@ -158,12 +174,20 @@ struct gdbmarg /* List of arguments */ struct gdbmarglist { struct gdbmarg *head, *tail; }; +struct handler_param +{ + int argc; + struct gdbmarg **argv; + FILE *fp; + void *data; +}; + void gdbmarglist_init (struct gdbmarglist *, struct gdbmarg *); void gdbmarglist_add (struct gdbmarglist *, struct gdbmarg *); void gdbmarglist_free (struct gdbmarglist *lst); struct gdbmarg *gdbmarg_string (char *, struct locus *); struct gdbmarg *gdbmarg_datum (datum *, struct locus *); @@ -259,6 +283,9 @@ int datum_scan (datum *dat, struct dsegm *ds, struct kvpair *kv); void dsprint (FILE *fp, int what, struct dsegm *ds); char *mkfilename (const char *dir, const char *file, const char *suf); char *tildexpand (char *s); int vgetyn (const char *prompt, va_list ap); int getyn (const char *prompt, ...); + +int getnum (int *pnum, char *arg, char **endp); +int get_screen_lines (void); |