Mercurial > trustbridge
view common/strhelp.h @ 289:9ad00a3255f4
Change cinst from stdin input to use arguments.
As we have to execute this process on Windows over the
shell a stdin / stdout communication is not really possible
without some major hacks. So you now have to supply an
instructions file and the path to the certificatelist as arguments when
this process is called
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 02 Apr 2014 13:52:02 +0000 |
parents | c596568fa45b |
children | 4077eff1dd39 |
line wrap: on
line source
#ifndef STRHELP_H #define STRHELP_H #ifdef __cplusplus extern "C" { #endif #include <stdbool.h> #include <stddef.h> /** * @file strhelp.h * @brief Helper functions for c strings and memory management * @details strhelp contains terminating memory allocation functions and * some conveniance functions to work with c strings or arrays of c * strings. */ void *xmalloc( size_t n ); void *xrealloc( void *a, size_t n ); void *xcalloc( size_t n, size_t m ); char *xstrndup( const char *string, const size_t len ); void xfree ( void *p ); /** * @brief Returns the length of the given %NULL-terminated * string array str_array. * @param[in] str_array a %NULL-terminated array of strings * @returns length of str_array. */ unsigned int strv_length (char **str_array); /** * @brief append a string to a NULL terminated array of strings. * * @param[inout] pArray pointer to the NULL terminated list of string pointers. * @param[in] string pointer to the string to append to the list. * @param[in] len length of the string to append to the list */ void strv_append (char ***pArray, const char *string, const size_t len); /** * @brief append a string to another string. * * @param[inout] pDst pointer to the string to be extended. * @param[inout] dst_len length of the dst string. Will be modified. * @param[in] appendage pointer to the string to append. * @param[in] len length of the string to append. */ void str_append_str (char **pDst, size_t *dst_len, const char *appendage, const size_t len); /** * @brief Frees the given %NULL-terminated string array. * @param[inout] str_array a %NULL-terminated array of strings */ void strv_free (char **str_array); /** * @brief Checks whether two strings exactly match * @param[in] s1 the first string * @param[in] s2 the second string * @returns true if s1 and s2 are equal */ bool str_equal (char *s1, char *s2); /** * @brief Checks whether s2 exactly matches the beginning of s1. * @param[in] s1 the string who's beginning is searched * @param[in] s2 the string which is searched for * @returns true if s1 starts with s2, false otherwise */ bool str_starts_with (char *s1, char *s2); /** * @brief Trims all white space from the start and end of string. * @details the start of the string is trimmed by setting *s to the * first non white space character. The end is trimmed by setting the * first character after the last non white space character to \0. * @param[inout] s ponter to the string to strip */ bool str_trim (char **s); /** @brief decode base64 encoded data * * The memory allocated for dest needs to be free'd by the * caller. * * _Input warning:_ * If the input contains invalid base64 characters an error * is returned. * * If the input is invalid base64 but consists of valid * base64 characters _no error_ is returned and dst contains * the valid input up to the error. * * @param [out] dst Pointer to the destination. Needs to be NULL * @param [out] dst_size Size allocated for the destination. * @param [in] src Pointer to the base64 encoded data. * @param [in] src_size Size of the encoded data. * * @returns 0 on success a polarssl error or -1 otherwise */ int str_base64_decode(char **dst, size_t *dst_size, char *src, size_t src_size); #ifdef WIN32 /** @brief convert a utf8 string to utf16 wchar * * @param[in] string utf8 string. Must be at least len characters long. * @param[in] len number of characters to be converted. * * @returns pointer to a newly allocated wchar array. NULL on error. * **/ wchar_t *utf8_to_wchar (const char *string, size_t len); /** @brief convert a utf16 string to utf8 * * @param[in] string utf16 string. Must be at least len characters long. * @param[in] len number of characters to be converted. * * @returns pointer to a newly allocated char array. NULL on error. * **/ char *wchar_to_utf8 (const wchar_t *string, size_t len); #endif #ifdef __cplusplus } #endif #endif