1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-02-24 07:00:40 +00:00

reimplement tr_buildPath() using struct evbuffer

This commit is contained in:
Charles Kerr 2007-11-27 04:11:39 +00:00
parent 6468d57844
commit d0047acc86

View file

@ -463,25 +463,18 @@ tr_mkdirp( const char * path_in, int permissions )
void
tr_buildPath ( char *buf, size_t buflen, const char *first_element, ... )
{
va_list vl;
char* walk = buf;
struct evbuffer * evbuf = evbuffer_new( );
const char * element = first_element;
if( first_element == NULL )
return;
va_list vl;
va_start( vl, first_element );
for( ;; ) {
const size_t n = strlen( element );
memcpy( walk, element, n );
walk += n;
while( element ) {
if( EVBUFFER_LENGTH(evbuf) )
evbuffer_add_printf( evbuf, "%c", TR_PATH_DELIMITER );
evbuffer_add_printf( evbuf, "%s", element );
element = (const char*) va_arg( vl, const char* );
if( element == NULL )
break;
*walk++ = TR_PATH_DELIMITER;
}
*walk = '\0';
assert( walk-buf <= (int)buflen );
strlcpy( buf, (char*)EVBUFFER_DATA(evbuf), buflen );
evbuffer_free( evbuf );
}
int