zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/build/uClibc/libc/stdio/vswprintf.c b/ap/build/uClibc/libc/stdio/vswprintf.c
new file mode 100644
index 0000000..2195248
--- /dev/null
+++ b/ap/build/uClibc/libc/stdio/vswprintf.c
@@ -0,0 +1,75 @@
+/* Copyright (C) 2004       Manuel Novoa III    <mjn3@codepoet.org>
+ *
+ * GNU Library General Public License (LGPL) version 2 or later.
+ *
+ * Dedicated to Toni.  See uClibc/DEDICATION.mjn3 for details.
+ */
+
+#include "_stdio.h"
+#include <stdarg.h>
+#include <wchar.h>
+
+
+/* NB: this file is not used if __USE_OLD_VFPRINTF__ */
+
+#ifndef __STDIO_BUFFERS
+#warning Skipping vswprintf since no buffering!
+#else  /* __STDIO_BUFFERS */
+
+int vswprintf(wchar_t *__restrict buf, size_t size,
+			  const wchar_t * __restrict format, va_list arg)
+{
+	FILE f;
+	int rv;
+
+/* 	__STDIO_STREAM_RESET_GCS(&f); */
+#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
+	f.__cookie = &(f.__filedes);
+	f.__gcs.read = NULL;
+	f.__gcs.write = NULL;
+	f.__gcs.seek = NULL;
+	f.__gcs.close = NULL;
+#endif
+
+	f.__filedes = __STDIO_STREAM_FAKE_VSWPRINTF_FILEDES;
+	f.__modeflags = (__FLAG_WIDE|__FLAG_WRITEONLY|__FLAG_WRITING);
+
+	f.__ungot_width[0] = 0;
+#ifdef __STDIO_MBSTATE
+	__INIT_MBSTATE(&(f.__state));
+#endif /* __STDIO_MBSTATE */
+
+#ifdef __UCLIBC_HAS_THREADS__
+	f.__user_locking = 1;		/* Set user locking. */
+	STDIO_INIT_MUTEX(f.__lock);
+#endif /* __UCLIBC_HAS_THREADS__ */
+
+	f.__nextopen = NULL;
+
+	if (size > ((SIZE_MAX - (size_t) buf)/sizeof(wchar_t))) {
+		size = ((SIZE_MAX - (size_t) buf)/sizeof(wchar_t));
+	}
+
+	f.__bufstart = (unsigned char *) buf;
+	f.__bufend = (unsigned char *) (buf + size);
+	__STDIO_STREAM_INIT_BUFREAD_BUFPOS(&f);
+	__STDIO_STREAM_DISABLE_GETC(&f);
+	__STDIO_STREAM_DISABLE_PUTC(&f);
+
+	rv = _vfwprintf_internal(&f, format, arg);
+
+	/* NOTE: Return behaviour differs from snprintf... */
+	if (f.__bufpos == f.__bufend) {
+		rv = -1;
+		if (size) {
+			f.__bufpos = (unsigned char *) (((wchar_t *) f.__bufpos) - 1);
+		}
+	}
+	if (size) {
+		*((wchar_t *) f.__bufpos) = 0;
+	}
+	return rv;
+}
+libc_hidden_def(vswprintf)
+
+#endif /* __STDIO_BUFFERS */