[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/busybox/src/debianutils/pipe_progress.c b/ap/app/busybox/src/debianutils/pipe_progress.c
new file mode 100644
index 0000000..2c7444f
--- /dev/null
+++ b/ap/app/busybox/src/debianutils/pipe_progress.c
@@ -0,0 +1,39 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Monitor a pipe with a simple progress display.
+ *
+ * Copyright (C) 2003 by Rob Landley <rob@landley.net>, Joey Hess
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+//usage:#define pipe_progress_trivial_usage NOUSAGE_STR
+//usage:#define pipe_progress_full_usage ""
+
+#include "libbb.h"
+
+#define PIPE_PROGRESS_SIZE 4096
+
+/* Read a block of data from stdin, write it to stdout.
+ * Activity is indicated by a '.' to stderr
+ */
+int pipe_progress_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int pipe_progress_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
+{
+	char buf[PIPE_PROGRESS_SIZE];
+	time_t t = time(NULL);
+	int len;
+
+	while ((len = safe_read(STDIN_FILENO, buf, PIPE_PROGRESS_SIZE)) > 0) {
+		time_t new_time = time(NULL);
+		if (new_time != t) {
+			t = new_time;
+			bb_putchar_stderr('.');
+		}
+		full_write(STDOUT_FILENO, buf, len);
+	}
+
+	bb_putchar_stderr('\n');
+
+	return 0;
+}