/*
* $Log$
+ * Revision 1.6 2008/02/28 16:57:51 james
+ * *** empty log message ***
+ *
+ * Revision 1.5 2008/02/28 15:37:06 james
+ * *** empty log message ***
+ *
* Revision 1.4 2008/02/28 11:27:48 james
* *** empty log message ***
*
#include "project.h"
-void
+int
cmd_parse (Cmd * c, Context * ctx, char *buf)
{
if (!strcmp (buf, "quit"))
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);
+ 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++;
+ ctx->k->set_size (ctx->k, ctx, 0, atoi (buf + 6));
+ else
+ return -1;
+
+ return 0;
+
}
if (!ctx->v)
return;
- if (c->error)
+ 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);
cmd_key (Cmd * c, Context * ctx, int key)
{
- if (c->error) {
- c->error=0;
- cmd_show_status (c, ctx);
- return 0;
- }
+ if (c->error)
+ {
+ c->error = 0;
+ c->active = 0;
+ cmd_show_status (c, ctx);
+ return 0;
+ }
if (key == 13)
{
- cmd_parse (c, ctx, c->buf + 1);
- c->active = 0;
+ if (cmd_parse (c, ctx, c->buf + 1))
+ {
+ c->error++;
+ }
+ else
+ {
+ c->active = 0;
+ }
cmd_show_status (c, ctx);
return 0;
}