Index: uspace/lib/c/generic/str.c
===================================================================
--- uspace/lib/c/generic/str.c	(revision 42a619b240617c4f0e4dd04ddf2366f3c5a0709a)
+++ uspace/lib/c/generic/str.c	(revision f737c1d5a5e7b7a8af265dba32d9ba938b30c6a5)
@@ -2,4 +2,5 @@
  * Copyright (c) 2005 Martin Decky
  * Copyright (c) 2008 Jiri Svoboda
+ * Copyright (c) 2011 Martin Sucha
  * All rights reserved.
  *
@@ -718,4 +719,22 @@
 
 	dest[dlen - 1] = '\0';
+}
+
+/** Convert string to wide string.
+ *
+ * Convert string @a src to wide string. A new wide NULL-terminated
+ * string will be allocated on the heap.
+ *
+ * @param src	Source string.
+ */
+wchar_t *str_to_awstr(const char *str)
+{
+	size_t len = str_length(str);
+        wchar_t *wstr = calloc(len+1, sizeof(wchar_t));
+        if (wstr == NULL) {
+                return NULL;
+        }
+        str_to_wstr(wstr, len+1, str);
+	return wstr;
 }
 
Index: uspace/lib/c/include/str.h
===================================================================
--- uspace/lib/c/include/str.h	(revision 42a619b240617c4f0e4dd04ddf2366f3c5a0709a)
+++ uspace/lib/c/include/str.h	(revision f737c1d5a5e7b7a8af265dba32d9ba938b30c6a5)
@@ -83,4 +83,5 @@
 extern char *wstr_to_astr(const wchar_t *src);
 extern void str_to_wstr(wchar_t *dest, size_t dlen, const char *src);
+extern wchar_t *str_to_awstr(const char *src);
 
 extern char *str_chr(const char *str, wchar_t ch);
