summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.20.0
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.20.0')
-rw-r--r--package/busybox/busybox-1.20.0/busybox-1.20.0-getty.patch17
-rw-r--r--package/busybox/busybox-1.20.0/busybox-1.20.0-lineedit.patch22
-rw-r--r--package/busybox/busybox-1.20.0/busybox-1.20.0-sed.patch29
3 files changed, 68 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.20.0/busybox-1.20.0-getty.patch b/package/busybox/busybox-1.20.0/busybox-1.20.0-getty.patch
new file mode 100644
index 000000000..ed52159ff
--- /dev/null
+++ b/package/busybox/busybox-1.20.0/busybox-1.20.0-getty.patch
@@ -0,0 +1,17 @@
+--- busybox-1.20.0/loginutils/getty.c
++++ busybox-1.20.0-getty/loginutils/getty.c
+@@ -561,8 +561,14 @@ int getty_main(int argc UNUSED_PARAM, ch
+ */
+ fd = open("/dev/tty", O_RDWR | O_NONBLOCK);
+ if (fd >= 0) {
++ /* TIOCNOTTY sends SIGHUP to the foreground
++ * process group - which may include us!
++ * Make sure to not die on it:
++ */
++ sighandler_t old = signal(SIGHUP, SIG_IGN);
+ ioctl(fd, TIOCNOTTY);
+ close(fd);
++ signal(SIGHUP, old);
+ }
+ }
+
diff --git a/package/busybox/busybox-1.20.0/busybox-1.20.0-lineedit.patch b/package/busybox/busybox-1.20.0/busybox-1.20.0-lineedit.patch
new file mode 100644
index 000000000..ee236ffc8
--- /dev/null
+++ b/package/busybox/busybox-1.20.0/busybox-1.20.0-lineedit.patch
@@ -0,0 +1,22 @@
+--- busybox-1.20.0/libbb/lineedit.c
++++ busybox-1.20.0-lineedit/libbb/lineedit.c
+@@ -1352,8 +1352,7 @@ static void load_history(line_input_t *s
+ /* fill temp_h[], retaining only last MAX_HISTORY lines */
+ memset(temp_h, 0, sizeof(temp_h));
+ idx = 0;
+- if (!ENABLE_FEATURE_EDITING_SAVE_ON_EXIT)
+- st_parm->cnt_history_in_file = 0;
++ st_parm->cnt_history_in_file = 0;
+ while ((line = xmalloc_fgetline(fp)) != NULL) {
+ if (line[0] == '\0') {
+ free(line);
+@@ -1361,8 +1360,7 @@ static void load_history(line_input_t *s
+ }
+ free(temp_h[idx]);
+ temp_h[idx] = line;
+- if (!ENABLE_FEATURE_EDITING_SAVE_ON_EXIT)
+- st_parm->cnt_history_in_file++;
++ st_parm->cnt_history_in_file++;
+ idx++;
+ if (idx == st_parm->max_history)
+ idx = 0;
diff --git a/package/busybox/busybox-1.20.0/busybox-1.20.0-sed.patch b/package/busybox/busybox-1.20.0/busybox-1.20.0-sed.patch
new file mode 100644
index 000000000..70dc63f46
--- /dev/null
+++ b/package/busybox/busybox-1.20.0/busybox-1.20.0-sed.patch
@@ -0,0 +1,29 @@
+--- busybox-1.20.0/editors/sed.c
++++ busybox-1.20.0-sed/editors/sed.c
+@@ -743,7 +743,7 @@ static int do_subst_command(sed_cmd_t *s
+ */
+ if (!G.regmatch[0].rm_so && !G.regmatch[0].rm_eo && match_count) {
+ pipe_putc(*line++);
+- continue;
++ goto next;
+ }
+
+ match_count++;
+@@ -755,7 +755,7 @@ static int do_subst_command(sed_cmd_t *s
+ ) {
+ for (i = 0; i < G.regmatch[0].rm_eo; i++)
+ pipe_putc(*line++);
+- continue;
++ goto next;
+ }
+
+ /* print everything before the match */
+@@ -773,7 +773,7 @@ static int do_subst_command(sed_cmd_t *s
+ /* if we're not doing this globally, get out now */
+ if (sed_cmd->which_match != 0)
+ break;
+-
++ next:
+ if (*line == '\0')
+ break;
+