From f0920f2896c409d519e51744a2e2618a99ec8b8c Mon Sep 17 00:00:00 2001 From: graham.gower Date: Thu, 12 Nov 2009 01:38:44 -0500 Subject: Don't prompt for user input from stdin if it's not a tty. Based off a patch by Chris Larson for OpenEmbedded. git-svn-id: http://opkg.googlecode.com/svn/trunk@290 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg') diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c index a76322d..52af71e 100644 --- a/libopkg/opkg_install.c +++ b/libopkg/opkg_install.c @@ -1608,6 +1608,10 @@ static int user_prefers_old_conffile(const char *file_name, const char *backup) " D : show the differences between the versions (if diff is installed)\n" " The default action is to keep your current version.\n" " *** %s (Y/I/N/O/D) [default=N] ? ", file_name, short_file_name); + + if (response == NULL) + return 1; + if (strcmp(response, "y") == 0 || strcmp(response, "i") == 0 || strcmp(response, "yes") == 0) { diff --git a/libopkg/user.c b/libopkg/user.c index 8c960dc..dda5013 100644 --- a/libopkg/user.c +++ b/libopkg/user.c @@ -15,13 +15,11 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -#include #include #include -#include +#include #include "file_util.h" #include "str_util.h" -#include "user.h" char *get_user_response(const char *format, ...) { @@ -32,6 +30,9 @@ char *get_user_response(const char *format, ...) vprintf(format, ap); va_end(ap); + if (isatty(fileno(stdin))) + return NULL; + response = (char *)file_read_line_alloc(stdin); if (response == NULL) return NULL; -- cgit v0.9.1