func: svn_error_t *svn_uri_condense_targets(const char **pcommon,apr_array_header_t **pcondensed_targets,const apr_array_header_t *targets,svn_boolean_t remove_redundancies,apr_pool_t *result_pool,apr_pool_t *scratch_pool) svn_boolean_t * removed ; if ( targets -> nelts <= 0 )  if ( targets -> nelts == 1 )  removed = ( memset ( apr_palloc ( scratch_pool , ( targets -> nelts ) * sizeof ( svn_boolean_t ) ) , 0 , ( targets -> nelts ) * sizeof ( svn_boolean_t ) ) ); if ( removed [ i ] )  if ( removed [ j ] )  uri_i = ( ( const char * * ) ( uri_targets -> elts ) ) [ i ]; uri_j = ( ( const char * * ) ( uri_targets -> elts ) ) [ j ]; ancestor = ( svn_uri_get_longest_ancestor ( uri_i , uri_j , scratch_pool ) ); char *svn_uri_get_longest_ancestor(const char *uri1,const char *uri2,apr_pool_t *pool) svn_uri_is_canonical ( uri1 , ( ( void * ) 0 ) ) ? ( ( void ) 0 ) : __assert_fail ( "svn_uri_is_canonical(uri1, ((void *)0))" , "dirent_uri.c" , 1373 , __PRETTY_FUNCTION__ ); svn_boolean_t svn_uri_is_canonical(const char *uri,apr_pool_t *scratch_pool) const char * ptr = uri ; const char * seg = uri ; if ( ( * uri ) == '\0' )  if ( ! svn_path_is_url ( uri ) )  while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  ptr ++; if ( ! ( ( * ptr ) == ':' && ( * ( ptr + 1 ) ) == 47 && ( * ( ptr + 2 ) ) == 47 ) )  ptr = uri; while ( ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; ptr += 3; if ( ! ( * ptr ) )  seg = ptr; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != 64 )  ptr ++; if ( ( * ptr ) == 64 )  seg = ptr + 1; ptr = seg; if ( ( * ptr ) == '[' )  ptr ++; while ( ( * ptr ) == ':' || ( * ptr ) >= 48 && ( * ptr ) <= '9' || ( * ptr ) >= 'a' && ( * ptr ) <= 'f' )  ptr ++; if ( ( * ptr ) != ']' )  ptr ++; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; if ( ( * ptr ) == ':' )  ptr ++; schema_data = ptr; while ( ( * ptr ) >= 48 && ( * ptr ) <= '9' )  port = 10 * port + ( ( * ptr ) - 48 ); ptr ++; if ( ptr == schema_data )  if ( * ptr && ( * ptr ) != 47 )  if ( port == 80 && strncmp ( uri , "http:" , 5 ) == 0 )  if ( port == 443 && strncmp ( uri , "https:" , 6 ) == 0 )  if ( port == 3690 && strncmp ( uri , "svn:" , 4 ) == 0 )  schema_data = ptr; apr_size_t seglen = ( ptr - seg ) ; if ( seglen == 1 && ( * seg ) == 46 )  if ( ( * ptr ) == 47 && ( * ( ptr + 1 ) ) == 47 )  if ( ! ( * ptr ) && ( * ( ptr - 1 ) ) == 47 && ptr - 1 != uri )  if ( ! ( * ptr ) )  if ( ( * ptr ) == 47 )  ptr ++; seg = ptr; while ( * ptr && ( * ptr ) != 47 )  ptr ++; ptr = schema_data; while ( * ptr )  if ( ( * ptr ) == 37 )  if ( ( ( * ( ptr + 1 ) ) < 48 || ( * ( ptr + 1 ) ) > '9' ) && ( ( * ( ptr + 1 ) ) < 65 || ( * ( ptr + 1 ) ) > 'F' ) )  if ( ( ( * ( ptr + 2 ) ) < 48 || ( * ( ptr + 2 ) ) > '9' ) && ( ( * ( ptr + 2 ) ) < 65 || ( * ( ptr + 2 ) ) > 'F' ) )  digitz [ 0 ] = * ( ++ ptr ); digitz [ 1 ] = * ( ++ ptr ); digitz [ 2 ] = '\0'; val = ( ( int ) ( strtol ( digitz , ( ( void * ) 0 ) , 16 ) ) ); if ( svn_uri__char_validity [ val ] )  if ( ( * ptr ) != 47 && ! svn_uri__char_validity [ ( unsigned char ) ( * ptr ) ] )  ptr ++; svn_uri_is_canonical ( uri2 , ( ( void * ) 0 ) ) ? ( ( void ) 0 ) : __assert_fail ( "svn_uri_is_canonical(uri2, ((void *)0))" , "dirent_uri.c" , 1374 , __PRETTY_FUNCTION__ ); svn_boolean_t svn_uri_is_canonical(const char *uri,apr_pool_t *scratch_pool) const char * ptr = uri ; const char * seg = uri ; if ( ( * uri ) == '\0' )  if ( ! svn_path_is_url ( uri ) )  while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  ptr ++; if ( ! ( ( * ptr ) == ':' && ( * ( ptr + 1 ) ) == 47 && ( * ( ptr + 2 ) ) == 47 ) )  ptr = uri; while ( ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; ptr += 3; if ( ! ( * ptr ) )  seg = ptr; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != 64 )  ptr ++; if ( ( * ptr ) == 64 )  seg = ptr + 1; ptr = seg; if ( ( * ptr ) == '[' )  ptr ++; while ( ( * ptr ) == ':' || ( * ptr ) >= 48 && ( * ptr ) <= '9' || ( * ptr ) >= 'a' && ( * ptr ) <= 'f' )  ptr ++; if ( ( * ptr ) != ']' )  ptr ++; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; if ( ( * ptr ) == ':' )  ptr ++; schema_data = ptr; while ( ( * ptr ) >= 48 && ( * ptr ) <= '9' )  port = 10 * port + ( ( * ptr ) - 48 ); ptr ++; if ( ptr == schema_data )  if ( * ptr && ( * ptr ) != 47 )  if ( port == 80 && strncmp ( uri , "http:" , 5 ) == 0 )  if ( port == 443 && strncmp ( uri , "https:" , 6 ) == 0 )  if ( port == 3690 && strncmp ( uri , "svn:" , 4 ) == 0 )  schema_data = ptr; apr_size_t seglen = ( ptr - seg ) ; if ( seglen == 1 && ( * seg ) == 46 )  if ( ( * ptr ) == 47 && ( * ( ptr + 1 ) ) == 47 )  if ( ! ( * ptr ) && ( * ( ptr - 1 ) ) == 47 && ptr - 1 != uri )  if ( ! ( * ptr ) )  if ( ( * ptr ) == 47 )  ptr ++; seg = ptr; while ( * ptr && ( * ptr ) != 47 )  ptr ++; ptr = schema_data; while ( * ptr )  if ( ( * ptr ) == 37 )  if ( ( ( * ( ptr + 1 ) ) < 48 || ( * ( ptr + 1 ) ) > '9' ) && ( ( * ( ptr + 1 ) ) < 65 || ( * ( ptr + 1 ) ) > 'F' ) )  if ( ( ( * ( ptr + 2 ) ) < 48 || ( * ( ptr + 2 ) ) > '9' ) && ( ( * ( ptr + 2 ) ) < 65 || ( * ( ptr + 2 ) ) > 'F' ) )  digitz [ 0 ] = * ( ++ ptr ); digitz [ 1 ] = * ( ++ ptr ); digitz [ 2 ] = '\0'; val = ( ( int ) ( strtol ( digitz , ( ( void * ) 0 ) , 16 ) ) ); if ( svn_uri__char_validity [ val ] )  if ( ( * ptr ) != 47 && ! svn_uri__char_validity [ ( unsigned char ) ( * ptr ) ] )  ptr ++; if ( uri1 [ i ] != uri2 [ i ] )  return ( apr_pmemdup ( pool , "" , sizeof ( "" ) ) ) ; if ( uri1 [ i ] == ':' )  uri1 [ i ] != '\0' && uri2 [ i ] != '\0' ? ( ( void ) 0 ) : __assert_fail ( "(uri1[i] != '\\0') && (uri2[i] != '\\0')" , "dirent_uri.c" , 1388 , __PRETTY_FUNCTION__ ); uri_ancestor_len = get_longest_ancestor_length ( type_uri , uri1 + i , uri2 + i , pool ); static apr_size_t get_longest_ancestor_length(path_type_t types,const char *path1,const char *path2,apr_pool_t *pool) path1_len = strlen ( path1 ); path2_len = strlen ( path2 ); if ( path1 [ 0 ] == '\0' || path2 [ 0 ] == '\0' )  while ( path1 [ i ] == path2 [ i ] )  if ( path1 [ i ] == 47 )  if ( i == path1_len || i == path2_len )  if ( i == 1 && path1 [ 0 ] == 47 && path2 [ 0 ] == 47 )  if ( types == type_dirent && i == 0 )  if ( i == path1_len && path2 [ i ] == 47 || i == path2_len && path1 [ i ] == 47 || i == path1_len && i == path2_len )  if ( last_dirsep == 0 && path1 [ 0 ] == 47 && path2 [ 0 ] == 47 )  if ( uri_ancestor_len == 0 || uri_ancestor_len == 1 && ( uri1 + i ) [ 0 ] == 47 )  return ( apr_pmemdup ( pool , "" , sizeof ( "" ) ) ) ; return apr_pstrndup ( pool , uri1 , uri_ancestor_len + i ) ; if ( ( * ancestor ) == '\0' )  if ( strcmp ( ancestor , uri_i ) == 0 )  removed [ j ] = ! 0; if ( strcmp ( ancestor , uri_j ) == 0 )  removed [ i ] = ! 0; for (i = 0; i < uri_targets -> nelts; ++i) const char * uri_targets_i = ( ( const char * * ) ( uri_targets -> elts ) ) [ i ] ; if ( strcmp ( uri_targets_i , * pcommon ) == 0 && ! removed [ i ] )  removed [ i ] = ! 0; for (i = 0; i < uri_targets -> nelts; ++i) const char * rel_item = ( ( const char * * ) ( uri_targets -> elts ) ) [ i ] ; if ( removed [ i ] )  rel_item += basedir_len; if ( rel_item [ 0 ] == 47 || rel_item [ 0 ] && ! svn_uri_is_root ( * pcommon , basedir_len ) )  svn_boolean_t svn_uri_is_root(const char *uri,apr_size_t len) svn_uri_is_canonical ( uri , ( ( void * ) 0 ) ) ? ( ( void ) 0 ) : __assert_fail ( "svn_uri_is_canonical(uri, ((void *)0))" , "dirent_uri.c" , 958 , __PRETTY_FUNCTION__ ); svn_boolean_t svn_uri_is_canonical(const char *uri,apr_pool_t *scratch_pool) const char * ptr = uri ; const char * seg = uri ; if ( ( * uri ) == '\0' )  if ( ! svn_path_is_url ( uri ) )  while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  ptr ++; if ( ! ( ( * ptr ) == ':' && ( * ( ptr + 1 ) ) == 47 && ( * ( ptr + 2 ) ) == 47 ) )  ptr = uri; while ( ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; ptr += 3; if ( ! ( * ptr ) )  seg = ptr; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != 64 )  ptr ++; if ( ( * ptr ) == 64 )  seg = ptr + 1; ptr = seg; if ( ( * ptr ) == '[' )  ptr ++; while ( ( * ptr ) == ':' || ( * ptr ) >= 48 && ( * ptr ) <= '9' || ( * ptr ) >= 'a' && ( * ptr ) <= 'f' )  ptr ++; if ( ( * ptr ) != ']' )  ptr ++; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  ptr ++; if ( ( * ptr ) == ':' )  ptr ++; schema_data = ptr; while ( ( * ptr ) >= 48 && ( * ptr ) <= '9' )  port = 10 * port + ( ( * ptr ) - 48 ); ptr ++; if ( ptr == schema_data )  if ( * ptr && ( * ptr ) != 47 )  if ( port == 80 && strncmp ( uri , "http:" , 5 ) == 0 )  if ( port == 443 && strncmp ( uri , "https:" , 6 ) == 0 )  if ( port == 3690 && strncmp ( uri , "svn:" , 4 ) == 0 )  schema_data = ptr; apr_size_t seglen = ( ptr - seg ) ; if ( seglen == 1 && ( * seg ) == 46 )  if ( ( * ptr ) == 47 && ( * ( ptr + 1 ) ) == 47 )  if ( ! ( * ptr ) && ( * ( ptr - 1 ) ) == 47 && ptr - 1 != uri )  if ( ! ( * ptr ) )  if ( ( * ptr ) == 47 )  ptr ++; seg = ptr; while ( * ptr && ( * ptr ) != 47 )  ptr ++; ptr = schema_data; while ( * ptr )  if ( ( * ptr ) == 37 )  if ( ( ( * ( ptr + 1 ) ) < 48 || ( * ( ptr + 1 ) ) > '9' ) && ( ( * ( ptr + 1 ) ) < 65 || ( * ( ptr + 1 ) ) > 'F' ) )  if ( ( ( * ( ptr + 2 ) ) < 48 || ( * ( ptr + 2 ) ) > '9' ) && ( ( * ( ptr + 2 ) ) < 65 || ( * ( ptr + 2 ) ) > 'F' ) )  digitz [ 0 ] = * ( ++ ptr ); digitz [ 1 ] = * ( ++ ptr ); digitz [ 2 ] = '\0'; val = ( ( int ) ( strtol ( digitz , ( ( void * ) 0 ) , 16 ) ) ); if ( svn_uri__char_validity [ val ] )  if ( ( * ptr ) != 47 && ! svn_uri__char_validity [ ( unsigned char ) ( * ptr ) ] )  ptr ++; return len == uri_schema_root_length ( uri , len ) ; static apr_size_t uri_schema_root_length(const char *uri,apr_size_t len) for (i = 0; i < len; i++) if ( uri [ i ] == 47 )  if ( i > 0 && uri [ i - 1 ] == ':' && i < len - 1 && uri [ i + 1 ] == 47 )  if ( i == 5 && strncmp ( "file" , uri , 4 ) == 0 )  for (i += 2; i < len; i++) if ( uri [ i ] == 47 )  return len ; rel_item ++; * ( ( const char * * ) ( apr_array_push ( * pcondensed_targets ) ) ) = svn_path_uri_decode ( rel_item , result_pool ); 