aboutsummaryrefslogtreecommitdiffstats
path: root/meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch')
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch111
1 files changed, 0 insertions, 111 deletions
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch
deleted file mode 100644
index 3be1be04fb..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0/dash_readopt.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-Patch was imported from the OpenEmbedded git server
-(git://git.openembedded.org/openembedded)
-as of commit id ad67a97e8fbfb03a68088a6ca6ad87b086c88094
-Signed-off-by: Thomas Kunze <thommycheck@gmx.de>
-Minor adjustments tracking upstream changes
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
-
-diff -uNr klibc-1.5.22.orig//usr/dash/miscbltin.c klibc-1.5.22/usr/dash/miscbltin.c
---- klibc-1.5.22.orig//usr/dash/miscbltin.c 2011-06-11 02:08:49.000000000 +0200
-+++ klibc-1.5.22/usr/dash/miscbltin.c 2011-06-11 13:55:32.000000000 +0200
-@@ -46,6 +46,7 @@
- #include <ctype.h>
- #include <inttypes.h>
- #include <time.h> /* strtotimeval() */
-+#include <termios.h>
-
- #include "shell.h"
- #include "options.h"
-@@ -149,6 +150,11 @@
- int timeout;
- int i;
- fd_set set;
-+ int n_flag = 0;
-+ unsigned int nchars = 0;
-+ int silent = 0;
-+ struct termios tty, old_tty;
-+
- struct timeval ts, t0, t1, to;
-
- ts.tv_sec = ts.tv_usec = 0;
-@@ -156,11 +162,18 @@
- rflag = 0;
- timeout = 0;
- prompt = NULL;
-- while ((i = nextopt("p:rt:")) != '\0') {
-+ while ((i = nextopt("p:rt:n:s")) != '\0') {
- switch(i) {
- case 'p':
- prompt = optionarg;
- break;
-+ case 'n':
-+ nchars = strtoul(optionarg, NULL, 10);
-+ n_flag = nchars; /* just a flag "nchars is nonzero" */
-+ break;
-+ case 's':
-+ silent = 1;
-+ break;
- case 't':
- p = strtotimeval(optionarg, &ts);
- if (*p || (!ts.tv_sec && !ts.tv_usec))
-@@ -182,6 +197,24 @@
- }
- if (*(ap = argptr) == NULL)
- sh_error("arg count");
-+ if (n_flag || silent) {
-+ if (tcgetattr(0, &tty) != 0) {
-+ /* Not a tty */
-+ n_flag = 0;
-+ silent = 0;
-+ } else {
-+ old_tty = tty;
-+ if (n_flag) {
-+ tty.c_lflag &= ~ICANON;
-+ tty.c_cc[VMIN] = nchars < 256 ? nchars : 255;
-+ }
-+ if (silent) {
-+ tty.c_lflag &= ~(ECHO | ECHOK | ECHONL);
-+ }
-+ tcsetattr(0, TCSANOW, &tty);
-+ }
-+ }
-+
-
- status = 0;
- if (timeout) {
-@@ -200,12 +231,14 @@
- goto start;
-
-- for (;;) {
-+ do {
- if (timeout) {
- gettimeofday(&t1, NULL);
- if (t1.tv_sec > ts.tv_sec ||
- (t1.tv_sec == ts.tv_sec &&
- t1.tv_usec >= ts.tv_usec)) {
- status = 1;
-+ if (n_flag)
-+ tcsetattr(0, TCSANOW, &old_tty);
- break; /* Timeout! */
- }
-
-@@ -222,6 +255,8 @@
- FD_SET(0, &set);
- if (select(1, &set, NULL, NULL, &to) != 1) {
- status = 1;
-+ if (n_flag)
-+ tcsetattr(0, TCSANOW, &old_tty);
- break; /* Timeout! */
- }
- }
-@@ -263,6 +298,9 @@
- newloc = startloc - 1;
- }
-- }
-+ } while (!n_flag || --nchars);
-+ if (n_flag || silent)
-+ tcsetattr(0, TCSANOW, &old_tty);
-+
- out:
- recordregion(startloc, p - (char *)stackblock(), 0);
- STACKSTRNUL(p);