aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/busybox/1.7.4/1.7.4-ash-timeout.diff')
-rw-r--r--patches/busybox/1.7.4/1.7.4-ash-timeout.diff123
1 files changed, 0 insertions, 123 deletions
diff --git a/patches/busybox/1.7.4/1.7.4-ash-timeout.diff b/patches/busybox/1.7.4/1.7.4-ash-timeout.diff
deleted file mode 100644
index 25d5338..0000000
--- a/patches/busybox/1.7.4/1.7.4-ash-timeout.diff
+++ /dev/null
@@ -1,123 +0,0 @@
-'read -t' support, forward-ported from Gentoo Busybox 1.1.3.
-Used during the LiveCD boot when prompting for a keymap.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-diff -Nuar --exclude '*.orig' busybox-1.7.4/shell/ash.c busybox-1.7.4+gentoo/shell/ash.c
---- busybox-1.7.4/shell/ash.c 2007-11-03 16:06:35.000000000 -0700
-+++ busybox-1.7.4+gentoo/shell/ash.c 2008-03-11 10:21:28.000000000 -0700
-@@ -11485,11 +11485,13 @@
- int startword;
- int status;
- int i;
-+#if ENABLE_ASH_READ_NCHARS || ENABLE_ASH_READ_TIMEOUT
-+ struct termios tty, old_tty;
-+#endif
- #if ENABLE_ASH_READ_NCHARS
- int nch_flag = 0;
- int nchars = 0;
- int silent = 0;
-- struct termios tty, old_tty;
- #endif
- #if ENABLE_ASH_READ_TIMEOUT
- fd_set set;
-@@ -11566,44 +11568,74 @@
- ifs = bltinlookup("IFS");
- if (ifs == NULL)
- ifs = defifs;
--#if ENABLE_ASH_READ_NCHARS
-+#if ENABLE_ASH_READ_NCHARS || ENABLE_ASH_READ_TIMEOUT
-+#if ENABLE_ASH_READ_NCHARS && ENABLE_ASH_READ_TIMEOUT
-+ if (nch_flag || silent || ts.tv_sec || ts.tv_usec) {
-+#elif ENABLE_ASH_READ_TIMEOUT
-+ if (ts.tv_sec || ts.tv_usec) {
-+#elif ENABLE_ASH_READ_NCHARS
- if (nch_flag || silent) {
-+#endif
- tcgetattr(0, &tty);
- old_tty = tty;
-- if (nch_flag) {
-+#if ENABLE_ASH_READ_NCHARS && ENABLE_ASH_READ_TIMEOUT
-+ if (nch_flag || ts.tv_sec || ts.tv_usec)
-+#elif ENABLE_ASH_READ_TIMEOUT
-+ if (ts.tv_sec || ts.tv_usec)
-+#elif ENABLE_ASH_READ_NCHARS
-+ if (nch_flag)
-+#endif
- tty.c_lflag &= ~ICANON;
-- tty.c_cc[VMIN] = nchars;
-- }
-- if (silent) {
-- tty.c_lflag &= ~(ECHO|ECHOK|ECHONL);
-
-- }
-+
-+#if ENABLE_ASH_READ_NCHARS
-+ if (silent)
-+ tty.c_lflag &= ~(ECHO|ECHOK|ECHONL);
-+#endif
- tcsetattr(0, TCSANOW, &tty);
- }
- #endif
-+ i = 1;
-+ STARTSTACKSTR(p);
- #if ENABLE_ASH_READ_TIMEOUT
- if (ts.tv_sec || ts.tv_usec) {
- FD_ZERO(&set);
- FD_SET(0, &set);
-
- i = select(FD_SETSIZE, &set, NULL, NULL, &ts);
-- if (!i) {
-+ if (i == 1)
-+ {
-+ read(0, &c, 1);
-+ if(c == '\n' || c == 4) /* Handle newlines and EOF */
-+ i = 0; /* Don't read further... */
-+ else
-+ STPUTC(c, p); /* Ok, keep reading... */
-+ }
- #if ENABLE_ASH_READ_NCHARS
-- if (nch_flag)
-- tcsetattr(0, TCSANOW, &old_tty);
-+ if (!silent && !nch_flag)
- #endif
-- return 1;
-+ tcsetattr(0, TCSANOW, &old_tty);
-+
-+#if ENABLE_ASH_READ_NCHARS
-+ if(i == 0)
-+ {
-+ nchars = 0;
-+ nch_flag = 1;
-+ } else
-+ {
-+ if (nch_flag)
-+ nchars--;
- }
-+#endif
- }
- #endif
- status = 0;
- startword = 1;
- backslash = 0;
-- STARTSTACKSTR(p);
- #if ENABLE_ASH_READ_NCHARS
- while (!nch_flag || nchars--)
- #else
-- for (;;)
-+ for (;i > 0;)
- #endif
- {
- if (read(0, &c, 1) != 1) {
-@@ -11640,8 +11672,10 @@
- }
- }
- #if ENABLE_ASH_READ_NCHARS
-- if (nch_flag || silent)
-+ if (silent || nch_flag)
- tcsetattr(0, TCSANOW, &old_tty);
-+ if (!silent && nch_flag)
-+ printf("\n");
- #endif
-
- STACKSTRNUL(p);