It turns out job control in both hush and lash was broken by the
signal handling in cmdedit.c. Disabling it makes the shells behave
themselves again. hush isn't quite there, but is getting close...
-Erik
diff --git a/cmdedit.c b/cmdedit.c
index ec99393..cc39e56 100644
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -571,6 +571,7 @@
atexit(cmdedit_reset_term); /* be sure to do this only once */
}
+#if 0
if ((handlers_sets & SET_TERM_HANDLERS) == 0) {
signal(SIGKILL, clean_up_and_die);
signal(SIGINT, clean_up_and_die);
@@ -578,6 +579,7 @@
signal(SIGTERM, clean_up_and_die);
handlers_sets |= SET_TERM_HANDLERS;
}
+#endif
}
@@ -1487,6 +1489,7 @@
extern void cmdedit_terminate(void)
{
cmdedit_reset_term();
+#if 0
if ((handlers_sets & SET_TERM_HANDLERS) != 0) {
signal(SIGKILL, SIG_DFL);
signal(SIGINT, SIG_DFL);
@@ -1495,6 +1498,7 @@
signal(SIGWINCH, SIG_DFL);
handlers_sets &= ~SET_TERM_HANDLERS;
}
+#endif
}
#endif /* BB_FEATURE_COMMAND_EDITING */