/* * Copyright 2014 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include #include #include #include #include #include "simulation.h" #ifdef HAS_GNU_READLINE #include #include char *get_input(const char *prompt) { static char *line; if (line) { free(line); line = 0; } line = readline(prompt); if (line && *line) add_history(line); return line; } #else /* no readline */ char *get_input(const char *prompt) { static char mybuf[80]; char *got; printf("%s", prompt); got = fgets(mybuf, sizeof(mybuf), stdin); return got; } #endif /* HAS_GNU_READLINE */ void *entry_input(void *ptr) { char *got, buf[80]; char *str, *word, *saveptr; int argc; char *argv[40]; int ret; do { got = get_input("lightbar% "); if (got) { strcpy(buf, got); argc = 0; argv[argc++] = "lightbar"; word = str = buf; while (word && argc < ARRAY_SIZE(argv)) { word = strtok_r(str, " \t\r\n", &saveptr); if (word) argv[argc++] = word; str = 0; } argv[argc] = 0; ret = fake_consolecmd_lightbar(argc, argv); if (ret) printf("ERROR %d\n", ret); } } while (got); exit(0); return 0; }