func: char *svn_cstring_join(const apr_array_header_t *strings,const char *separator,apr_pool_t *pool) svn_stringbuf_t * new_str = svn_stringbuf_create_empty ( pool ) ; svn_stringbuf_t *svn_stringbuf_create_empty(apr_pool_t *pool) return svn_stringbuf_create_ensure ( 0 , pool ) ; svn_stringbuf_t *svn_stringbuf_create_ensure(apr_size_t blocksize,apr_pool_t *pool) void * mem ; svn_stringbuf_t * new_string ; new_string = mem; new_string -> data = ( ( char * ) mem ) + sizeof ( ( * new_string ) ); new_string -> data [ 0 ] = '\0'; new_string -> len = 0; new_string -> blocksize = blocksize - sizeof ( ( * new_string ) ); new_string -> pool = pool; return new_string ; size_t sep_len = strlen ( separator ) ; int i ; for (i = 0; i < strings -> nelts; i++) svn_stringbuf_appendbytes ( new_str , separator , sep_len ); void svn_stringbuf_appendbytes(svn_stringbuf_t *str,const char *bytes,apr_size_t count) void * start_address ; start_address = ( str -> data + str -> len ); memcpy ( start_address , bytes , count ); 