aboutsummaryrefslogtreecommitdiff
path: root/src/fs/gnunet-search.c
diff options
context:
space:
mode:
authorDavid Barksdale <amatus.amongus@gmail.com>2013-12-22 00:40:36 +0000
committerDavid Barksdale <amatus.amongus@gmail.com>2013-12-22 00:40:36 +0000
commitadc3590eae5aeef04e37e0ca4b406596554d29ea (patch)
treea5dea8296df3317492c4055a4b28ba354db58685 /src/fs/gnunet-search.c
parent0da48724ebe7d0a61427a966cd718171b7ecde5d (diff)
downloadgnunet-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.c15
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 *
136progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) 136progress_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)