[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/libbb/wfopen_input.c b/ap/app/busybox/src/libbb/wfopen_input.c
new file mode 100644
index 0000000..d8b1c4a
--- /dev/null
+++ b/ap/app/busybox/src/libbb/wfopen_input.c
@@ -0,0 +1,56 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * wfopen_input implementation for busybox
+ *
+ * Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+/* A number of applets need to open a file for reading, where the filename
+ * is a command line arg.  Since often that arg is '-' (meaning stdin),
+ * we avoid testing everywhere by consolidating things in this routine.
+ */
+
+#include "libbb.h"
+
+FILE* FAST_FUNC fopen_or_warn_stdin(const char *filename)
+{
+	FILE *fp = stdin;
+
+	if (filename != bb_msg_standard_input
+	 && NOT_LONE_DASH(filename)
+	) {
+		fp = fopen_or_warn(filename, "r");
+	}
+	return fp;
+}
+
+FILE* FAST_FUNC xfopen_stdin(const char *filename)
+{
+	FILE *fp = fopen_or_warn_stdin(filename);
+	if (fp)
+		return fp;
+	xfunc_die();  /* We already output an error message. */
+}
+
+int FAST_FUNC open_or_warn_stdin(const char *filename)
+{
+	int fd = STDIN_FILENO;
+
+	if (filename != bb_msg_standard_input
+	 && NOT_LONE_DASH(filename)
+	) {
+		fd = open_or_warn(filename, O_RDONLY);
+	}
+
+	return fd;
+}
+
+int FAST_FUNC xopen_stdin(const char *filename)
+{
+	int fd = open_or_warn_stdin(filename);
+	if (fd >= 0)
+		return fd;
+	xfunc_die();  /* We already output an error message. */
+}