Merge pull request #530 from ourairquality/sysparam-editor-flushing

sysparam editor: more stdout flushing.
This commit is contained in:
Ruslan V. Uss 2017-12-27 12:37:11 +05:00 committed by GitHub
commit 2d22be9bac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -50,16 +50,25 @@ size_t tty_readline(char *buffer, size_t buf_size, bool echo) {
break;
} else if (c == '\b' || c == 0x7f) {
if (i) {
if (echo) printf("\b \b");
if (echo) {
printf("\b \b");
fflush(stdout);
}
i--;
}
} else if (c < 0x20) {
/* Ignore other control characters */
} else if (i >= buf_size - 1) {
if (echo) putchar('\a');
if (echo) {
putchar('\a');
fflush(stdout);
}
} else {
buffer[i++] = c;
if (echo) putchar(c);
if (echo) {
putchar(c);
fflush(stdout);
}
}
}
@ -177,6 +186,7 @@ void sysparam_editor_task(void *pvParameters) {
}
while (true) {
printf("==> ");
fflush(stdout);
len = tty_readline(cmd_buffer, CMD_BUF_SIZE, echo);
status = 0;
if (!len) continue;