1 #include "config.h"
2 #include <string.h>
3 #include <orbit/orbit.h>
4 
5 CORBA_char *
CORBA_string_alloc(CORBA_unsigned_long len)6 CORBA_string_alloc (CORBA_unsigned_long len)
7 {
8 	return ORBit_alloc_string (len + 1);
9 }
10 
11 CORBA_char *
CORBA_string_dup(const CORBA_char * str)12 CORBA_string_dup (const CORBA_char *str)
13 {
14 	CORBA_char         *retval;
15 	CORBA_unsigned_long len;
16 
17 	if (!str)
18 		return NULL;
19 
20 	len = strlen (str) + 1;
21 
22 	retval = ORBit_alloc_string (len);
23 	memcpy (retval, str, len);
24 
25 	return retval;
26 }
27 
28 CORBA_wchar *
CORBA_wstring_alloc(CORBA_unsigned_long len)29 CORBA_wstring_alloc (CORBA_unsigned_long len)
30 {
31 	return ORBit_alloc_simple ((len + 1) * 2);
32 }
33 
34 CORBA_unsigned_long
CORBA_wstring_len(CORBA_wchar * ws)35 CORBA_wstring_len (CORBA_wchar *ws)
36 {
37 	int i;
38 
39 	for (i = 0; ws [i]; i++)
40 		; /**/
41 
42 	return i;
43 }
44 
45 CORBA_wchar *
CORBA_wstring_dup(const CORBA_wchar * str)46 CORBA_wstring_dup (const CORBA_wchar *str)
47 {
48 	CORBA_wchar *retval;
49 	CORBA_unsigned_long len;
50 
51 	if (!str)
52 		return NULL;
53 
54 	len = CORBA_wstring_len (str);
55 
56 	retval = CORBA_wstring_alloc (len);
57 	memcpy (retval, str, (len + 1) * 2);
58 
59 	return retval;
60 }
61