func: svn_error_t *svn_uri_get_dirent_from_file_url(const char **dirent,const char *url,apr_pool_t *pool) const char * hostname ; const char * path ; if ( ! svn_uri_is_canonical ( url , pool ) )  svn_boolean_t svn_uri_is_canonical(const char *uri,apr_pool_t *scratch_pool) const char * ptr = uri ; if ( ( * uri ) == '\0' )  return 0 ; if ( ! svn_path_is_url ( uri ) )  return 0 ; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  ptr ++; if ( ! ( ( * ptr ) == ':' && ( * ( ptr + 1 ) ) == 47 && ( * ( ptr + 2 ) ) == 47 ) )  return 0 ; ptr = uri; while ( ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  return 0 ; ptr ++; ptr += 3; if ( ! ( * ptr ) )  return ! 0 ; 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 ) != ']' )  return 0 ; ptr ++; while ( * ptr && ( * ptr ) != 47 && ( * ptr ) != ':' )  if ( ( * ptr ) >= 65 && ( * ptr ) <= 'Z' )  return 0 ; ptr ++; if ( ( * ptr ) == ':' )  apr_int64_t port = 0 ; ptr ++; schema_data = ptr; while ( ( * ptr ) >= 48 && ( * ptr ) <= '9' )  port = 10 * port + ( ( * ptr ) - 48 ); ptr ++; if ( ptr == schema_data )  return 0 ; if ( * ptr && ( * ptr ) != 47 )  return 0 ; if ( port == 80 && strncmp ( uri , "http:" , 5 ) == 0 )  return 0 ; if ( port == 443 && strncmp ( uri , "https:" , 6 ) == 0 )  return 0 ; if ( port == 3690 && strncmp ( uri , "svn:" , 4 ) == 0 )  return 0 ; schema_data = ptr; while ( 1 )  apr_size_t seglen = ( ptr - seg ) ; if ( seglen == 1 && ( * seg ) == 46 )  return 0 ; if ( ( * ptr ) == 47 && ( * ( ptr + 1 ) ) == 47 )  return 0 ; if ( ! ( * ptr ) && ( * ( ptr - 1 ) ) == 47 && ptr - 1 != uri )  return 0 ; if ( ! ( * ptr ) )  if ( ( * ptr ) == 47 )  ptr ++; seg = ptr; while ( * ptr && ( * ptr ) != 47 )  ptr ++; ptr = schema_data; while ( * ptr )  if ( ( * ptr ) == 37 )  char digitz [ 3 ] ; int val ; if ( ( ( * ( ptr + 1 ) ) < 48 || ( * ( ptr + 1 ) ) > '9' ) && ( ( * ( ptr + 1 ) ) < 65 || ( * ( ptr + 1 ) ) > 'F' ) )  return 0 ; if ( ( ( * ( ptr + 2 ) ) < 48 || ( * ( ptr + 2 ) ) > '9' ) && ( ( * ( ptr + 2 ) ) < 65 || ( * ( ptr + 2 ) ) > 'F' ) )  return 0 ; digitz [ 0 ] = * ( ++ ptr ); digitz [ 1 ] = * ( ++ ptr ); digitz [ 2 ] = '\0'; val = ( ( int ) ( strtol ( digitz , ( ( void * ) 0 ) , 16 ) ) ); if ( svn_uri__char_validity [ val ] )  return 0 ; if ( ( * ptr ) != 47 && ! svn_uri__char_validity [ ( unsigned char ) ( * ptr ) ] )  return 0 ; ptr ++; return ! 0 ; svn_error_t * svn_err__temp = svn_error__malfunction ( ! 0 , "dirent_uri.c" , 2304 , "svn_uri_is_canonical(url, pool)" ) ; if ( svn_err__temp )  while ( 0 )  while ( 0 )  if ( strncmp ( url , "file://" , 7 ) != 0 )  hostname = url + 7; path = ( strchr ( hostname , 47 ) ); if ( path )  hostname = ( apr_pstrmemdup ( pool , hostname , ( path - hostname ) ) ); if ( ( * hostname ) == '\0' )  hostname = svn_path_uri_decode ( hostname , pool ); if ( strcmp ( hostname , "localhost" ) == 0 )  