1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation.
3 * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org>
11 #include "cmdline_vt100.h"
13 const char *cmdline_vt100_commands[] = {
44 vt100_init(struct cmdline_vt100 *vt)
48 vt->state = CMDLINE_VT100_INIT;
53 match_command(char *buf, unsigned int size)
59 for (i=0 ; i<sizeof(cmdline_vt100_commands)/sizeof(const char *) ; i++) {
60 cmd = *(cmdline_vt100_commands + i);
62 cmdlen = strnlen(cmd, CMDLINE_VT100_BUF_SIZE);
64 !strncmp(buf, cmd, cmdlen)) {
73 vt100_parser(struct cmdline_vt100 *vt, char ch)
76 uint8_t c = (uint8_t) ch;
81 if (vt->bufpos >= CMDLINE_VT100_BUF_SIZE) {
82 vt->state = CMDLINE_VT100_INIT;
86 vt->buf[vt->bufpos++] = c;
90 case CMDLINE_VT100_INIT:
92 vt->state = CMDLINE_VT100_ESCAPE;
100 case CMDLINE_VT100_ESCAPE:
102 vt->state = CMDLINE_VT100_ESCAPE_CSI;
104 else if (c >= 060 && c <= 0177) { /* XXX 0177 ? */
106 vt->state = CMDLINE_VT100_INIT;
111 case CMDLINE_VT100_ESCAPE_CSI:
112 if (c >= 0100 && c <= 0176) {
114 vt->state = CMDLINE_VT100_INIT;
127 return match_command(vt->buf, size);