autoscr: Fix one-character lines and non-newline terminated scripts
When not using hush, the autoscr command now executes lines that are
only one character long. It also runs the last line of scripts even if
it does not end in a newline.
Signed-off-by: Petri Lehtinen <petri.lehtinen@inoi.fi>
diff --git a/common/cmd_autoscript.c b/common/cmd_autoscript.c
index c2e7e66..0439da2 100644
--- a/common/cmd_autoscript.c
+++ b/common/cmd_autoscript.c
@@ -180,7 +180,7 @@
if (*next == '\n') {
*next = '\0';
/* run only non-empty commands */
- if ((next - line) > 1) {
+ if (*line) {
debug ("** exec: \"%s\"\n",
line);
if (run_command (line, 0) < 0) {
@@ -192,6 +192,8 @@
}
++next;
}
+ if (rcode == 0 && *line)
+ rcode = (run_command(line, 0) >= 0);
}
#endif
free (cmd);