annotate common/strhelp.h @ 1323:c582b935c120

(issue166) Disable multiple selection for certificates.
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 14 Oct 2014 18:10:17 +0200
parents 82fab0c689bf
children
rev   line source
404
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
2 * Software engineering by Intevation GmbH
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
3 *
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
4 * This file is Free Software under the GNU GPL (v>=2)
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY!
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
6 * See LICENSE.txt for details.
17e1c8f37d72 Add License
Andre Heinecke <aheinecke@intevation.de>
parents: 319
diff changeset
7 */
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
8 #ifndef STRHELP_H
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
9 #define STRHELP_H
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
10
184
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
11 #ifdef __cplusplus
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
12 extern "C" {
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
13 #endif
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
14
131
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
15 #include <stdbool.h>
251
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
16 #include <stddef.h>
131
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
17
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
18 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
19 * @file strhelp.h
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
20 * @brief Helper functions for c strings and memory management
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
21 * @details strhelp contains terminating memory allocation functions and
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
22 * some conveniance functions to work with c strings or arrays of c
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
23 * strings.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24 */
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
25
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
26 void *xmalloc( size_t n );
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
27 void *xrealloc( void *a, size_t n );
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28 void *xcalloc( size_t n, size_t m );
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
29 char *xstrndup( const char *string, const size_t len );
251
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
30 void xfree ( void *p );
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32 /**
319
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
33 * @brief Terminating variant of asprintf
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
34 *
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
35 * This function behaves exactly like asprintf(3) but will terminate
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
36 * when an error occures (usally that means that memoy allocation
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
37 * failed).
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
38 */
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
39 int xasprintf (char **strp, const char *fmt, ...);
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
40
4077eff1dd39 Added terminateing version of asprintf.
Sascha Wilde <wilde@intevation.de>
parents: 251
diff changeset
41 /**
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
42 * @brief Returns the length of the given %NULL-terminated
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
43 * string array str_array.
120
702033705bb8 Removed trailing whitespace.
Sascha Wilde <wilde@intevation.de>
parents: 118
diff changeset
44 * @param[in] str_array a %NULL-terminated array of strings
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
45 * @returns length of str_array.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
46 */
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
47 unsigned int strv_length (char **str_array);
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
48
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
49 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
50 * @brief append a string to a NULL terminated array of strings.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 *
1304
82fab0c689bf Fix doxygen syntax error. Change inout to in,out
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1158
diff changeset
52 * @param[in,out] pArray pointer to the NULL terminated list of string pointers.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53 * @param[in] string pointer to the string to append to the list.
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
54 * @param[in] len length of the string to append to the list
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
55 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
56 void strv_append (char ***pArray, const char *string, const size_t len);
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
57
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
58 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
59 * @brief append a string to another string.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
60 *
1304
82fab0c689bf Fix doxygen syntax error. Change inout to in,out
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1158
diff changeset
61 * @param[in,out] pDst pointer to the string to be extended.
82fab0c689bf Fix doxygen syntax error. Change inout to in,out
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1158
diff changeset
62 * @param[in,out] dst_len length of the dst string. Will be modified.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
63 * @param[in] appendage pointer to the string to append.
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
64 * @param[in] len length of the string to append.
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
65 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
66 void str_append_str (char **pDst, size_t *dst_len, const char *appendage,
91
80ab2168760f Also add output size handling to str_append_str
Andre Heinecke <aheinecke@intevation.de>
parents: 60
diff changeset
67 const size_t len);
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
68
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
69 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
70 * @brief Frees the given %NULL-terminated string array.
1304
82fab0c689bf Fix doxygen syntax error. Change inout to in,out
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1158
diff changeset
71 * @param[in,out] str_array a %NULL-terminated array of strings
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
72 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
73 void strv_free (char **str_array);
131
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
74
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
75 /**
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
76 * @brief Checks whether two strings exactly match
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
77 * @param[in] s1 the first string
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
78 * @param[in] s2 the second string
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
79 * @returns true if s1 and s2 are equal
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
80 */
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
81 bool str_equal (char *s1, char *s2);
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
82
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
83 /**
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
84 * @brief Checks whether s2 exactly matches the beginning of s1.
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
85 * @param[in] s1 the string who's beginning is searched
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
86 * @param[in] s2 the string which is searched for
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
87 * @returns true if s1 starts with s2, false otherwise
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
88 */
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
89 bool str_starts_with (char *s1, char *s2);
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
90
133
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
91 /**
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
92 * @brief Trims all white space from the start and end of string.
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
93 * @details the start of the string is trimmed by setting *s to the
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
94 * first non white space character. The end is trimmed by setting the
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
95 * first character after the last non white space character to \0.
1304
82fab0c689bf Fix doxygen syntax error. Change inout to in,out
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1158
diff changeset
96 * @param[in,out] s ponter to the string to strip
133
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
97 */
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
98 bool str_trim (char **s);
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
99
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
100 /** @brief decode base64 encoded data
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
101 *
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
102 * The memory allocated for dest needs to be free'd by the
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
103 * caller.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
104 *
239
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
105 * _Input warning:_
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
106 * If the input contains invalid base64 characters an error
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
107 * is returned.
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
108 *
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
109 * If the input is invalid base64 but consists of valid
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
110 * base64 characters _no error_ is returned and dst contains
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
111 * the valid input up to the error.
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
112 *
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
113 * @param [out] dst Pointer to the destination. Needs to be NULL
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
114 * @param [out] dst_size Size allocated for the destination.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
115 * @param [in] src Pointer to the base64 encoded data.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
116 * @param [in] src_size Size of the encoded data.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
117 *
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
118 * @returns 0 on success a polarssl error or -1 otherwise
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
119 */
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
120 int str_base64_decode(char **dst, size_t *dst_size, char *src,
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
121 size_t src_size);
251
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
122
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
123 #ifdef WIN32
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
124
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
125 /** @brief convert a utf8 string to utf16 wchar
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
126 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
127 * @param[in] string utf8 string. Must be at least len characters long.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
128 * @param[in] len number of characters to be converted.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
129 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
130 * @returns pointer to a newly allocated wchar array. NULL on error.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
131 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
132 **/
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
133 wchar_t *utf8_to_wchar (const char *string, size_t len);
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
134
1158
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
135 /** @brief convert a local 8 bit (acp) string to utf16 wchar
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
136 *
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
137 * @param[in] string acp string. Must be at least len characters long.
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
138 * @param[in] len number of characters to be converted.
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
139 *
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
140 * @returns pointer to a newly allocated wchar array. NULL on error.
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
141 *
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
142 **/
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
143 wchar_t *acp_to_wchar (const char *string, size_t len);
ffdc8cba139a (issue36) Add acp_to_wchar based on utf8_to_wchar
Andre Heinecke <andre.heinecke@intevation.de>
parents: 404
diff changeset
144
251
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
145 /** @brief convert a utf16 string to utf8
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
146 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
147 * @param[in] string utf16 string. Must be at least len characters long.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
148 * @param[in] len number of characters to be converted.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
149 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
150 * @returns pointer to a newly allocated char array. NULL on error.
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
151 *
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
152 **/
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
153 char *wchar_to_utf8 (const wchar_t *string, size_t len);
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
154 #endif
c596568fa45b Add utf16 conversion functions for Windows.
Andre Heinecke <aheinecke@intevation.de>
parents: 239
diff changeset
155
184
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
156 #ifdef __cplusplus
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
157 }
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
158 #endif
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
159
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
160 #endif

http://wald.intevation.org/projects/trustbridge/