Fix batch multi-line UART input discarding all but first line (#2217)
* Only load a single non-empty line from the uart at a time. * Don't fall behind in processing of uart buffer.
This commit is contained in:
parent
05b0a0134c
commit
452778eda8
|
@ -468,8 +468,11 @@ int lua_main (int argc, char **argv) {
|
||||||
|
|
||||||
void lua_handle_input (bool force)
|
void lua_handle_input (bool force)
|
||||||
{
|
{
|
||||||
if (gLoad.L && (force || readline (&gLoad)))
|
while (gLoad.L && (force || readline (&gLoad)))
|
||||||
|
{
|
||||||
dojob (&gLoad);
|
dojob (&gLoad);
|
||||||
|
force = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void donejob(lua_Load *load){
|
void donejob(lua_Load *load){
|
||||||
|
@ -599,11 +602,12 @@ static bool readline(lua_Load *load){
|
||||||
{
|
{
|
||||||
/* Get a empty line, then go to get a new line */
|
/* Get a empty line, then go to get a new line */
|
||||||
c_puts(load->prmt);
|
c_puts(load->prmt);
|
||||||
|
continue;
|
||||||
} else {
|
} else {
|
||||||
load->done = 1;
|
load->done = 1;
|
||||||
need_dojob = true;
|
need_dojob = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* other control character or not an acsii character */
|
/* other control character or not an acsii character */
|
||||||
|
|
Loading…
Reference in New Issue