#include <stdarg.h>
#include <inttypes.h>
#include <fcntl.h>
-
-#include <sys/socket.h>
+#include <termios.h>
#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/un.h>
#include "cmdline_parse.h"
#include "cmdline_rdline.h"
#include "cmdline.h"
-
-#define PROMPT_SUFFIX "> "
-
-
-/**********************/
-
-void
+static void
cmdline_valid_buffer(struct rdline *rdl, const char *buf,
__attribute__((unused)) unsigned int size)
{
cmdline_printf(cl, "Bad arguments\n");
}
-int
+static int
cmdline_complete_buffer(struct rdline *rdl, const char *buf,
char *dstbuf, unsigned int dstsize,
int *state)
int ret = 0;
int i, same;
- /* XXX use defines instead of hardcoded values */
for (i=0; i<size; i++) {
ret = rdline_char_in(&cl->rdl, buf[i]);
- if (ret == 1) {
+ if (ret == RDLINE_RES_VALIDATED) {
buffer = rdline_get_buffer(&cl->rdl);
history = rdline_get_history_item(&cl->rdl, 0);
if (history) {
rdline_add_history(&cl->rdl, buffer);
rdline_newline(&cl->rdl, cl->prompt);
}
- else if (ret == -2)
+ else if (ret == RDLINE_RES_EOF)
return -1;
}
return i;
}
+
+void
+cmdline_interact(struct cmdline *cl)
+{
+ char c;
+
+ c = -1;
+ while (1) {
+ read(cl->s_in, &c, 1);
+ if (cmdline_in(cl, &c, 1) < 0) {
+ break;
+ }
+ }
+ cmdline_free(cl);
+}