summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-1.00/add-getkey-applet.patch
diff options
context:
space:
mode:
authornslu2-linux.adm@bkbits.net <nslu2-linux.adm@bkbits.net>2004-12-28 00:40:06 +0000
committernslu2-linux.adm@bkbits.net <nslu2-linux.adm@bkbits.net>2004-12-28 00:40:06 +0000
commitb923f73c764154d3ac04cc57479fda6a30a33776 (patch)
tree800901875088bc9f91840aff66b10b850ba120c7 /packages/busybox/busybox-1.00/add-getkey-applet.patch
parentda1aa74cec5175da25babd5e64d86c5bdb145313 (diff)
Merge bk://oe-devel.bkbits.net/openembedded
into bkbits.net:/repos/n/nslu2-linux/openembedded 2004/12/28 00:56:43+01:00 handhelds.org!zecke BusyBox getkey: -More Cish and goto an error handler instead of directly returning a value 2004/12/28 00:40:54+01:00 handhelds.org!zecke Merge bk://oe-devel@oe-devel.bkbits.net/openembedded into handhelds.org:/home/ich/programming/oe/openembedded 2004/12/28 00:40:37+01:00 handhelds.org!zecke BusyBox getkey applet patch: -Make it more robust and check if STDIN_FILENO is a terminal -Place braces on a new line (hopefully the right way of making it consistent) BKrev: 41d0ab66AxH6f5YekH41lUKHGimJBw
Diffstat (limited to 'packages/busybox/busybox-1.00/add-getkey-applet.patch')
-rw-r--r--packages/busybox/busybox-1.00/add-getkey-applet.patch43
1 files changed, 31 insertions, 12 deletions
diff --git a/packages/busybox/busybox-1.00/add-getkey-applet.patch b/packages/busybox/busybox-1.00/add-getkey-applet.patch
index 54b58936d5..6ce0df21bd 100644
--- a/packages/busybox/busybox-1.00/add-getkey-applet.patch
+++ b/packages/busybox/busybox-1.00/add-getkey-applet.patch
@@ -5,7 +5,7 @@
--- /dev/null
+++ busybox-1.00/console-tools/getkey.c
-@@ -0,0 +1,75 @@
+@@ -0,0 +1,94 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * getkey.c - Michael 'Mickey' Lauer
@@ -30,8 +30,18 @@
+{
+ int status = EXIT_FAILURE;
+
-+ if ( argc < 2 ) {
-+ bb_show_usage();
++ if ( argc < 2 )
++ {
++ bb_show_usage();
++ }
++
++ /*
++ * If no terminal is attached it is quite useless
++ * to treat it like one.
++ */
++ if( !isatty(STDIN_FILENO) )
++ {
++ goto error_hard;
+ }
+
+ //bb_printf( "DEBUG: time = '%s'\n", argv[1] );
@@ -41,8 +51,10 @@
+ struct termios attr;
+
+ if ( tcgetattr(STDIN_FILENO, &orig) == -1 )
-+ return EXIT_FAILURE;
-+
++ {
++ goto error_hard;
++ }
++
+ attr = orig;
+ attr.c_cc[VMIN] = 0;
+ attr.c_cc[VTIME] = 0;
@@ -51,7 +63,9 @@
+ attr.c_cflag &= ~PARENB;
+ attr.c_lflag &= ~(ICANON/*|ECHO*/);
+ if ( tcsetattr(STDIN_FILENO,TCSANOW,&attr) == -1 )
-+ return EXIT_FAILURE;
++ {
++ goto error_hard;
++ }
+
+ fd_set rfds;
+ struct timeval tv;
@@ -65,20 +79,25 @@
+
+ if ( argc == 3 )
+ {
-+ bb_printf( argv[2], tv.tv_sec );
-+ bb_printf( "\n" );
-+ fflush(stdout);
++ bb_printf( argv[2], tv.tv_sec );
++ bb_printf( "\n" );
++ fflush(stdout);
+ }
+ retval = select(1, &rfds, NULL, NULL, &tv);
+ if (retval > 0)
+ {
-+ status = EXIT_SUCCESS;
++ status = EXIT_SUCCESS;
+ }
+
+ if (tcsetattr(STDIN_FILENO,TCSANOW,&orig) == -1 )
-+ return EXIT_FAILURE;
-+
++ {
++ goto error_hard;
++ }
++
+ return status;
++
++error_hard :
++ return EXIT_FAILURE;
+};
+
--- busybox-1.00/console-tools/Makefile.in~add-getkey-applet.patch