diff options
author | David Barksdale <amatus.amongus@gmail.com> | 2013-12-22 00:40:36 +0000 |
---|---|---|
committer | David Barksdale <amatus.amongus@gmail.com> | 2013-12-22 00:40:36 +0000 |
commit | adc3590eae5aeef04e37e0ca4b406596554d29ea (patch) | |
tree | a5dea8296df3317492c4055a4b28ba354db58685 /src/fs/gnunet-search.c | |
parent | 0da48724ebe7d0a61427a966cd718171b7ecde5d (diff) | |
download | gnunet-adc3590eae5aeef04e37e0ca4b406596554d29ea.tar.gz gnunet-adc3590eae5aeef04e37e0ca4b406596554d29ea.zip |
Improve search result presentation for directories.
Diffstat (limited to 'src/fs/gnunet-search.c')
-rw-r--r-- | src/fs/gnunet-search.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/fs/gnunet-search.c b/src/fs/gnunet-search.c index df544c21b..897416bac 100644 --- a/src/fs/gnunet-search.c +++ b/src/fs/gnunet-search.c | |||
@@ -136,8 +136,8 @@ static void * | |||
136 | progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) | 136 | progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) |
137 | { | 137 | { |
138 | static unsigned int cnt; | 138 | static unsigned int cnt; |
139 | int is_directory; | ||
139 | char *uri; | 140 | char *uri; |
140 | char *dotdot; | ||
141 | char *filename; | 141 | char *filename; |
142 | 142 | ||
143 | switch (info->status) | 143 | switch (info->status) |
@@ -156,12 +156,19 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) | |||
156 | GNUNET_CONTAINER_meta_data_get_by_type (info->value.search. | 156 | GNUNET_CONTAINER_meta_data_get_by_type (info->value.search. |
157 | specifics.result.meta, | 157 | specifics.result.meta, |
158 | EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME); | 158 | EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME); |
159 | is_directory = | ||
160 | GNUNET_FS_meta_data_test_for_directory (info->value.search. | ||
161 | specifics.result.meta); | ||
159 | if (filename != NULL) | 162 | if (filename != NULL) |
160 | { | 163 | { |
161 | while (NULL != (dotdot = strstr (filename, ".."))) | 164 | GNUNET_DISK_filename_canonicalize (filename); |
162 | dotdot[0] = dotdot[1] = '_'; | 165 | if (GNUNET_YES == is_directory) |
163 | printf ("gnunet-download -o \"%s\" %s\n", filename, uri); | 166 | printf ("gnunet-download -o \"%s%s\" -R %s\n", filename, GNUNET_FS_DIRECTORY_EXT, uri); |
167 | else | ||
168 | printf ("gnunet-download -o \"%s\" %s\n", filename, uri); | ||
164 | } | 169 | } |
170 | else if (GNUNET_YES == is_directory) | ||
171 | printf ("gnunet-download -o \"collection%s\" -R %s\n", GNUNET_FS_DIRECTORY_EXT, uri); | ||
165 | else | 172 | else |
166 | printf ("gnunet-download %s\n", uri); | 173 | printf ("gnunet-download %s\n", uri); |
167 | if (verbose) | 174 | if (verbose) |