aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Hershberger <joe.hershberger@ni.com>2018-07-02 20:06:49 -0500
committerJoe Hershberger <joe.hershberger@ni.com>2018-07-26 14:08:17 -0500
commit82a115fdec875d7e8dc601fe0e1b12859814c91c (patch)
tree4dffa1c4afe2e12a4a5c70ffebf4d1c4b13583ec
parentb2f58d8ee090ccf15b1366ac46a075c02a01f4fc (diff)
downloadu-boot-82a115fdec875d7e8dc601fe0e1b12859814c91c.zip
u-boot-82a115fdec875d7e8dc601fe0e1b12859814c91c.tar.gz
u-boot-82a115fdec875d7e8dc601fe0e1b12859814c91c.tar.bz2
sandbox: Don't disable ctrlc() on sandbox if in raw mode
In raw mode, handle ctrl-c as normal. This allows normal ctrl-c behavior such as aborting a command that is timing out without completely terminating the sandbox executable. In [1], Simon disabled this. His reason for it was that it interferes with piping test scripts. Piping should be done in cooked mode, so this change should still not interfere. [1] commit 8969ea3e9f2db04a6b3675 ("sandbox: Disable Ctrl-C") Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/console.c2
-rw-r--r--drivers/serial/sandbox.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/common/console.c b/common/console.c
index 36c0568..7aa58d0 100644
--- a/common/console.c
+++ b/common/console.c
@@ -604,7 +604,6 @@ static int ctrlc_disabled = 0; /* see disable_ctrl() */
static int ctrlc_was_pressed = 0;
int ctrlc(void)
{
-#ifndef CONFIG_SANDBOX
if (!ctrlc_disabled && gd->have_console) {
if (tstc()) {
switch (getc()) {
@@ -616,7 +615,6 @@ int ctrlc(void)
}
}
}
-#endif
return 0;
}
diff --git a/drivers/serial/sandbox.c b/drivers/serial/sandbox.c
index d2e0072..a60dabe 100644
--- a/drivers/serial/sandbox.c
+++ b/drivers/serial/sandbox.c
@@ -10,6 +10,7 @@
*/
#include <common.h>
+#include <console.h>
#include <dm.h>
#include <fdtdec.h>
#include <lcd.h>
@@ -69,6 +70,9 @@ static int sandbox_serial_probe(struct udevice *dev)
os_tty_raw(0, state->term_raw == STATE_TERM_RAW_WITH_SIGS);
priv->start_of_line = 0;
+ if (state->term_raw != STATE_TERM_RAW)
+ disable_ctrlc(1);
+
return 0;
}