summaryrefslogtreecommitdiffabout
path: root/src/gdbmtool.h
Side-by-side diff
Diffstat (limited to 'src/gdbmtool.h') (more/less context) (ignore whitespace changes)
-rw-r--r--src/gdbmtool.h31
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);

Return to:

Send suggestions and report system problems to the System administrator.