xref: /openbsd-src/lib/libc/string/wcsdup.c (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1 /*	$OpenBSD: wcsdup.c,v 1.1 2011/07/04 04:37:34 nicm Exp $	*/
2 /*	$NetBSD: wcsdup.c,v 1.3 2008/05/26 13:17:48 haad Exp $	*/
3 
4 /*
5  * Copyright (C) 2006 Aleksey Cheusov
6  *
7  * This material is provided "as is", with absolutely no warranty expressed
8  * or implied. Any use is at your own risk.
9  *
10  * Permission to use or copy this software for any purpose is hereby granted
11  * without fee. Permission to modify the code and to distribute modified
12  * code is also granted without any restrictions.
13  */
14 
15 #include <stdlib.h>
16 #include <wchar.h>
17 
18 wchar_t *
19 wcsdup(const wchar_t *str)
20 {
21 	wchar_t *copy;
22 	size_t len;
23 
24 	len = wcslen(str) + 1;
25 	copy = malloc(len * sizeof (wchar_t));
26 
27 	if (!copy)
28 		return (NULL);
29 
30 	return (wmemcpy(copy, str, len));
31 }
32