lib: add u16_strcpy/strdup functions

Add u16_strcpy() and u16_strdup(). The latter function will be
used later in implementing efi HII database protocol.

Signed-off-by: Akashi Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
diff --git a/lib/charset.c b/lib/charset.c
index 10557b9..5e349ed 100644
--- a/lib/charset.c
+++ b/lib/charset.c
@@ -349,6 +349,35 @@
 	return i;
 }
 
+u16 *u16_strcpy(u16 *dest, const u16 *src)
+{
+	u16 *tmp = dest;
+
+	for (;; dest++, src++) {
+		*dest = *src;
+		if (!*src)
+			break;
+	}
+
+	return tmp;
+}
+
+u16 *u16_strdup(const u16 *src)
+{
+	u16 *new;
+
+	if (!src)
+		return NULL;
+
+	new = malloc((u16_strlen(src) + 1) * sizeof(u16));
+	if (!new)
+		return NULL;
+
+	u16_strcpy(new, src);
+
+	return new;
+}
+
 /* Convert UTF-16 to UTF-8.  */
 uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size)
 {