#ifndef _MDB_CMDBUF_H
#define _MDB_CMDBUF_H
#include <sys/types.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct mdb_cmdbuf {
char **cmd_history;
char *cmd_linebuf;
char *cmd_buf;
size_t cmd_linelen;
size_t cmd_histlen;
size_t cmd_halloc;
size_t cmd_buflen;
size_t cmd_bufidx;
ssize_t cmd_hold;
ssize_t cmd_hnew;
ssize_t cmd_hcur;
ssize_t cmd_hlen;
} mdb_cmdbuf_t;
#ifdef _MDB
extern void mdb_cmdbuf_create(mdb_cmdbuf_t *);
extern void mdb_cmdbuf_destroy(mdb_cmdbuf_t *);
extern const char *mdb_cmdbuf_accept(mdb_cmdbuf_t *);
extern int mdb_cmdbuf_caninsert(mdb_cmdbuf_t *, size_t);
extern int mdb_cmdbuf_atstart(mdb_cmdbuf_t *);
extern int mdb_cmdbuf_atend(mdb_cmdbuf_t *);
extern int mdb_cmdbuf_insert(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_backspace(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_delchar(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_fwdchar(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_backchar(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_transpose(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_home(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_end(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_fwdword(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_backword(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_killfwdword(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_killbackword(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_kill(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_reset(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_prevhist(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_nexthist(mdb_cmdbuf_t *, int);
extern int mdb_cmdbuf_findhist(mdb_cmdbuf_t *, int);
#endif
#ifdef __cplusplus
}
#endif
#endif