diff -urNp tla-1.3.5.orig/src/tla/libarch/pfs-dav.c tla-1.3.5/src/tla/libarch/pfs-dav.c --- tla-1.3.5.orig/src/tla/libarch/pfs-dav.c 2007-12-13 22:51:47.000000000 +0530 +++ tla-1.3.5/src/tla/libarch/pfs-dav.c 2007-12-13 22:54:36.000000000 +0530 @@ -128,7 +128,7 @@ static t_uchar * abs_path (const t_uchar const t_uchar * path); static t_uchar * dirfold (t_uchar *dir); static void results (void * userdata, - const char * uri, + const ne_uri * uri, const ne_prop_result_set * set); @@ -988,22 +988,23 @@ dirfold (t_uchar *dir) static void results (void * userdata, - const char * uri, + const ne_uri * uri, const ne_prop_result_set * set) { int n; - char * file, * tmp; + char * file, * href, * tmp; struct ls_data * data = userdata; - if (str_cmp (data->uri, uri)) + href = ne_uri_unparse (uri); + if (str_cmp (data->uri, href)) { - if (1 == (n = str_length (uri))) + if (1 == (n = str_length (href))) return; - if (uri[n - 1] == '/') + if (href[n - 1] == '/') n--; - file = str_chr_rindex_n (uri, n, '/') + 1; + file = str_chr_rindex_n (href, n, '/') + 1; n = str_length (file); if (file[n - 1] == '/') @@ -1015,6 +1016,7 @@ results (void * userdata, data->files = str_realloc_cat_many (0, data->files, tmp, "\r\n", str_end); free (tmp); + free (href); } }