aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd.c')
-rw-r--r--src/cmd.c37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/cmd.c b/src/cmd.c
index 7105c5b..21a7909 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$";
/*
* $Log$
+ * Revision 1.4 2008/02/28 11:27:48 james
+ * *** empty log message ***
+ *
* Revision 1.3 2008/02/22 17:07:00 james
* *** empty log message ***
*
@@ -29,21 +32,28 @@ cmd_parse (Cmd * c, Context * ctx, char *buf)
{
if (!strcmp (buf, "quit"))
c->disconnect++;
-
- if (!strcmp (buf, "flow"))
+ else if (!strcmp (buf, "flow"))
ctx->k->set_flow (ctx->k, ctx, 1);
- if (!strcmp (buf, "noflow"))
+ else if (!strcmp (buf, "noflow"))
ctx->k->set_flow (ctx->k, ctx, 0);
- if (!strcmp (buf, "ansi"))
+ else if (!strcmp (buf, "ansi"))
ctx->k->set_ansi (ctx->k, ctx, 0);
- if (!strcmp (buf, "noansi"))
+ else if (!strcmp (buf, "noansi"))
ctx->k->set_ansi (ctx->k, ctx, 1);
- if (!strncmp (buf, "baud", 4))
+ else if (!strncmp (buf, "baud", 4))
ctx->k->set_baud (ctx->k, ctx, atoi (buf + 4));
- if (!strncmp (buf, "break", 4))
+ else if (!strcmp (buf, "break"))
ctx->k->send_break (ctx->k, ctx);
- if (!strncmp (buf, "hangup", 4))
+ else if (!strcmp (buf, "hangup"))
ctx->k->hangup (ctx->k, ctx);
+ else if (!strcmp (buf, "reset"))
+ ctx->k->reset (ctx->k, ctx);
+ else if (!strncmp (buf, "width", 5))
+ ctx->k->set_size (ctx->k, ctx,atoi(buf+5),0);
+ else if (!strncmp (buf, "height", 6))
+ ctx->k->set_size (ctx->k, ctx,0,atoi(buf+6));
+ else
+ c->error++;
}
@@ -53,18 +63,25 @@ cmd_show_status (Cmd * c, Context * ctx)
if (!ctx->v)
return;
- if (!c->active)
+ if (c->error)
+ vt102_status_line (ctx->v, "Command not recognized - press any key");
+ else if (!c->active)
vt102_status_line (ctx->v, c->csl);
else
vt102_status_line (ctx->v, c->buf);
-
}
int
cmd_key (Cmd * c, Context * ctx, int key)
{
+ if (c->error) {
+ c->error=0;
+ cmd_show_status (c, ctx);
+ return 0;
+ }
+
if (key == 13)
{
cmd_parse (c, ctx, c->buf + 1);