Mercurial > gftp.yaz
diff lib/protocols.c @ 851:83d39217749c
2006-11-16 Brian Masney <masneyb@gftp.org>
* lib/protocols.c - backed out last change where hidden files aren't
transferred in the subdirectories if the show_hidden_files option is
disabled.
| author | masneyb |
|---|---|
| date | Fri, 17 Nov 2006 01:38:51 +0000 |
| parents | 1c8d6b6b7950 |
| children | 5e3005923374 |
line wrap: on
line diff
--- a/lib/protocols.c Fri Nov 17 01:20:58 2006 +0000 +++ b/lib/protocols.c Fri Nov 17 01:38:51 2006 +0000 @@ -1861,37 +1861,31 @@ static GHashTable * gftp_gen_dir_hash (gftp_request * request, int *ret) { - intptr_t show_hidden_files; GHashTable * dirhash; gftp_file * fle; off_t *newsize; + dirhash = g_hash_table_new (string_hash_function, string_hash_compare); *ret = gftp_list_files (request); - if (*ret != 0) - return (NULL); - - dirhash = g_hash_table_new (string_hash_function, string_hash_compare); - gftp_lookup_request_option (request, "show_hidden_files", &show_hidden_files); - - fle = g_malloc0 (sizeof (*fle)); - while (gftp_get_next_file (request, NULL, fle) > 0) + if (*ret == 0) { - if (!show_hidden_files && *fle->file == '.' && - strcmp (fle->file, "..") != 0) + fle = g_malloc0 (sizeof (*fle)); + while (gftp_get_next_file (request, NULL, fle) > 0) { + newsize = g_malloc (sizeof (*newsize)); + *newsize = fle->size; + g_hash_table_insert (dirhash, fle->file, newsize); + fle->file = NULL; gftp_file_destroy (fle, 0); - continue; } - - newsize = g_malloc (sizeof (*newsize)); - *newsize = fle->size; - g_hash_table_insert (dirhash, fle->file, newsize); - fle->file = NULL; - gftp_file_destroy (fle, 0); + gftp_end_transfer (request); + g_free (fle); } - - gftp_end_transfer (request); - g_free (fle); + else + { + g_hash_table_destroy (dirhash); + dirhash = NULL; + } return (dirhash); } @@ -1920,16 +1914,12 @@ static GList * gftp_get_dir_listing (gftp_transfer * transfer, int getothdir, int *ret) { - intptr_t show_hidden_files; GHashTable * dirhash; GList * templist; gftp_file * fle; off_t *newsize; char *newname; - gftp_lookup_request_option (transfer->fromreq, "show_hidden_files", - &show_hidden_files); - if (getothdir && transfer->toreq != NULL) { dirhash = gftp_gen_dir_hash (transfer->toreq, ret); @@ -1950,8 +1940,7 @@ templist = NULL; while (gftp_get_next_file (transfer->fromreq, NULL, fle) > 0) { - if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0 || - (!show_hidden_files && *fle->file == '.')) + if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0) { gftp_file_destroy (fle, 0); continue;
