[git commit] unzip: fflush stdout before reading interative y/n answer from stdin

Denys Vlasenko vda.linux at googlemail.com
Fri Sep 9 15:30:55 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=831756bac440ce5f582305a81fd2b842eb255fc3
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/unzip.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/archival/unzip.c b/archival/unzip.c
index 4fa7293..4cc98cd 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -235,7 +235,7 @@ static void unzip_create_leading_dirs(const char *fn)
 	/* Create all leading directories */
 	char *name = xstrdup(fn);
 	if (bb_make_directory(dirname(name), 0777, FILEUTILS_RECUR)) {
-		bb_error_msg_and_die("exiting"); /* bb_make_directory is noisy */
+		xfunc_die(); /* bb_make_directory is noisy */
 	}
 	free(name);
 }
@@ -595,7 +595,7 @@ int unzip_main(int argc, char **argv)
 					}
 					unzip_create_leading_dirs(dst_fn);
 					if (bb_make_directory(dst_fn, dir_mode, 0)) {
-						bb_error_msg_and_die("exiting");
+						xfunc_die();
 					}
 				} else {
 					if (!S_ISDIR(stat_buf.st_mode)) {
@@ -619,6 +619,7 @@ int unzip_main(int argc, char **argv)
 							i = 'y';
 						} else {
 							printf("replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: ", dst_fn);
+							fflush_all();
 							if (!fgets(key_buf, sizeof(key_buf), stdin)) {
 								bb_perror_msg_and_die("can't read input");
 							}
-- 
1.7.3.4



More information about the busybox-cvs mailing list